diff --git a/doc/api/https.md b/doc/api/https.md
index 9bde6cfab1d42e..6118004aec4fbd 100644
--- a/doc/api/https.md
+++ b/doc/api/https.md
@@ -42,7 +42,7 @@ changes:
     is specified using an IP address, in which case the default is `''` (no
     extension).
 
-    See [`Session Resumption`][] for infomation about TLS session reuse.
+    See [`Session Resumption`][] for information about TLS session reuse.
 
 ## Class: https.Server
 <!-- YAML
diff --git a/lib/internal/timers.js b/lib/internal/timers.js
index 8ba7923e57218e..2d86b2203c020e 100644
--- a/lib/internal/timers.js
+++ b/lib/internal/timers.js
@@ -307,7 +307,7 @@ function insert(item, refed, start) {
   if (msecs < 0 || msecs === undefined)
     return;
 
-  // Truncate so that accuracy of sub-milisecond timers is not assumed.
+  // Truncate so that accuracy of sub-millisecond timers is not assumed.
   msecs = Math.trunc(msecs);
 
   item._idleStart = start;
diff --git a/src/node_process_object.cc b/src/node_process_object.cc
index 54ae8e6a218072..92124503ab9c5c 100644
--- a/src/node_process_object.cc
+++ b/src/node_process_object.cc
@@ -125,7 +125,7 @@ MaybeLocal<Object> CreateProcessObject(Environment* env) {
 #endif  // NODE_HAS_RELEASE_URLS
 
   // process._rawDebug: may be overwritten later in JS land, but should be
-  // availbale from the begining for debugging purposes
+  // available from the beginning for debugging purposes
   env->SetMethod(process, "_rawDebug", RawDebug);
 
   return scope.Escape(process);
diff --git a/test/fixtures/es-modules/loop.mjs b/test/fixtures/es-modules/loop.mjs
index 3d2ddd2eb7305e..560d9c6efc04cd 100644
--- a/test/fixtures/es-modules/loop.mjs
+++ b/test/fixtures/es-modules/loop.mjs
@@ -6,7 +6,7 @@ console.log(message, 5);
 while (t > 0) {
   if (t++ === 1000) {
     t = 0;
-    console.log(`Outputed message #${k++}`);
+    console.log(`Outputted message #${k++}`);
   }
 }
 process.exit(55);
diff --git a/test/parallel/test-timers-non-integer-delay.js b/test/parallel/test-timers-non-integer-delay.js
index a57922e3c78fe3..15b405e9a48dd4 100644
--- a/test/parallel/test-timers-non-integer-delay.js
+++ b/test/parallel/test-timers-non-integer-delay.js
@@ -78,7 +78,7 @@ const interval = setInterval(common.mustCall(() => {
       `Non-integer delay ordering should be ${expected}, but got ${ordering}`
     );
 
-    // 2 should always be last of these delays due to ordering guarentees by
+    // 2 should always be last of these delays due to ordering guarantees by
     // the implementation.
   }), 2);
 }
diff --git a/test/parallel/test-timers-refresh.js b/test/parallel/test-timers-refresh.js
index 28267f2b7b50b9..e186c63a65ecf9 100644
--- a/test/parallel/test-timers-refresh.js
+++ b/test/parallel/test-timers-refresh.js
@@ -22,7 +22,7 @@ const { inspect } = require('util');
   }), 1);
   timer.unref();
 
-  // This relies on implicit timers handle sorting withing libuv.
+  // This relies on implicit timers handle sorting within libuv.
 
   setTimeout(common.mustCall(() => {
     strictEqual(called, false, 'unref()\'d timer returned before check');
diff --git a/test/parallel/test-tls-socket-close.js b/test/parallel/test-tls-socket-close.js
index 839be2a888973b..87355cf8d7bd2d 100644
--- a/test/parallel/test-tls-socket-close.js
+++ b/test/parallel/test-tls-socket-close.js
@@ -13,7 +13,7 @@ const fixtures = require('../common/fixtures');
 // This test has a dependency on the order in which the TCP connection is made,
 // and TLS server handshake completes. It assumes those server side events occur
 // before the client side write callback, which is not guaranteed by the TLS
-// API. It usally passes with TLS1.3, but TLS1.3 didn't exist at the time the
+// API. It usually passes with TLS1.3, but TLS1.3 didn't exist at the time the
 // bug existed.
 //
 // Pin the test to TLS1.2, since the test shouldn't be changed in a way that
diff --git a/test/parallel/test-worker-cleanexit-with-js.js b/test/parallel/test-worker-cleanexit-with-js.js
index 737399b1133981..b4725e297a1307 100644
--- a/test/parallel/test-worker-cleanexit-with-js.js
+++ b/test/parallel/test-worker-cleanexit-with-js.js
@@ -6,7 +6,7 @@ const common = require('../common');
 // arbitrary execution points. By running a lot of
 // JS code in a tight loop, the expectation
 // is that those will be at various control flow points
-// preferrably in the JS land.
+// preferably in the JS land.
 
 const { Worker } = require('worker_threads');
 const code = 'setInterval(() => {' +
diff --git a/test/parallel/test-worker-cleanexit-with-moduleload.js b/test/parallel/test-worker-cleanexit-with-moduleload.js
index d4316cfe237157..0de9ad71d3dc7b 100644
--- a/test/parallel/test-worker-cleanexit-with-moduleload.js
+++ b/test/parallel/test-worker-cleanexit-with-moduleload.js
@@ -6,7 +6,7 @@ const common = require('../common');
 // arbitrary execution points. By using a number of
 // internal modules as load candidates, the expectation
 // is that those will be at various control flow points
-// preferrably in the C++ land.
+// preferably in the C++ land.
 
 const { Worker } = require('worker_threads');
 const modules = [ 'fs', 'assert', 'async_hooks', 'buffer', 'child_process',
diff --git a/tools/code_cache/cache_builder.cc b/tools/code_cache/cache_builder.cc
index 2e7d35d6d7fc7c..8210355c4c37e2 100644
--- a/tools/code_cache/cache_builder.cc
+++ b/tools/code_cache/cache_builder.cc
@@ -127,7 +127,7 @@ std::string CodeCacheBuilder::Generate(Local<Context> context) {
     // TODO(joyeecheung): we can only compile the modules that can be
     // required here because the parameters for other types of builtins
     // are still very flexible. We should look into auto-generating
-    // the paramters from the source somehow.
+    // the parameters from the source somehow.
     if (loader->CanBeRequired(id.c_str())) {
       NativeModuleLoader::Result result;
       USE(loader->CompileAsModule(context, id.c_str(), &result));