Product designer · Full-stack engineer

Design&builddigitalproducts.

I design and build products for the web and mobile, from the first interface sketch to shipped code.

Most of my time sits between Figma and the editor. I work across design, frontend, and the full stack.

Currently taking on select client work and a couple of personal products.

Selected work

Products I've designed and built end to end. Mobile companions, client tools, and developer infrastructure. Each one starts with the interface people touch.

Case studies

Challenge, solution, and impact. Design decisions on the surface, engineering decisions underneath.

01Mobile · Design

EiraFocus

Designer & Mobile Developer

Challenge

Most focus apps feel like productivity equipment. Aggressive timers, streak pressure, cluttered dashboards. People who actually struggle with focus need something calmer: an interface that makes it easy to start, and a rhythm that's easy to come back to.

Solution

EiraFocus is built around a single breathing ring, the visual anchor for each session, with a thin routine layer for the rituals before and after. The palette is warm and low-contrast so it reads as calm. Type and motion are tuned to feel unhurried. The app is mobile-first in Flutter, with native haptics and transitions. Every interaction is designed to lower the cost of starting a session.

Impact

Shipping as an MVP with the core focus loop, session history, and rituals. The design language and motion system will guide everything that follows.

02Product · SaaS

Botttle

Product Designer & Full-Stack Developer

Challenge

Running a client business usually takes four or five tools stitched together. Every handoff between them loses information. The interfaces are dense, loud, and built for teams rather than a single person.

Solution

I designed one workspace that fits the rhythm of client work. A quiet dashboard. A simple client-facing portal. A backend that keeps projects, payments, and time connected. The visual language stays restrained, with lots of whitespace and a single accent. Self-hosted so the data stays yours.

Impact

A complete MVP that replaces several SaaS tools with one owned system, and a design language I now reuse across my product work.

03Infrastructure · Tooling

Trelay

Full-Stack Developer & Systems Engineer

Challenge

Most URL shorteners are either consumer-simple or tied to centralised services. Developers who want self-hosted control end up compromising on usability, automation, or integration.

Solution

Trelay has a dashboard, a CLI, and an API. All three share the same surface, so you carry one mental model across every entry point. Expiring links, one-time access, analytics, and custom routing ship in a single container. The UI feels like a developer tool: dense information, clear affordances.

Impact

Teams can manage links as part of their own infrastructure, with the polish of a hosted service.

04Developer Tooling

RepoGrep

Full-Stack Developer

Challenge

Cross-repository search is usually slow, fragmented, or stuck at basic keyword match. Developers need something that respects how codebases actually get explored.

Solution

RepoGrep pairs a clean query UI with a performance-focused backend. The interface is deliberately small, built for developers who live in a terminal. Search is tuned for real exploration, with structured queries and fast lookups.

Impact

A practical utility that makes large or unfamiliar codebases faster to understand.

05ML Systems

HashPrep

Full-Stack Developer & System Designer

Challenge

Most interview-prep tools either lack structure or don't adapt to how people actually study. Layering in intelligent features means bridging product design with machine learning from day one.

Solution

A structured prep platform that tracks progress, organises problems, and guides study. Alongside the app, it ships ML components, CLI tools, and libraries so it can grow into a data-driven learning platform.

Impact

A foundation for a scalable, ML-integrated learning product that stays structured and extensible as it grows.

Services

What I take on end to end, with design and engineering held in one hand.

  • 01UI/UX design for web and mobile
  • 02Frontend engineering with React, Next.js, Svelte, and Tailwind
  • 03Mobile apps in Flutter
  • 04Full-stack product development from idea to release
  • 05Developer tools and ML-integrated systems

Perspective

Why me over an agency?

You get one person across the whole product. Research, interface, and the system underneath all live in the same head. Nothing gets lost in a handoff. No account managers sit between the decision and the pixel.

I care about typography, motion, and restraint on the design side. I care about code that holds up as the product grows on the build side. It's the same pair of hands across both.

Process

How I work with founders and teams. Research through release, with design and engineering interleaved at every step.

  1. 01

    Listen & frame

    I start with the people the product is for. What they actually do, where the friction lives. Frame the problem before framing the solution.

  2. 02

    Sketch & design

    Low-fi flows first, then Figma. Shape the interface, the type, the motion. Put decisions in front of you so they can be pressure-tested.

  3. 03

    Build with intent

    Design and code keep informing each other as I go. React or Flutter on the surface, clean services behind them. Motion and state are built in from the start.

  4. 04

    Iterate in the open

    Ship, measure, refine. Loading states. Transitions. Empty states. The small details that turn a working product into one that feels finished.

Close attention to state, loading, and interaction feedback. The small details turn a working product into one that feels right.

Stack

01

Design & interface

Figma
Framer Motion
Shadcn UI
Tailwind CSS
Design tokens
02

Web frontend

React
Next.js
Svelte
03

Mobile

Flutter
React Native
SwiftUI
Kotlin Multiplatform
Jetpack Compose
Expo
04

Backend & APIs

Flask
FastAPI
Django
Express
Fastify
Go
05

Systems & languages

C++
Python
Rust
06

Runtime & tooling

Bun
Node.js
Docker

I pick tools by what the product needs and what the team can maintain.

Writing

Long-form notes on product, design, and engineering decisions.

All posts

Contact

I work with founders and small teams on web and mobile products, from first design to shipped code. If you have a project in mind, or just want to say hello, drop me a line.