About the Author
Avatar photo

Jake Everhart

Jake is a software consultant who likes to learn new things. Picking up new languages, implementing proof-of-concept projects, and teaching other people are his favorite parts of working at Keyhole. He is at his happiest when he gets to do all of them at once. Away from the keyboard, he also enjoys collecting novelty socks and naming dogs after Lord of the Rings characters.

Devcontainer.json customization guide blog header — gitignore template, git skip-worktree, and custom devcontainer feature methods, by Jake Everhart, Keyhole Software

Customizing Devcontainers Without Affecting Your Team

Jake Everhart Agentic AI & AI-Accelerated Development, Articles, Development Technologies & Tools, DevOps, Infrastructure As Code (IaC) Leave a Comment

There’s no single “correct” way to customize a devcontainer, just like there’s no one right way to use most tools in software development. Devcontainers can be great for solo projects, to yield an isolated development workspace with no risks of polluting (or being polluted by) the external environment. They can also give teams a consistent, baseline environment for bootstrapping engineers, with integrations like GitHub Codespaces exposing that environment in a variety of ways. But the gap between those workflows is large, and managing it sometimes requires weighing a team’s needs vs. individual preferences.

It’s a balancing act, and getting it wrong can make your containers brittle, difficult to maintain, and cause enough overall frustration to outshine the benefits.

Yet there are options available for a more-granular approach. We don’t have to decide just between bare-minimum or include-everything – we can curate containers that are focused on the core tools used across the entire team, while still providing room for per-user expansions.

Today, we’ll explore a few approaches for customizing a shared devcontainer setup across different team scenarios, without having to abandon shared devcontainers altogether.

Terminal Session Recording with Asciinema: An Interactive Approach

Terminal Session Recording with Asciinema: An Interactive Approach

Jake Everhart Articles, Development Technologies & Tools, Programming Leave a Comment

Asciinema fills a unique niche in the toolkit for terminal recording and sharing. It bridges the gap between plain text output and video, offering the best of both worlds: the clarity and timing of a recording with the selectability and accessibility of text. Whether you’re creating tutorials, documenting bugs, or sharing command-line workflows, asciinema deserves a spot in your toolkit.

Best Practices for Proposing Improvements to Your Development Team

Jake Everhart Agile, Articles, Consulting, Project Management, Soft Skills Leave a Comment

Working within a software development team has tremendous benefits, but it also comes with its share of complications. One of those complications is inertia – the more people who get used to a process or a certain set of tools, the more difficult it can be to introduce changes. Maybe this manifests in a positive way, where repetition and familiarity …

Zellij The Impressions of a Casual tmux User

Zellij: The Impressions of a Casual tmux User

Jake Everhart Articles, Development Technologies & Tools, Programming Leave a Comment

Let’s get this out of the way: I love tmux. Gaining the ability to multi-task within the terminal was a monumental productivity boost for me, and if you’ve used it in the past, you probably have similar stories about how it leveled up your workflow. It’s fast, it’s well-supported, and it has a plethora of features you can invoke with just a few keystrokes.

…and personally, I can only remember about a dozen of them.

Navi-A-Cheatsheet-for-CLI

Navi: A “Cheatsheet” CLI

Jake Everhart Articles, Programming Leave a Comment

The command line is a powerful tool in software development. Regardless of whether you are comfortable working within a shell or if you prefer a GUI, there are likely scenarios that still require you to open a terminal and type out some commands.

This should not surprise us – many tools solely support Command-Line Interface (CLI) interaction – but over time, the efforts required to keep track of each new command’s syntax can add up. If you’re anything like me, you might memorize only the commands that you use most frequently, resigning yourself to searching through documentation for the rest whenever you need them….