Founder · Frontend Engineer · Tech Lead

Dominik Żurawski

I build the products, the teams, and the code that runs them. Founder mindset, engineer's hands.

Founder first

Built to build things.

I've co-founded and led a SaaS company from idea to production, owning product, design, infrastructure, and a small distributed team along the way. That founder mindset, a bias to ship, an obsession with user value, and comfort with ambiguity, is how I approach every project since.

Today I lead frontend architecture for multi-tenant SaaS platforms in React and TypeScript. Engineering is the craft I use to turn ownership into outcomes.

8+
Years building
1
Startup co-founded
5+
Companies shipped for
Experience

Where I've built.

2024 — Present

Lead Frontend Engineer · Orbify

Own frontend architecture across multiple SaaS products. Designed a multi-tenant system supporting parallel deployments and custom client branding.
React TypeScript Mapbox AWS
2022 — 2024

Senior Mobile & Web Engineer · Solidstudio

Shipped React Native and Next.js products for Volvo, GreenCell, and GreenWay, bridging business needs and engineering decisions.
React Native Next.js GraphQL Stripe
2022

Senior Web Engineer · fireup.pro

Led teams through architecture, estimation, and security-focused refactors as the bridge between business and engineering.
React TypeScript AWS
2020 — 2022

Co-founder & CTO · Orapa.co & Intro.so

Co-founded a SaaS solutions. Owned product strategy, UI, infrastructure, and a distributed team from MVP to production.
Next.js Firebase Product
2018 — 2020

Software Engineer · Freelance

Built full-stack products for startups across e-commerce, sustainability, and design.
React TypeScript
Selected work

Real problems, real trade-offs.

A few breakdowns of how I approach building, and the trade-offs that come with it.

The problem

When I joined Orbify, there was no dedicated frontend architecture and no one owning frontend decisions. The codebase had grown fast into a large, inconsistent surface built on outdated patterns, the kind that gets progressively harder to build on the longer it's left alone.

The approach

I led a team through a full refactor, replacing outdated patterns with a modern React architecture based on bulletproof-react. The key decision was speed of delivery versus technical purity: instead of a full monorepo, I adapted bulletproof-react so multiple apps could share a common component set and core logic, like auth and API clients, without taking on monorepo overhead. It was a deliberate trade-off suited to a startup that needed to keep shipping while we rebuilt underneath it.

The result

The application got faster, but the bigger win was maintainability. In a startup shipping quickly, a codebase the whole team can move through confidently matters more than any single clever pattern.

  • Building new features is quick and easy.
  • The app is easily testable.
  • Bugs are found and resolved quickly.
  • The team keeps moving without stalling, thanks to the patterns and way of working we established together.
React TypeScript Architecture Team Leadership
The problem

GreenCell, an EV technology company, needed a mobile app that could reliably control and monitor Habu, their mobile EV charger, in real time. No single connection method was good enough on its own: Bluetooth offers near-instant control but only works at close range, while cellular reaches anywhere but with more delay. The app had to feel instant regardless of which one was actually available.

The approach

I built the app in React Native with a connection-quality-aware architecture: BLE first, since it let us poll and control Habu with almost no delay, and an automatic fallback to 3G when Bluetooth was unavailable or too weak, accepting slightly more latency in exchange for the charger staying reachable from anywhere.

The result

The app stayed responsive whether you were standing next to your charger or controlling it remotely, switching connections automatically without the user ever having to think about it.

  • Designed a connection-quality-aware architecture that automatically switched between BLE and cellular based on signal availability.
  • Achieved near-instant polling and control over Bluetooth for close-range use.
  • Handled the harder case of keeping the app usable over cellular when Bluetooth degraded, instead of letting it just fail.
  • Shipped a production app used by real customers to control physical EV chargers.
React Native Bluetooth (BLE) iOS EV / IoT
The problem

Solidstudio was a software agency where I worked as a senior mobile and web engineer, building a whitelabel product that customers could license and deeply customize into their own branded apps. The real challenge was architectural: how do you ship updates and cherry-picked changes to a shared core product without breaking the live, already-customized apps running in production for real customers?

