Blog Posts
-
15 Go Subtleties You May Not Already Know
Some of my favorite tidbits from the past year of working with Go.
-
Repeat yourself
Don't believe what you've heard about repetition. Why repeating yourself in code is often better than the alternative.
-
Embracing Incrementalism
-
Five Non-Technical Tips for Technical Interviews
Technical interviews require soft skills too! Here are a few things that I'll do in a technical round to give myself the best shot at succcess
-
Terminal Applications in Go
Charm's BubbleTea library integrates seamlessly with Cobra and Viper to build powerful command line tooling for developers.
-
Mocking Interfaces in Go
Uber's gomock tool lets you easily mock out functionality from external libraries
-
Contract-First API Design
Comparing different approaches to modeling state and enforcing schemas across API boundaries
-
Building Neovim's first Gitlab Client
I've recently begun building the first open-source Gitlab client for Neovim. The plugin lets you review and manage merge requests directly within the editor. Here's how it works, what's next for the plugin, and what I've learned along the way
-
Migrating From Gastby to Astro
I recently migrated a simple blog site from Gatsby to Astro, and was glad I did. Here are my takeaways.
-
Debugging in Neovim
Debug your applications directly within Neovim using the Debug Adapter Protocol, or DAP.
-
Building A Powerful Neovim Configuration
Neovim is an unbelievably powerful tool, if you know how to use it. Here are some of my personal takeaways from using it as my primary editor for the past few years.
-
Real-Time Web Scraping with Firebase and Twilio
Firebase has a FAAS and database infrastructure that makes scraping websites a breeze.
-
Designing asynchronous microservices with RabbitMQ
RabbitMQ is an open-source message broker that can help you decouple your microservices and keep your application fault-tolerant and fast.
-
Optimizing Your Webpack Bundle
Here are some simple steps you can take to optimize your webpack bundle for a production environment.
-
Optimizing Docker images for production
Docker containers can get bloated very quickly. Put yours on a diet and keep your production build fast and secure.
-
Building a chat application with SocketIO
Websockets are a great way to breathe life into an otherwise stale application. Implement them easily with SocketIO, the defacto standard for NodeJS applications.
-
Protecting your production branch with CircleCI
Avoid merging unclean commits into your main branch by setting up a basic CI pipeline to test and lint your code.
-
Deploying a NodeJS API with Docker and Kubernetes
Ever wanted to deploy an application to production using Amazon's hosted Kubernetes services, EKS? This is for you!
-
Publishing your first Javascript CLI
Command line tools can dramatically speed up redundant tasks, letting you focus on the project at hand. Here's how to build one using Javascript.
-
Scraping data with Puppeteer and Docker
Configuring a web scraper with puppeteer can be tricky to run in production. This guide will show you how to bundle your scraper inside a Docker container.
-
Using Terraform with EC2 Servers and Docker
How to get an EC2 container up and running with Docker using Terraform.
-
Speeding up CircleCI Builds with Caching
Redownloading dependencies for every step in your CI/CD pipeline can be time consuming. You can dramatically speed up the build time of your application with caching, making your team more responsive to breaking changes and ultimately more productive. Here's how to do it.