All Posts
← Back to HomeBeing a Leader (in tech)
March 2, 2026
Leadership in engineering isn't a promotion, it's a separate skill. Some notes on what I've learned trying to grow into it.
Rediscovering Captain Claw: My Journey With OpenClaw
February 2, 2026
An open-source reimplementation of a game I loved as a kid, a weirdly close-to-home connection to my day job, and a weekend I didn't expect to enjoy as much as I did.
Will Prompts Replace Programming? The Natural Language Code Debate
January 5, 2026
Every few months someone announces that code is dead. Let's look honestly at what natural language programming can and can't do.
Open-Source AI Models: When to Roll Your Own vs. Use an API
December 1, 2025
Llama, Mistral, Qwen, DeepSeek. The open-model ecosystem is genuinely competitive now. When should you run your own?
Security Is Not Someone Else's Problem: A Full-Stack Engineer's Take on DevSecOps
November 6, 2025
The 'someone else handles security' era is over. What changed and what every engineer should know in 2025.
Why Rust's Popularity Makes Sense (And Why I Still Love Zig)
October 3, 2025
Rust keeps topping the admiration charts for a reason. Doesn't mean I'm putting down my Zig projects.
AI Coding Tools in 2025: Copilot, Cursor, and the New Developer Toolkit
September 8, 2025
A practical comparison of the AI tools that have quietly become part of my daily workflow.
The TypeScript Takeover: Why Type-Safe Languages Are Winning
August 4, 2025
TypeScript quietly passed Python and JavaScript in usage this year. Not a fluke. What's driving it.
Modern Superhero: Docker
July 7, 2025
A love letter to the tool that quietly ate the industry and saved my weekends.
Separating Work from Hobbies: The Effect of Turning Passion into Business
June 23, 2025
Why turning your hobby into your job might kill what you loved about it in the first place
The AI Moment: What It Means For Builders Like Me
June 2, 2025
The dev world is shifting, and you should shift too
Agentic AI For Dummies
May 26, 2025
The newest trends in AI turn hours of work in to minutes of automated execution
The Case for Zig in Game Programming
May 19, 2025
Why choose Zig over C for raw (minimal dependency) game dev
A Love Letter to Lua
April 14, 2025
Why I think Lua is so widely used, and drives the development of other languages
Writing Code That Lasts: Lessons from Maintaining Long-Term Projects
March 10, 2025
Future-you deserves better. Here’s how I write code I can still understand when I come back months (or years) later.
Building a Modern Portfolio Site with Next.js: Architecture Decisions
February 10, 2025
Sometimes the best portfolio piece is the portfolio itself.
AI Isn't Magic, It's Code We Don't Understand (Yet)
January 13, 2025
Demystifying the black box: why AI feels like sorcery and what that means for developers
Git for Jits
December 9, 2024
A brief guide to advanced git wizardry.
Getters, Setters, and Other Ways to Waste Your Time
November 18, 2024
Why I stopped writing getters and setters for everything
TypeScript Type Safety Beyond the Basics: Advanced Patterns I Use Daily
July 29, 2024
The TypeScript type system goes a lot further than most people realize. Here are the patterns I actually reach for at work.
TypeScript vs Java: A Full-Stack Engineer's Perspective
April 8, 2024
Two typed languages, two completely different cultures. What I've learned from being forced to love both.
Breaking Legacy: Modernizing a 15-Year-Old Codebase
January 15, 2024
Inheriting a codebase older than some of my coworkers, and the slow, stubborn work of dragging it into the present.
Accessibility in Technology: PDF/UA
November 20, 2023
A deep dive on the standard that tries to make PDFs readable for everyone, and why so many documents still fail at it.
Balancing a Woeful Personal Life With a Productive Professional One
August 4, 2023
The summer has been rough. Here's how I've been trying to keep work from falling apart while I put the rest of my life back together.
The Evolution of PDF Technology: Reflections After a Year at Apryse
June 5, 2023
A year working on PDF tooling has given me a weird amount of respect for a format most people think is boring.
Acquisition Article: Heaven or Hell?
March 6, 2023
About two years after Windward was acquired, a candid look at what actually changes when your small company gets swallowed by a bigger one.
Why I Switched From Unity to Godot
December 12, 2022
A long-time Unity hobbyist finally gives Godot a real try, and doesn't look back.
Refactor > Rewrite: My Motto For Growth
July 11, 2022
Every engineer eventually wants to burn it all down and start over. Here's why I've learned to resist.
How Not to Design a Modern API: SendGrid API
March 28, 2022
A love letter to the API that taught me everything I never wanted to know about transactional email.
Building Performant Angular Applications: Lessons from Windward's Store
April 26, 2021
What I've learned about Angular performance from shipping a real, user-facing SPA that has to juggle complex document templates.
Intern to Full Time: What's the Transition Like?
March 22, 2021
A year and a half as an intern at Windward, now signing the FTE offer. Here's what actually changes (and what doesn't).