Took Balsamiq's AI from prototype to production Balsamiq
With the team, I took Balsamiq's AI from a prototype to a shipped production feature — as a core developer and architect, designing and building the backend on a real LLM (Gemini). That meant the LLM-facing backend and its AI workflows, the MCP layer for tool calling so the AI can act on the product's internal model and core logic, and guardrails around what the model returns. It powers AI-assisted creation and editing of wireframes, and it continues the line of work the earlier image-to-wireframe pilot started.
Automated triage of production runtime errors Balsamiq
I built automated triage for production runtime errors. They collect into Elasticsearch, then a two-stage, multi-model LLM pipeline handles them: a first model triages each error, and a copilot agent picks up the issue and attempts a fix.
AI-augmented engineering practices and skills Balsamiq
Early adopter of agentic coding tools (Claude Code, Codex). I built a body of reusable AI "skills" and best practices, shared both at the repository level for the team and in a personal skills repository. They cover JS-to-TS conversion, test-effectiveness review, comment-quality review, PRD creation and PRD-to-task breakdown, and knowledge skills that encode sound architectural practice.
Rendering performance, end to end Balsamiq
Drove rendering performance end to end: client rendering optimization, and a re-architecture of the rendering pipeline to a canvas-based approach. I also created a headless rendering engine on skia-canvas that renders PNGs straight from model files on the Node server, with no browser in the loop.
Core architect of the Balsamiq Wireframes 4 rewrite Balsamiq
I co-designed and built the ground-up rewrite of Balsamiq Wireframes Editor v4: a portable, vanilla-JavaScript core model paired with modular native UI for each platform (web/React, macOS, and Windows), with platform abstraction layers — the shared platform primitives that let the same model run across different platforms, hosts, and environments. A centerpiece was a platform-agnostic rendering engine for the drawing canvas, rendering to SVG on the web and to native Core Animation on macOS. I was one of the main developers on the core model, and I kept driving the editor's frontend architecture while shipping features on top of it. Early R&D included prototyping a precise text-layout engine on Pango/Cairo/HarfBuzz before the team settled on the portable-core approach.
Built and ran Balsamiq's macOS app, end to end Balsamiq
I was the core developer of the Balsamiq Wireframes macOS app, the native macOS shell of the Balsamiq Wireframes v4 architecture, built in Swift with hardware-accelerated Core Animation. I also owned the remote build system on the Mac machines: the macOS build, signing, and release pipeline that ships the app. It's still sold and in production use today.
Large-scale TypeScript migration of the Balsamiq Wireframes v4 codebase Balsamiq
I drove major refactorings on Balsamiq Wireframes v4's large, evolving codebase. Working solo, I rebuilt 80+ UI "control" classes (the app's wireframing components) from JS prototype classes into a full TypeScript class hierarchy — a subsystem of roughly 100K lines — landing it with almost zero regressions. I also pushed the ongoing, batch-by-batch conversion of the whole codebase from JavaScript to TypeScript.
Real-time collaboration server for concurrent editing Balsamiq
As part of the design team, I helped design the RTC (real-time collaboration) server on Node.js that opens a project and lets multiple editors make concurrent edits while keeping the project archive consistent — correctness of the shared state under concurrent edits was the core design constraint. The editor integrates with it through dedicated npm packages.
Technical liaison across editor, integrations, and Cloud teams Balsamiq
I worked across the core/editor team, the integrations team, and the Cloud web-app infrastructure, aligning API calls, configuration parameters, and contracts so the pieces fit together.
Flagship editor features in Balsamiq Wireframes v4 Balsamiq
I designed and built major features in the Balsamiq Wireframes 4 canvas editor: search-and-replace, a new snapping system (equal spacing, equal sizes, snapping inside and outside, controls snapping to columns), and smart arrows.
Built Balsamiq's e-commerce, billing, and licensing backend (Olio) Balsamiq
I redesigned the purchase flow and integrated the payment gateway (e-junkie) with pricing management, then designed and built Olio, the e-commerce backend that handles purchases, upgrades, invoicing, billing, license keys, and the licenses database — up to $4M a year in subscription and desktop-license revenue. I helped run its deployment on early Amazon AWS (EC2 Linux images and load balancers), and learned Groovy and Grails from scratch to build it.
Owned Balsamiq's Atlassian integrations Balsamiq
I built and owned Balsamiq's integrations with Atlassian Jira and Confluence against their APIs in Java, plus shorter-lived FogBugz and XWiki integrations.
Feature work on Balsamiq's flagship editor (Mockups) Balsamiq
I built features in Balsamiq Mockups, the flagship graphics and wireframing editor, written in Flex/ActionScript. It was the product the Balsamiq Wireframes v4 rewrite later reimagined.
Early image-to-wireframe AI pilot Balsamiq
I built an early pilot for turning images into wireframes, combining classic computer vision with ML-based OCR. I trained and fine-tuned a YOLO model (Python/Colab) to recognize UI elements such as buttons, inputs, and rectangles. It was ahead of its time, and it ran into the data and developer-bandwidth limits of the day. The project pivoted to a less ambitious but useful version of the idea.
One-command local orchestration of the full stack Balsamiq
I built a script that spins up the entire infrastructure locally in one go: the web app, the editor, the RTC (real-time collaboration) server, the AI server, and the auth server. The whole system can then be run and developed against on a single machine.