APIs  Backend  Data  Frontend  Growth  Patterns  Workflow 
Heroku to Slack with AWS Lambda

When my production app processes change state on Heroku, I want to be notified in Slack

Deno

A secure runtime for JavaScript and TypeScript

Thin API Clients

When to access an API with a specialized library and when to write a custom thin client

Circular Favicon from GitHub Avatar

Command-line script that accepts a GitHub username and generates a circular favicon and Apple Touch icon

SSH Key with Ed25519

Make ~/.ssh/authorized_keys look nicer

Schedule Netlify Builds with GitHub Actions

Daily deploys with Netlify build hooks, GitHub Actions' scheduled workflows, and GitHub encrypted secrets

Pull Requests and Kanban

End-to-end with a kanban board, GitHub code review, continuous integration, and continuous delivery

Update a GitHub Fork

Keep it synced with the upstream repository

Install or Upgrade Go on macOS

10s install or upgrade of the Go language on macOS

Block with /etc/hosts

Block ads, trackers, and malicious websites with /etc/hosts

Spell Check in Vim

Avoid mistakes when editing prose in Markdown files and Git commit messages

laptop.sh

My laptop repo sets up a macOS machine as a software development environment

setup.sh

Clone a monorepo, change into the project directory, and run one command to start contributing

Monorepo

How we organized our code into a monorepo at our startup and how it evolved over time

Process Model

Define Unix processes in a manifest named Procfile and use tools to manage those processes

.gitignore

Dirs and files matching the patterns defined in this file are ignored for git commits, ag searches, and fzf searches

Email from Rails with SES on EC2

Deliver email from a Ruby on Rails app using Amazon's Simple Email Service (SES) hosted on EC2

ASDF Version Manager

Set up and configure ASDF as a version manager for multiple programming languages

Semantic Linefeeds

A formatting style for prose that breaks lines at the end of a sentence or clause

DNS to CDN to Origin

Rather than pointing DNS directly to an origin server, point it to a CDN that pulls content from the origin

Start a React Native Project

A macOS setup and Vim configuration for React Native with Expo and Prettier

Align Markdown Tables in Vim

Align GitHub-Flavored Markdown tables in Vim in a few quick keystrokes

Reduce Heroku Slug Size

Steps to resolve the 'Compiled slug size: 300.1M is too large (max is 300M)' error

Retention Curves

How to build a retention curve chart in Google Sheets from a Mixpanel tabular cohort report

Full Text Search with Postgres

Speed up Postgres full-text searches with a tsvector column as cache and trigger to keep the cache updated

Log and Alert on Heroku Routing Errors

Heroku routing errors don't reach error-tracking code in app processes, have to track with a logging service

Test Mock vs. Stub vs. Spy

Tradeoffs for unit tests that use mocks, stubs, or spies

North Star Metric

How many people get authentic value from our product?

Polymorphic Activity Feed

The general programming technique of polymorphism can be applied to Rails partials

Cache API Requests

Caching HTTP GET requests can improve performance and help avoid hitting rate limits

Search Projects in Vim

Search a project for files, text, or word under cursor

Run Tests in Vim

Runs focused tests from Vim with a keystroke

Create Indexes Concurrently

Use Postgres' CONCURRENTLY option for CREATE INDEX to avoid locking writes to a table

Wrap Text in Vim

Wrap text to set textwidth with visual select and gq

Sort Lines in Vim

Sort lines alphabetically with visual select and :sort

Intercept Email from Staging

Configure an email whitelist for a staging Rails to avoid accidentally delivering content outside the team

Four-Phase Test

A pattern for unit tests (but not integration tests)

Decorators with Ruby

Extend an object's responsibilities without subclassing

Back Up and Restore Heroku Databases

Back up and restore a production database backup into staging or local environment.

Pessimistic Operator

Ruby's pessimistic operator with Semantic Versioning can help stabilize dependencies

Config Block with Ruby

How to implement a common interface for configuring a third-party library in Ruby

Authorization with Rails Associations

Associations through a User model enforce authorization concerns without additional code

Mystery Guests in Tests

An anti-pattern that hides cause and effect because part of it is done outside the test method