I wish I'd kept a journal in 2014
But I was just too busy living my life.
In early May of that year, I packed up what little I had in Roanoke, Virginia, and moved to New York City to start over. And somehow, it worked.
I think back often to those first few weeks — bombing interviews, scribbling notes on what I needed to learn next, googling terms on the subway between meetings. I probably failed 20 interviews before I started to feel like a real candidate. Slowly, painfully, I pieced together just enough knowledge to survive in a brand-new world: Linux, bash scripting, Chef, Ansible, Python, MySQL operations, deploying PHP, Ruby, Java — I barely scratched the surface of any of them. But no one else had all the pieces either.
DevOps was still being invented.
Even my Frankenstein understanding — stitched together from blog posts, IRC, and Stack Overflow — was enough to get a foot in the door. I wasn’t an expert, but I was persistent. I kept failing. Kept getting rejected. Kept showing up. I’d get turned away for not knowing the nuance of Capistrano deploys. Passenger or Puma? Next interview: Jenkinsfiles in Groovy versus Bamboo build plans.
That was DevOps 1.0 — undefined, chaotic, exhilarating. It wasn’t a discipline, it was a vibe. And like any good vibe, you could either ride it or get wrecked by it.
I chose to paddle out.
I paddled past the breakers with no lifeguard, no support, no guarantees. I rode that wave into companies like Etsy and a certain millennial-pink makeup startup. I made it. And somehow, I’m still here.
On Vibe Coding and Building a Quiver
“Vibe coding” is everywhere now — just ask the prompt what you want, and let the machine write your code. That’s the stereotype, anyway. But I don’t buy it.
To me, good vibe coding is about context. It’s about knowing enough to describe what you want clearly — and then knowing how to shape what comes back. AI is just another layer in the stack, another tool in the quiver. And a good technologist is always refining their quiver.
They’re building environments they trust. Tuning workflows to stay out of their own way. Challenging every assumption in their stack.
So here’s my Quiver 2025 — the setup that’s helping me do my best work right now:
💻 Computer
15" MacBook Air (M2)
Light, beautiful, dead simple. 2 Thunderbolt ports, a headphone jack, and a battery that lasts forever. macOS isn’t perfect, but it gets out of my way.
⚙️ Dotfiles / Environment
I manage everything with my dotfiles and a Brewfile
. My terminal is Ghostty, and my entire dev environment is reproducible. I use Nix in my homelab and Homebrew here. NeoVim config is written in Lua and fully baked into the dotfiles repo.
✍️ Editor
NeoVim + LazyVim
Nord theme, Lua config. I write Terraform (OpenTofu), Python, Golang, Ruby, Kubernetes manifests, and the occasional React component all in Vim. It’s fast, minimal, and lets me live in the terminal.
🧠 Second Brain / LLM's
Obsidian, loosely Zettelkasten-inspired.
I write all my Brother David posts in it. I authored a book in it. I also carry a paper notebook and write in it daily — the important stuff gets promoted to Obsidian when it’s ready to live there.
When I take the time to use the tags and metadata correctly, my productivity skyrockets. I’ll probably share more about my knowledge management setup soon.
I’ve started to build out my AI tooling into this workflow as well:
- ChatGPT (pairing, writing, structure, brainstorming): It's just the best tool for the job right now. I switch between chats and models I’ve trained, and it’s like having a crew of collaborators with similar values and perspectives, available on-demand with ~75% accuracy. Pretty amazing if you ask me.
- Claude (coding, documentation, prototyping): As of this writing, Claude generates better code. I might think differently tomorrow. But for now, it’s incredibly useful for roughing out ideas and writing clean, clear technical documentation.
These tools don’t replace my thinking — they augment it. They’re part of the same cognitive toolkit as dotfiles, notepads, terminal history, and Vim registers. Just another node in the system.
That’s the heart of a good second brain: a trustworthy system you can challenge, adapt, and grow with.
Looking Back
I wish I’d kept a journal in 2014. But maybe this blog is that journal — ten years late, but better for it.
If you're reading this and you’re early in your journey — maybe staring down your 10th rejection, maybe wondering if you should quit — just know that I’ve been there. I failed my way forward. I built my stack one weird bash script at a time.
You don’t need all the answers. You just need to keep showing up. And maybe, keep a journal this time.