diff --git a/doc/api/dns.md b/doc/api/dns.md
index 775d288a54b9e3..5d5354c3ef5b01 100644
--- a/doc/api/dns.md
+++ b/doc/api/dns.md
@@ -330,7 +330,7 @@ added: v0.1.27
Uses the DNS protocol to resolve text queries (`TXT` records) for the
`hostname`. The `addresses` argument passed to the `callback` function is
-is a two-dimentional array of the text records available for `hostname` (e.g.,
+is a two-dimensional array of the text records available for `hostname` (e.g.,
`[ ['v=spf1 ip4:0.0.0.0 ', '~all' ] ]`). Each sub-array contains TXT chunks of
one record. Depending on the use case, these could be either joined together or
treated separately.
diff --git a/doc/api/os.md b/doc/api/os.md
index 98390bb387c313..6dbc732edcfa52 100644
--- a/doc/api/os.md
+++ b/doc/api/os.md
@@ -398,7 +398,7 @@ The following signal constants are exported by `os.constants.signals`:
SIGTRAP |
- Sent to a proces when an exception has occurred. |
+ Sent to a process when an exception has occurred. |
SIGABRT |
diff --git a/doc/api/path.md b/doc/api/path.md
index 1067792631a3e7..eb7d9766bc4b80 100644
--- a/doc/api/path.md
+++ b/doc/api/path.md
@@ -135,7 +135,7 @@ added: v0.1.25
* `path` {String}
The `path.extname()` method returns the extension of the `path`, from the last
-occurance of the `.` (period) character to end of string in the last portion of
+occurrence of the `.` (period) character to end of string in the last portion of
the `path`. If there is no `.` in the last portion of the `path`, or if the
first character of the basename of `path` (see `path.basename()`) is `.`, then
an empty string is returned.
diff --git a/doc/api/process.md b/doc/api/process.md
index 4f109c6c98b48a..5f967d21159245 100644
--- a/doc/api/process.md
+++ b/doc/api/process.md
@@ -216,7 +216,7 @@ rejections have not yet been handled.
The listener function is called with the following arguments:
* `reason` {Error|any} The object with which the promise was rejected
- (typically an [`Error`][] objet).
+ (typically an [`Error`][] object).
* `p` the `Promise` that was rejected.
For example:
@@ -1410,7 +1410,7 @@ added: v0.9.4
* `groups` {Array}
The `process.setgroups()` method sets the supplementary group IDs for the
-Node.js proess. This is a privileged operation that requires the Node.js process
+Node.js process. This is a privileged operation that requires the Node.js process
to have `root` or the `CAP_SETGID` capability.
The `groups` array can contain numeric group IDs, group names or both.
@@ -1497,7 +1497,7 @@ must call `process.stdin.resume()` to read from it. Note also that calling
## process.stdout
-The `process.stdout` propety returns a [Writable][] stream equivalent to or
+The `process.stdout` property returns a [Writable][] stream equivalent to or
associated with `stdout` (fd `1`).
For example:
diff --git a/doc/api/stream.md b/doc/api/stream.md
index 02e3a946c025e4..bc9245d60770b3 100644
--- a/doc/api/stream.md
+++ b/doc/api/stream.md
@@ -1668,7 +1668,7 @@ respectively.
In the following example, for instance, a new Transform stream (which is a
type of [Duplex][] stream) is created that has an object mode Writable side
-that accepts JavaScript numbers that are converted to hexidecimal strings on
+that accepts JavaScript numbers that are converted to hexadecimal strings on
the Readable side.
```js
diff --git a/doc/api/tls.md b/doc/api/tls.md
index 7feaff2acb2731..3cacfeef64b8cd 100644
--- a/doc/api/tls.md
+++ b/doc/api/tls.md
@@ -96,7 +96,7 @@ OpenSSL command-line interface to generate such parameters:
openssl dhparam -outform PEM -out dhparam.pem 2048
```
-If using Perfect Foward Secrecy using `ECDHE`, Diffie-Hellman parameters are
+If using Perfect Forward Secrecy using `ECDHE`, Diffie-Hellman parameters are
not required and a default ECDHE curve will be used. The `ecdheCurve` property
can be used when creating a TLS Server to specify the name of an
alternative curve to use.
diff --git a/doc/api/url.md b/doc/api/url.md
index 023697803dd0e3..1c29b81eb192fa 100644
--- a/doc/api/url.md
+++ b/doc/api/url.md
@@ -64,7 +64,7 @@ For example: `'host.com:8080'`
The `auth` property is the username and password portion of the URL, also
referred to as "userinfo". This string subset follows the `protocol` and
-double slashes (if present) and preceeds the `host` component, delimited by an
+double slashes (if present) and precedes the `host` component, delimited by an
ASCII "at sign" (`@`). The format of the string is `{username}[:{password}]`,
with the `[:{password}]` portion being optional.
@@ -208,7 +208,7 @@ added: v0.1.25
method. If `false`, the `query` property on the returned URL object will be an
unparsed, undecoded string. Defaults to `false`.
* `slashesDenoteHost` {boolean} If `true`, the first token after the literal
- string `//` and preceeding the next `/` will be interpreted as the `host`.
+ string `//` and preceding the next `/` will be interpreted as the `host`.
For instance, given `//foo/bar`, the result would be
`{host: 'foo', pathname: '/bar'}` rather than `{pathname: '//foo/bar'}`.
Defaults to `false`.
diff --git a/doc/api/zlib.md b/doc/api/zlib.md
index b8efe1486245a9..1022dc2f5ba26f 100644
--- a/doc/api/zlib.md
+++ b/doc/api/zlib.md
@@ -156,7 +156,7 @@ That is: 128K for windowBits=15 + 128K for memLevel = 8
(default values) plus a few kilobytes for small objects.
For example, to reduce the default memory requirements from 256K to 128K, the
-options shoud be set to:
+options should be set to:
```js
{ windowBits: 14, memLevel: 7 }
diff --git a/doc/topics/blocking-vs-non-blocking.md b/doc/topics/blocking-vs-non-blocking.md
index 606371789e8caa..ffdbcfc918e0e7 100644
--- a/doc/topics/blocking-vs-non-blocking.md
+++ b/doc/topics/blocking-vs-non-blocking.md
@@ -93,7 +93,7 @@ occurring.
As an example, let's consider a case where each request to a web server takes
50ms to complete and 45ms of that 50ms is database I/O that can be done
-asychronously. Choosing **non-blocking** asynchronous operations frees up that
+asynchronously. Choosing **non-blocking** asynchronous operations frees up that
45ms per request to handle other requests. This is a significant difference in
capacity just by choosing to use **non-blocking** methods instead of
**blocking** methods.
diff --git a/doc/topics/the-event-loop-timers-and-nexttick.md b/doc/topics/the-event-loop-timers-and-nexttick.md
index c8a909430fd100..3c3b5143eb8720 100644
--- a/doc/topics/the-event-loop-timers-and-nexttick.md
+++ b/doc/topics/the-event-loop-timers-and-nexttick.md
@@ -69,7 +69,7 @@ actually uses - are those above._
* **timers**: this phase executes callbacks scheduled by `setTimeout()`
and `setInterval()`.
-* **I/O callbacks**: most types of callback except timers, `setImmedate()`, close
+* **I/O callbacks**: most types of callback except timers, `setImmediate()`, close
* **idle, prepare**: only used internally
* **poll**: retrieve new I/O events; node will block here when appropriate
* **check**: `setImmediate()` callbacks are invoked here