Work with me
Strategy, design, and the build usually sit with different people, and product intent leaks out in the gaps between them. I work inside the team and keep those layers connected – clear ownership end to end, and something real to try in days.
Most products aren’t slow because the work is hard. They’re slow because no one owns the whole thing.
A feature gets specced, drawn, rebuilt, and QA finds out too late that it never quite made sense. The problem isn’t the number of people – it’s that the original intent has no owner once it starts moving between them, so each step quietly reinterprets the last. I stay with it across strategy, interface, and the code – AI does the heavy lifting on the build – so the through-line has someone holding it and far less gets lost in translation.
I design at production depth, and stay with it through the build.
You give me a fuzzy ask. I give you back something you can click and try: working software, not a Figma file in a review queue or a wireframe you have to picture working. What you test is close to what ships, because the design was done at the depth the build actually needs, and because I stay close to the decisions that shape it.
A few things I’ve built recently.
WNTD needed user photos to be clear, well-lit, solo shots. We built a “dog detector” that also caught cats, sunglasses, group shots, and blurry or zoomed-out photos. It nudges rather than blocks – guidance up front, and an override if you disagree. 99% of photos are checked on the device itself: private, and free to run.
An outfit board that lays clothes out like a moodboard, not a grid – photos overlap, tilt a few degrees, and bleed past the edges like prints pinned to a wall. Every count from one to six items gets its own hand-tuned arrangement, and each piece’s position and tilt stay fixed to the item itself, so the board looks hand-placed and never reshuffles between visits. Add or remove something and the whole thing re-settles on a single spring. Each photo scales as one fixed square, so the clothes never skew or squish as they move – the failure that makes most animated layouts like this look cheap.
The swipe is the navigation, not a gesture bolted onto a row of buttons. The panels ride the platform’s own scroll-snap, so paging has real native momentum and rubber-band instead of a JavaScript imitation, and the tab underline tracks your thumb as you drag, then settles where you let go – no ping-ponging back mid-swipe. Motion only ever means you moved: arrive on a tab from a link and it’s just there, no slide; only a real swipe or tap animates. The fussy part was the manners – paging sideways while a panel still scrolls vertically, and never eating the iOS edge-swipe-back. Every tab works the same way now, so the whole app moves the same under your thumb.
WNTD needed clothing shots on transparent backgrounds. The server-side approach just deleted white pixels, which punched holes through pale garments and shipped broken product images. I moved background removal on-device: done properly, ~200ms an image, and free instead of a paid API on every call. It ran on new uploads as they arrived, and healed the images the old method had already wrecked.
WNTD’s Magic Mirror let users see themselves in clothes in real time, via the Decart API. It felt passive to use, so I mapped the volume buttons to the shutter and hid the system volume overlay – less watching, more taking the shot.
Our admin dashboard did everything – KPIs, analytics, user comms – and was a pain to navigate. I added a command palette with fuzzy search, borrowing the feel of Raycast, so most of it is a keystroke away.
The codebase had grown nearly 30 versions of the same product card. I collapsed them into one component – about 1,500 lines gone, and the UI finally consistent.
Availability
Open to a full-time role or a contract project. Early-stage teams shipping on iOS, Android, web, or extensions, where having design and code in the same hands keeps things moving.