The approach

Designing the underlying system was the crucial piece: without a clear separation between the shared core and each customer's customization layer, shipping a true whitelabel product wouldn't have been possible at all. My focus was the mobile side, built in React Native with Expo modules, where every whitelabeled customer shipped independently under their own Apple Developer account. Each customer also got an admin panel, built in React and Ant Design, to manage their own configuration.

The result

The system let us ship a genuinely whitelabel product: customers could deeply customize their app without diverging from the core, and updates could flow back in without constant merge conflicts across every customer's live app.

  • Designed a whitelabel architecture that separated the shared core from each customer's customization layer, keeping updates conflict-free across many live apps.
  • Built the mobile app in React Native with Expo modules, shipped independently for each customer under their own Apple Developer account.
  • Built customer-facing admin panels in React and Ant Design so each whitelabel customer could manage their own configuration.
  • Kept the product update-able and maintainable at scale, instead of re-solving the same conflicts for every customer.
React Native Expo React Ant Design Whitelabel Architecture
The problem

Coming out of Orapa.co, we needed a product sales teams would actually want to use, not just another feature nobody asked for, and we needed to find that out fast without spending months building the wrong thing.

The approach

We first tested an interactive AI sales training chatbot combining text-to-speech, speech-to-text, and natural language intent analysis, built on GPT-3 years before ChatGPT popularized LLMs, when the APIs, tooling, and best practices we take for granted today barely existed. We then simplified into Intro.so: a standalone Electron desktop app and a Chrome extension that injected insights about the people you were meeting directly into Google Calendar, right before your Google Meet call. Under the hood it was a TypeScript codebase with a Node/Express backend, sourcing data by scraping LinkedIn with Puppeteer and combining it with third-party data providers.

The result

The Chrome extension became the strongest signal across everything we built: hundreds of customers used it, real proof that people wanted meeting insights surfaced automatically. But we never built out the layer needed to turn that adoption into a fully monetizable product, so revenue never followed and we eventually wound the company down. The company ultimately didn't become a sustainable business, but the experience fundamentally shaped how I build products today: validate quickly, measure honestly, and optimize for solving real customer problems rather than falling in love with an idea.

  • Built and shipped a working AI product on GPT-3 years before ChatGPT existed, when off-the-shelf APIs and tooling weren't an option.
  • Grew the Chrome extension to hundreds of customers, the clearest product-market signal across everything we built.
  • Shipped the extension to the Chrome Web Store and distributed the Electron desktop app directly through our own website.
  • Recognized that adoption alone wasn't a business, and made the call to wind down rather than operate without a path to revenue.
TypeScript Node / Express Electron Chrome Extension Puppeteer AI / LLM Founder
The problem

Even with money, you can't move fast without a network, especially in tech. Orapa.co set out to fix that: a marketplace where you could pay for a warm introduction to people worth knowing.

The approach

We built it quickly and deliberately kept scope tight: just enough to get real supply and demand in front of each other and learn whether the model held up, rather than over-engineering a product nobody had validated yet.

The result

We validated product-market interest fast, and just as fast ran into the problem that kills most two-sided marketplaces: we couldn't fill the supply side quickly enough for the model to work. Rather than keep pouring time into a marketplace that wasn't holding together, we made the call to pivot.

  • Validated the marketplace concept in weeks, not quarters, by shipping fast and measuring real supply and demand.
  • Identified that marketplace liquidity, not engineering execution, was the fundamental bottleneck.
  • Made the call to pivot early rather than keep investing in a model that wasn't working.
Marketplace 0 → 1 Product Strategy Founder

More case studies in progress. Check back soon.

Toolkit

What I build with.

Web & Mobile

React Next.js TypeScript React Native Expo

Product & Infra

GraphQL AWS Firebase Mapbox Stripe

Craft

Design Systems CI/CD Testing Accessibility

AI-Assisted Engineering

Prompt-based prototyping AI-assisted coding

Let's build something.

Open to founding engineer roles, senior engineering leadership, and contract work with teams that ship.

© Dominik Żurawski