Using the browser’s built-in popover primitive to create dismissible overlays without custom state or layering logic.
About Me
I’m a software engineer focused on building clear, accessible, and well-structured user interfaces backed by solid engineering. Most of my work lives at the intersection of design decisions and technical choices, ensuring interfaces look intentional and hold up under real-world use.
I work as a consultant and engineer, helping teams ship modern web applications, improve existing systems, and solve technical problems across both front-end and back-end development. My background spans agencies, startups, and product teams in advertising, bio-science, risk analytics, and clean energy.
Over the years, I’ve built everything from marketing sites and design systems to full application architectures. I’m self-taught, started coding early in the web’s evolution, and have stayed close to the tools and patterns shaping how people build for the browser today.
My Approach
I approach projects by focusing on clarity first, then execution. My goal is to understand the real problem, work within existing constraints, and deliver solutions that are reliable, maintainable, and easy to reason about.
Understand the product and its constraints
Learn how the product is used, who it serves, and the constraints shaping the work.
Analyze the system as it exists today
Evaluate the current architecture, data flow, and failure points before proposing changes.
Identify the core problem worth solving
Separate symptoms from root causes and focus on the issue that will have the greatest impact.
Define what success looks like
Establish clear outcomes so improvements can be evaluated objectively.
Determine a solution that fits the constraints
Choose an approach that balances correctness, maintainability, and long-term flexibility.
Align with stakeholders on tradeoffs and outcomes
Make decisions transparent and ensure expectations are shared before implementation begins.
Implement incrementally and intentionally
Favor small, understandable changes that reduce risk and preserve momentum.
Test, validate, and iterate
Use real behavior and feedback to refine the solution over time.
Ship, monitor, and stabilize
Deploy carefully, observe system behavior, and address issues before moving on.
Field Notes
Short explorations of emerging ideas, tools, and platform features. These focus on what’s changing, why it matters, and how it impacts real product and engineering decisions.
A browser-level feature that makes UI state changes feel smoother and easier to follow without adding heavy animation code.
A more predictable way to define color in CSS that helps design systems scale without introducing contrast or accessibility issues.
Using native browser animation primitives to create smooth, coordinated motion without relying on external libraries.
Case Studies
Focused looks at real problems I’ve worked on, the constraints involved, and the decisions made along the way. Each one highlights trade-offs, outcomes, and the reasoning behind the solution.
An ephemeral E2E testing setup that provisions a full application stack, runs real user flows, and performs automated teardown.
Redesigned the Risknet dashboard to reduce cognitive load and surface actionable risk signals for day-to-day decision making.
Redesigned a complex genotype report to improve clarity and usability without sacrificing scientific accuracy.
Open Source
Self-directed projects that reflect how I design, structure, and maintain systems. These emphasize clarity, long-term usability, and practical engineering over novelty.
A production-ready scaffold for building React component libraries. Includes TypeScript, unit testing, Storybook documentation, build optimization, and publishing workflows.
A dark VS Code theme built with accessibility in mind while maintaining visual appeal. Created using a Yeoman generator to ensure proper theme structure and distribution.
A web application for Dead by Daylight players to create custom character loadouts with flexible configuration options. Built with Vue and integrated with Prismic for content management.
Contact
I'm open to full-time roles, contract work, and consulting opportunities.