All Posts

← Back to Home

Being 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).