Work with me
Most software gets built like a relay race – the idea is the baton, and it gets dropped at every handoff between PM, designer, and engineer. I work without the handoffs: design and code are one job, done by one person. Less gets lost, and you see something real in days.
Most products aren’t slow because the work is hard. They’re slow because of how many hands the work passes through.
A feature gets specced by a PM, drawn by a designer, rebuilt by an engineer, and QA finds out too late that it never quite made sense. Four hands, four translations. I hold the whole thing in one head – strategy, interface, and the code, with AI doing the heavy lifting – so there’s nothing to hand off and far less to lose.
I design it, then I ship it – no wall to throw it over.
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 same person designed and built it. The “that’s not what I meant” gap mostly closes when it’s one person instead of a chain.
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 one new engagement, contract or full-time. Early-stage teams shipping on iOS, Android, web, or extensions, moving fast enough that one person owning both design and code helps more than it risks.