Independent Software Engineer & Consultant

I turn messy ideas into working products

9 years across startups, acquisitions, and the quiet grind that actually ships. Need clarity, momentum, and clean execution? I can help.

01001001 01100110 00100000 01111001 01101111 01110101 00100000 01101100 01101111 01110110

01100101 00100000 01110111 01101000 01100001 01110100 00100000 01111001 01101111 01110101

00100000 01100100 01101111 00100000 01100001 01101110 01100100 00100000 01100001 01110010

01100101 00100000 01110111 01101001 01101100 01101100 01101001 01101110 01100111 00100000

01110100 01101111 00100000 01100100 01101111 00100000 01110111 01101000 01100001 01110100

00100000 01101001 01110100 00100000 01110100 01100001 01101011 01100101 01110011 00101100

00100000 01101001 01110100 00100111 01110011 00100000 01110111 01101001 01110100 01101000

01101001 01101110 00100000 01111001 01101111 01110101 01110010 00100000 01110010 01100101

01100001 01100011 01101000 00101110 00100000 01000100 01101111 01101110 00100111 01110100

00100000 01100010 01100101 00100000 01100001 01100110 01110010 01100001 01101001 01100100

00100000 01110100 01101111 00100000 01110100 01101000 01101001 01101110 01101011 00100000

01100010 01101001 01100111 00101100 00100000 01100010 01110101 01110100 00100000 01110010

01100101 01101101 01100101 01101101 01100010 01100101 01110010 00100000 01110100 01101111

00100000 01110100 01100001 01101011 01100101 00100000 01101111 01101110 01100101 00100000

01110011 01110100 01100101 01110000 00100000 01100001 01110100 00100000 01100001 00100000

01110100 01101001 01101101 01100101 00100000 00101101 00100000 01010011 01110100 01100101

01110110 01100101 00100000 01010111 01101111 01111010 01101110 01101001 01100001 01101011

Copied!

My Journey

I've built in public, freelanced in the trenches, and shipped for global brands. Here's the short story: the work, the impact, and the lessons.

  1. Air University

    My First Startup

    Co-founded Gridge, a bold attempt to bring basketball viewers real-time play-by-play video highlights.

    Licensing and funding walls forced us to stop, but I walked away with my first real lessons in risk, rejection, and resilience.

  2. TeReSol, 1 year

    Where is My Car?

    Worked on server-side data collection of a Vehicle Tracking System.

  3. Freelance, 3 years

    Some Projects, Some Products

    Shipped dozens of projects and products. Many didn't survive, but the lessons did. I became faster at finding product-market fit and calmer under delivery pressure.

  4. Crossover, 1 year

    Re-Architecting Legacy

    Old Products, New Architectures: Contributed to modernizing large enterprise products.

    Learned how large companies stay afloat by relying on well defined processes and avoiding chaos.

  5. Drapr (Y Combinator)

    Return This!

    Worked for a YC startup and built an app that helped shoppers easily return the clothes that were not the right fit.

    I learned to take ownership of technical decisions and product trade-offs.

  6. Gap, 3 years

    Acquisition and Reducing Returns

    Built a fit tool that helped online shoppers pick the right size, directly reducing returns.

    I learned how to experiment quickly, analyze user behavior, and ship improvements that move real business metrics.

  7. Now and Forever

    Going Solo

    I build and launch my own SaaS products while consulting founders and startups. The mix keeps me close to both execution and strategy.

01001001 01100110 00100000 01111001 01101111 01110101 00100000 01100001 01110010 01100101 00100000 01101110 01101111

01110100 00100000 01100101 01101101 01100010 01100001 01110010 01110010 01100001 01110011 01110011 01100101 01100100

00100000 01100010 01111001 00100000 01110100 01101000 01100101 00100000 01100110 01101001 01110010 01110011 01110100

00100000 01110110 01100101 01110010 01110011 01101001 01101111 01101110 00100000 01101111 01100110 00100000 01111001

01101111 01110101 01110010 00100000 01110000 01110010 01101111 01100100 01110101 01100011 01110100 00101100 00100000

