Webhooks are surprisingly hard to process correctly. Almost every software project I’ve wo…
Autofilling form fields has become an increasingly common and practical application of gen…
One of the powerful design patterns that can be employed within a GraphQL schema is the co…
Try as we might to design APIs that last, it is very difficult to completely avoid the nee…
I’m working on a side project with a friend, and we needed to quickly spin up a BI tool to…
tRPC has a fairly comprehensive set of built-in error codes, but because they’re baked in …
At Crimson one of the first projects undertaken by my AI team was to produce high-quality …
Software is becoming an increasingly large contributor to the world’s carbon emissions, an…
Most people know that it’s possible to use multi-stage Docker builds to minimize final ima…
If you’ve got an error which looks like the one below, this article will help you resolve …
At my last job we sold a quoting SaaS to tradespeople, and naturally a big component of ou…
At my job I’ve been working on identifying performance and stability issues with our main …
We had an issue the other month with our internal summarization microservice, which necess…
Imagine that you’re building out a web page that allows students to view a list of their a…
The upper limit for GPT-4 rate limits have significantly improved over the past few months…
Global object identification is a GraphQL specification which describes the Node interface…
Node
Last year Retool authored a post describing how they upgraded a 4 TB PostgreSQL database f…
I’m a huge fan of type-prefixed IDs because they make development so much more pleasant. O…
Partitioning your cloud infrastructure across different AWS accounts is a best-practice th…
I run into JSON file merge conflicts almost every day, and a shocking percentage of the ti…
AWS CloudTrail is an indispensable tool for improving your security posture, but it’s sadl…
On the surface AWS Secrets Manager is a straightforward service. You create secrets, store…
Using infrastructure-as-code solutions such as Terraform is a great way to keep your cloud…
At Crimson we use Elastic Beanstalk to run our Docker images, and we leverage an old inter…
AWS’ proprietary ARM-based Graviton chips have existed for many years now, but there are s…
The “Twelve-Factor App” methodology dictates that all app configuration is stored in envir…
Everyone knows what a memory leak is, and the prevalence of this bug is a testament to the…
Moving from purely client rendered React apps to using server rendering is great for perfo…
I previously wrote about my preferred ID format consisting of a small type prefix and a KS…
When you deploy a new frontend bundle it’s a good idea to purge your CDN to ensure you won…
As I’ve mentioned previously, I took a few shortcuts when I first built this website. Whil…
I’ve been in situations where I need to smoothly animate the height of an HTML element mor…
This is an old post and my views have changed. I don’t think you should use enums in TypeS…
For a while now I’ve been running a girls’ competitive programming group, and one of the m…
When I was about 10 years old, I was introduced to HTML and GameMaker (version 7!) while a…
Every piece of software takes user input in some capacity. Right now I’m typing this artic…
macOS has a bunch of great Emacs-derived keyboard shortcuts for editing text—⌃a, for insta…
⌃a
In order to help debug some email deliverability issues at work, we wanted to sign up for …