I'm passionate about both DX and the native web platform. Yeah, those two may seem like opposite ends of the same spectrum, especially in the eyes of those who build the coolest tech in userland (looking at you, Ryan Carniato), but my passion truly lies in bridging that gap. Tech that simultaneously doesn't interfere and makes work easier is much more appealing to adopt.
We shouldn't have to choose between standards and good DX! My mission is to make it so you don't have to.
Table of contents
What I do | What I know | Who I know | Who I am
Nope, despite the emojis, AI did not write this! Yep, I did ask AI for help to polish it. But I assure you it's 100% authentic. 🙂
Here's some notable stuff I've accomplished! It's not a full list, but it's what I care most about right now.
- Published Thunderous, a library for authoring functional web components using signals.
- Published React-Shadow-Scope, a library for writing shadow DOM components in React.
- Wrote a popular article about Agile for Git Connected's "Level Up Coding" publication.
- Developed Collab Hour, a lightweight Agile framework emphasizing simplicity and collaboration.
- I run Thunder Solutions, where I build SaaS applications and developer tools.
My strengths are still primarily in the front end, but I enjoy being able to work independently from UI down to infrastructure. "Fullstack" is a loaded term, so let me give you an honest breakdown:
| Front End 🟩🟩🟩🟩🟩🟩 Principal |
Back End 🟩🟩🟩🟩⬛⬛ Mid-Senior |
Databases 🟩🟩🟩⬛⬛⬛ Mid-Level |
Containers 🟩🟩🟩⬛⬛⬛ Mid-Level |
Infrastructure 🟩🟩⬛⬛⬛⬛ Junior-Mid |
|---|---|---|---|---|
| I’m comfortable across frameworks, understand their tradeoffs, and can dig into internals when needed. | I use multiple languages, but focus on architecture over language-specific tricks. | I can author well-written schemas and query them. I haven't done replication or sharding yet, but I see the value. | I love working with Docker, especially devcontainers. I "get" orchestration, but haven’t learned Kubernetes yet. | I can navigate AWS and stand up a web server on my own. But there's a lot more to learn and I'm having fun patching this gap a little at a time. |
| Stuff that gets people hired | Extra stuff that I enjoy |
|---|---|
| Windsurf, Cursor, React, Angular, Vue, Node, Java, C#, SQL, Mongo, Docker, GitLab CI, GitHub Actions, AWS, Azure, GCP | PWA, Web components, Solid, Rust, GraphQL, Drizzle, Digital Ocean, Netlify, Vercel |
Note
As my experience grows, I see diminishing value in exhaustively listing all the tools I have experience using. Understand — there are a lot. Even if I try to list them all, I will inevitably miss a few. So above is a distilled list of only the most interesting and relevant items.
I try to stay involved in the industry beyond my day job. A lot of that comes down to building relationships and actually talking to the people shaping the space.
Jon Kern (co-author, Agile Manifesto) is a friend and mentor of mine, and I owe a lot to him. He’s had a huge influence on how I think about engineering, teams, and the work itself.
In addition to Jon, I've had the privilege of chatting with other co-authors and agile leaders, picking their brains and exchanging ideas. Some notable ones are Uncle "Bob" Martin, Woody Zuill, Tim Ottinger, and Allen Holub.
I've also had some great conversations with ecosystem-defining engineers behind projects like React, Angular, Vue, Solid, Svelte, Lit, Astro, 11ty, and W3C working groups, as well as others in the broader tech community.
For me, it’s not just about rubbing elbows, but about actively seeking diverse perspectives from people shaping the field. I want to learn and contribute beyond what’s possible in isolated bubbles. And thanks to that, I’ve learned more in the past few years than I might have learned in decades otherwise.
I tend to question abstractions instead of accepting them. If something feels off, I dig into it, sometimes to the point of rebuilding parts of the stack just to understand the tradeoffs. That’s led me through all the major UI frameworks, each time reevaluating what actually holds up under real use.
I care a lot about long-term maintainability, mental models, and avoiding unnecessary complexity. I’m less interested in following patterns because they’re popular, and more interested in whether they’re actually the best direction in practice. I find creative fulfillment in turning accepted approaches on their head and engineering completely unexplored ideas.
It's this curiosity that drives me, and it leads me down rabbit holes that occasionally end with me building another solution to solve whatever problem I found.