01111001 01101111 01110101 00100111 01110110 01100101 00100000 01101100 01100001 01110101 01101110 01100011 01101000

01100101 01100100 00100000 01110100 01101111 01101111 00100000 01101100 01100001 01110100 01100101 00100000 00101101

00100000 01010010 01100101 01101001 01100100 00100000 01001000 01101111 01100110 01100110 01101101 01100001 01101110

Copied!

01010111 01100101

01100001 01110010

00100000 01111001

01101111 01110101

01110010 00100000

01100110 01100001

01101001 01101100

01110101 01110010

01100101 00100000

01100001 01110011

00100000 01100001

00100000 01100010

01100001 01100100

01100111 01100101

00100000 01101111

01100110 00100000

01101000 01101111

01101110 01101111

01110010 00100000

00101101 00100000

01010011 01110101

01101110 01100100

01100001 01110010

00100000 01010000

01101001 01100011

01101000 01100001

01101001 00100000

00101000 01000111

01101111 01101111

01100111 01101100

01100101 00101001

Copied!

01000100 01100101 01110011 01101001 01100111

01101110 00100000 01101001 01110011 00100000

01101110 01101111 01110100 00100000 01101010

01110101 01110011 01110100 00100000 01110111

01101000 01100001 01110100 00100000 01101001

01110100 00100000 01101100 01101111 01101111

01101011 01110011 00100000 01101100 01101001

01101011 01100101 00100000 01100001 01101110

01100100 00100000 01100110 01100101 01100101

01101100 01110011 00100000 01101100 01101001

01101011 01100101 00101110 00100000 01000100

01100101 01110011 01101001 01100111 01101110

00100000 01101001 01110011 00100000 01101000

01101111 01110111 00100000 01101001 01110100

00100000 01110111 01101111 01110010 01101011

01110011 00100000 00101101 00100000 01010011

01110100 01100101 01110110 01100101 00100000

01001010 01101111 01100010 01110011

Copied!

My Toolbox

These are the levers I pull to get you from 0 to 1.

  • JavaScript & TypeScript - My everyday language.
  • 🏗️ React, Next.js, Svelte - I've watched frontends evolve from static pages to living systems.
  • 🌐 Node.js, NestJS, GraphQL - Where ideas turn into scalable APIs.
  • 🔧 Rust & C++ - The craftsman's languages for performance and edge cases.
  • 🚀 Linux, Nginx, Cloud Functions - Deployments that don't break at 3 AM.

Full Stack at a Glance:

JavaScript, TypeScript, Rust, C++, HTML, CSS, React, Next.js, Svelte, SvelteKit, React Native, Tailwind, Node.js, NestJS, Express, GraphQL, Prisma, MySQL, MongoDB, n8n, Nginx, Linux-based deployments, Google Cloud Functions, ESP Microcontrollers, Automated Testing, Sentry.

01000101 01100100 01110101 01100011

01100001 01110100 01101001 01101111

01101110 00100000 01101001 01110011

00100000 01110100 01101000 01100101

00100000 01101101 01101111 01110011

01110100 00100000 01110000 01101111

01110111 01100101 01110010 01100110

01110101 01101100 00100000 01110111

01100101 01100001 01110000 01101111

01101110 00100000 01110111 01101000

01101001 01100011 01101000 00100000

01111001 01101111 01110101 00100000

01100011 01100001 01101110 00100000

01110101 01110011 01100101 00100000

01110100 01101111 00100000 01100011

01101000 01100001 01101110 01100111

01100101 00100000 01110100 01101000

01100101 00100000 01110111 01101111

01110010 01101100 01100100 00100000

00101101 00100000 01001110 01100101

01101100 01110011 01101111 01101110

00100000 01001101 01100001 01101110

01100100 01100101 01101100 01100001

Copied!

How I Think

When I'm not writing code, I enjoy sharpening my mind and testing my instincts:

♟️ Chess: strategy, patience, and the art of thinking ten steps ahead.

The game is about shaping positions that endure. In code, I aim for architectures that stay flexible long after the first release.

Challenge me on Chess.com

🏀 Basketball: teamwork, agility, and finding rhythm in motion.

