Richard Clayton

You can't just be a backend developer.

(most of the time)

Last week I came across Asko's blog post on Reddit (r/programming) about why he doesn't want to work in the front end anymore. I had similar feelings three years ago after working as a full stack developer and insisted on taking a pure backend role with my current employer. Ignoring the frontend turned out to be a colossal mistake and . . .

Read More

February 16, 2021

Writing Better Apps: Implementing Configuration

"Configuration" is the settings your application uses to change its behavior at runtime. Configuration might include simple values that adjust timeouts on requests to more complicated settings that swap out database or cloud service providers.

The process of collecting and validating configuration is critical to a stable . . .

Read More

September 30, 2020

Writing Better Apps: Initialization

Whether you are writing a script, a multicommand CLI utility, or a networked server, applications should follow the same initialization pattern:

  • Get configuration
  • Build dependencies
  • Resolve and execute the entry-point function

Get configuration

Using the environment, and possibly command line . . .

Read More

Posted in: nodejstypescript

September 19, 2020

Templatizing Github "Template Repos"

Adding the (obvious) missing feature to Github Template Repositories


Get better use out of Github Template Repositories by introducing your own templating mechanism. Using a combination of gomplate, tree, and bash can get you there pretty easily. This article demonstrates an example of how it's done.

Last year, Github added a new feature called Template Repositories. . . .

Read More

Posted in: cigithub

April 13, 2020

Thoughts on using Kafka with Node.js (node-rdkafka)

Let me start by saying, node-rdkafka is a godsend. When we first started using it, the library was the only one fully compatible with the latest version of Kafka and the SSL and SASL features. I owe webmakersteve and other contributors all a six-pack of beer for making this possible (thank you!!!!).

With that said, I guarantee you . . .

Read More

April 01, 2020

Avoid Synchronous Functions in Node.js

Sync Functions can dramatically slow down your app and they are almost never necessary.


Most synchronous methods in Node.js (statSync, readFileSync, etc.) have asynchronous alternatives (via callback). Using util.promisify can easily make these methods async/await compatible. Using the Promise-based equivalents can greatly speed up your application. In fact, I'd argue there's never a need for the . . .

Read More

Posted in: nodejstypescript

February 29, 2020

A Gentle Introduction to TypeScript

Talk given at Fullstack Talks (NC San Diego) - 02/2o/2020


This information has been updated since the talk (mostly extra info added, some grammar/spelling errors corrected).

Who am I?

  • Principal Software Engineer at Peachjar
  • 3/4 Stack Developer (or Pear-shaped Developer)
  • Former Marine Corps Meteorologist
  • Virgo
  • Foodie
  • . . .

Read More

February 21, 2020