Rebuilding my site as an interactive resume
A resume is a strange artifact. It compresses years of work into bullet points, and the more interesting the work was, the more the compression hurts. So I rebuilt this site around a simple idea: keep the resume format people expect, but make every role a door you can walk through.
Each job on the homepage timeline links to its own page where I can actually tell the story — what the work was, why it was hard, and what I took away from it. And since I wanted a place to write about more than work (fitness, faith, family, whatever I'm figuring out at the moment), the same content pipeline powers this blog.
The stack
Nothing exotic — the whole site is statically generated:
| Piece | Choice |
|---|---|
| Framework | Next.js 16 (App Router) |
| Styling | Tailwind CSS v4 |
| Content | MDX files in the repo |
| Highlighting | Shiki via rehype-pretty-code |
| Hosting | Vercel |
Publishing a post is just dropping a file into content/blog/. The frontmatter is minimal:
---
title: Hello
date: "2026-08-10"
description: A post.
tags: [engineering]
---And because posts are MDX compiled at build time, code samples get proper syntax highlighting in both light and dark mode without shipping a highlighter to the browser:
export function formatPeriod(start: string, end?: string): string {
return `${formatMonth(start)} – ${end ? formatMonth(end) : "Present"}`;
}What's next
I'll be writing here about what I'm building, what I'm lifting, and what I'm learning. If any of that sounds interesting, check back — or just say hi.