David Marinović

I build the systems that make products actually work — analytics, internal tooling, auth, integrations, payments. I've shipped and maintained all of it through Shaped Systems.

Now looking to join a strong team as a product or full-stack engineer.

TYPESCRIPT · NEXT.JS · PYTHON · POSTGRESQL · API DESIGN · STRIPE · MCP · TYPESCRIPT · NEXT.JS · PYTHON · POSTGRESQL · API DESIGN · STRIPE · MCP · TYPESCRIPT · NEXT.JS · PYTHON · POSTGRESQL · API DESIGN · STRIPE · MCP · TYPESCRIPT · NEXT.JS · PYTHON · POSTGRESQL · API DESIGN · STRIPE · MCP ·

Background

I like building new products from zero and improving existing ones where the details actually matter. My work tends to sit at the intersection of product thinking, systems design, and execution — figuring out what should be built, then making it reliable, usable, and worth maintaining.

Most of what I've learned has come through shipping real software and staying close to the full system — from data modeling and integrations to what happens after users show up. I'm comfortable learning new technologies as the work demands it, and I do well in environments where adaptability and engineering rigor are expected, not optional.

Selected Work

Agent Service Desk

Multi-tenant AI support platform with RAG-grounded drafting, triage classification, and a prompt evaluation harness for comparing AI quality across versions.

  • Agentic RAG pipeline — model chooses what to retrieve via tool use, with traceable citations
  • RLS-enforced tenant isolation; JWT auth bridging BetterAuth sessions to PostgreSQL row policies
  • Eval console for side-by-side prompt version comparisons with per-example accuracy deltas
FastAPIPythonNext.jsOpenAI APIpgvectorNeonBetterAuthRedis

OpsKings Dashboard

Support analytics platform processing 40K tickets with role-based access, stored-function aggregations, and sub-400ms query performance. Built as a take-home that went well beyond scope.

  • Six stored functions running under RLS — all aggregation server-side, zero client-side transforms
  • CTE pre-aggregation fix eliminated a 284K-row cross-join, cutting query time from 348ms to 135ms
  • Parallel server action pattern solving Next.js sequential serialization with Promise.all
Next.js 16TypeScriptSupabaseDrizzle ORMBetterAuthTanStack QueryRecharts

Shaped PMS

Multi-property booking engine with dual-flow Stripe payments, channel manager API, and automated guest communication. Production system with real transactions.

  • REST API for OTA channel managers to push reservations from Booking.com, Airbnb, and Expedia
  • Dual payment mode — deposit-based and full-charge flows via Stripe with webhook reconciliation
  • Availability engine with 23 tests covering pricing logic and cross-property inventory sync
TypeScriptNext.jsNeon PostgresStripeDrizzle ORMResend

Support Ops MCP

MCP server exposing Agent Service Desk workflows as typed tools for Claude Code, Codex, and other MCP clients. Supports stdio and Streamable HTTP transport.

  • Eight tools covering the full triage-to-review pipeline — search, inspect, triage, and more
  • Stateless architecture — each tool call is a JWT-authenticated HTTPS request
  • 18 unit checks and 4 end-to-end workflow scenarios validating the full pipeline
TypeScriptMCP ProtocolNode.js

How I Work

Product-minded engineering

I think in user flows, constraints, and outcomes — not isolated tickets.

Systems over patches

I prefer clean primitives, reusable workflows, and durable architecture over one-off fixes.

High ownership

Comfortable owning the full path — I don't hand off at the boundary and wait for someone else to close the loop.

High-leverage workflow

I use AI tools to accelerate execution and exploration, but keep decisions, tradeoffs, and quality bar deliberate.

Get in touch

Open to product and full-stack roles — including founding engineer positions — where ownership and engineering quality matter. If you're building something ambitious, I'd be glad to hear from you.

Email me