Spacing, timing, easy buckets. The best plays make teammates better and keep the scoreboard moving - same for product teams.

01010100 01101000 01100101 00100000 01101001 01101101 01110000 01101111

01110010 01110100 01100001 01101110 01110100 00100000 01110100 01101000

01101001 01101110 01100111 00100000 01101001 01110011 00100000 01101110

01101111 01110100 00100000 01110100 01101111 00100000 01110011 01110100

01101111 01110000 00100000 01110001 01110101 01100101 01110011 01110100

01101001 01101111 01101110 01101001 01101110 01100111 00101110 00100000

01000011 01110101 01110010 01101001 01101111 01110011 01101001 01110100

01111001 00100000 01101000 01100001 01110011 00100000 01101001 01110100

01110011 00100000 01101111 01110111 01101110 00100000 01110010 01100101

01100001 01110011 01101111 01101110 00100000 01100110 01101111 01110010

00100000 01100101 01111000 01101001 01110011 01110100 01100101 01101110

01100011 01100101 00101110 00100000 01001111 01101110 01100101 00100000

01100011 01100001 01101110 01101110 01101111 01110100 00100000 01101000

01100101 01101100 01110000 00100000 01100010 01110101 01110100 00100000

01100010 01100101 00100000 01101001 01101110 00100000 01100001 01110111

01100101 00100000 01110111 01101000 01100101 01101110 00100000 01101000

01100101 00100000 01100011 01101111 01101110 01110100 01100101 01101101

01110000 01101100 01100001 01110100 01100101 01110011 00100000 01110100

01101000 01100101 00100000 01101101 01111001 01110011 01110100 01100101

01110010 01101001 01100101 01110011 00100000 01101111 01100110 00100000

01100101 01110100 01100101 01110010 01101110 01101001 01110100 01111001

00101100 00100000 01101111 01100110 00100000 01101100 01101001 01100110

01100101 00101100 00100000 01101111 01100110 00100000 01110100 01101000

01100101 00100000 01101101 01100001 01110010 01110110 01100101 01101100

01101111 01110101 01110011 00100000 01110011 01110100 01110010 01110101

01100011 01110100 01110101 01110010 01100101 00100000 01101111 01100110

00100000 01110010 01100101 01100001 01101100 01101001 01110100 01111001

00101110 00100000 01001001 01110100 00100000 01101001 01110011 00100000

01100101 01101110 01101111 01110101 01100111 01101000 00100000 01101001

01100110 00100000 01101111 01101110 01100101 00100000 01110100 01110010

01101001 01100101 01110011 00100000 01101101 01100101 01110010 01100101

01101100 01111001 00100000 01110100 01101111 00100000 01100011 01101111

01101101 01110000 01110010 01100101 01101000 01100101 01101110 01100100

00100000 01100001 00100000 01101100 01101001 01110100 01110100 01101100

01100101 00100000 01101111 01100110 00100000 01110100 01101000 01101001

01110011 00100000 01101101 01111001 01110011 01110100 01100101 01110010

01111001 00100000 01100101 01100001 01100011 01101000 00100000 01100100

01100001 01111001 00100000 00101101 00100000 01000001 01101100 01100010

01100101 01110010 01110100 00100000 01000101 01101001 01101110 01110011

01110100 01100101 01101001 01101110

Copied!

01001001 00100000 01101000 01100001 01110110 01100101 00100000 01101110 01101111 01110100

00100000 01100110 01100001 01101001 01101100 01100101 01100100 00101110 00100000 01001001

00100111 01110110 01100101 00100000 01101010 01110101 01110011 01110100 00100000 01100110

01101111 01110101 01101110 01100100 00100000 00110001 00110000 00101100 00110000 00110000

00110000 00100000 01110111 01100001 01111001 01110011 00100000 01110100 01101000 01100001

01110100 00100000 01110111 01101111 01101110 00100111 01110100 00100000 01110111 01101111

01110010 01101011 00100000 00101101 00100000 01010100 01101000 01101111 01101101 01100001

01110011 00100000 01000101 01100100 01101001 01110011 01101111 01101110 00101110

Copied!