Director of Product, Frontend, and Mobile Development at Discotech. I lead product direction and development for consumer web, iOS, and Android applications, and I develop open source tooling for AI coding agents, the Clojure language family, and the Haiku operating system.
Director of Product, Frontend, and Mobile Development
I joined Discotech as its first non-founder employee and now lead product, frontend, and mobile development, including the company's nightlife applications for the web, iOS, and Android. The web application is built with Next.js and deployed on Vercel. The iOS app averages 4.9 stars across more than 12,000 ratings, and the Android app averages 4.9 stars across more than 2,000 reviews.
I provide software development consulting for applications built with C#, F#, and ASP.NET.
These packages give AI coding assistants language- and framework-specific guidance. They follow the Agent Skills open standard and install through APM into Claude Code, Codex, Cursor, Copilot, Gemini, and other supported tools.
| Package | Scope |
|---|---|
| clojure-skills | Shared Clojure guidance for .clj, .cljs, .cljc, and .cljd files. The other Clojure packages build on it. |
| clojure-jvm-skills | Clojure on the JVM, including Java interop, software transactional memory, and the Clojure CLI workflow |
| clojurescript-skills | ClojureScript, including JavaScript interop, externs inference, and macro stage separation |
| clojuredart-skills | ClojureDart on Flutter, including Dart interop, type hints, and cljd.flutter directives |
| fulcro-skills | The Fulcro full-stack framework and its Pathom 3 server |
| biff-skills | The Biff web framework, including project scaffolding, conventions, and deployment |
| code-lenses | Software design principles for code review and implementation, including grug brain, Tidy First?, and Parse Don't Validate |
| Project | Description |
|---|---|
| HaikuClip | Synchronizes clipboard text between Haiku and macOS |
| haiku-control-mcp | An MCP server that runs commands, transfers files, and automates the user interface on a Haiku machine |
| haiku-macos-dev | Documentation and a Babashka launcher for running Haiku in QEMU on macOS |
| haiku-lisp-dev | A comparison of GUI approaches for Lisp dialects on Haiku, with runnable examples for ten implementations |
| Project | Description |
|---|---|
| dry4dart | Detects candidate duplicate Dart code using structural fingerprints and Jaccard similarity, with text and JSON output for local use and continuous integration |
| Project | Description |
|---|---|
| Hollywood Nights | A streaming platform for classic movies, now discontinued |
| jsp-skills | Agent skills for Jumpstart Pro Rails covering multi-tenancy, billing, deployment, and upstream synchronization (archived) |
| SwiftPlayground-Pharo | A Pharo environment for running Swift code as an alternative to Xcode Playgrounds |
| OpenAI-Pharo | A Pharo client for the OpenAI API |
| GistBrowser-Pharo | A Pharo browser and editor for GitHub Gists |
| ELIZA-Smalltalk | An implementation of the ELIZA chatbot in Smalltalk |
| Blockchain-Racket | A cryptocurrency implementation in Racket with peer-to-peer networking and smart contracts |
| scikit-learn-Hy | Machine learning examples using scikit-learn and Hy, a Lisp dialect that runs on Python |
| markdown-html | A Markdown and HTML converter built with ClojureScript and React (live demo) |
| Area | Technologies |
|---|---|
| Languages | Swift, Objective-C, Dart, Kotlin, Java, C#, F#, Clojure, ClojureScript, C++, Python, JavaScript, TypeScript, Smalltalk, Racket |
| Web | Next.js, React, TypeScript, htmx, Tailwind CSS, Vercel |
| Mobile | iOS (UIKit, SwiftUI), Android, Flutter, React Native |
| Backend | Node.js, ASP.NET, Clojure, REST APIs, GraphQL |
| Testing | Jest, Playwright |
A complete list of projects is available on the repositories page, along with my Gists.





