Founding Product Engineer
Veedma is a telehealth practice for men's hormonal and sexual health. The product is the patient flow: intake, lab ordering, provider review, prescriptions, messaging, billing. We integrate with Akute (EMR) and Stripe (billing). AI-native two ways: both founders code in Claude Code every day, and the production code calls OpenAI's API from Python for the in-product and content-pipeline features that benefit from it. About the founders You will work with both of us directly, every day. The CTO is the one reviewing your code. Vladimir Kotlov, MD - Founder & CEO. Urologist by training (MD, 2014) with clinical experience in men's reproductive health. The clinical voice in every product call. (https://www.linkedin.com/in/vkotlov/) Victor Kuznetsov - Founder & CTO. 20+ years in software engineering and AI/ML. Previously Co-Founder & CTO of Yva.ai (people analytics, acquired by Visier). Owns the Veedma platform end-to-end today and will review your code. (https://www.linkedin.com/in/wiltodelta/) If the people you would be reporting to matters to you (it should), open both profiles before you apply. You probably fit if When you see a bug, a slow query, a missing tool - your hand is already on the keyboard. You don't wait for a ticket, a sprint, a spec review. You read the code, fix the thing, write the migration, and the PR is in flight before lunch. You're personally interested in men's health, hormone optimization, or longevity - the engineers who do their best work here are the ones who would use the product themselves. You don't need to be a Veedma patient, but you should be the kind of person who would consider becoming one. What you will own Patient-facing flows. Intake, lab upload, report delivery, messaging, payment. Internal tools for the clinical team. Whatever turns the platform into a clinic - lists of who needs what next, draft-and-send workflows, the small admin screens that save the team a day a week. Integrations. Akute, Stripe, Postmark, Fillout, ShipStation, Slack. Spec to prod, end-to-end. Spec Monday, in production by midweek, watched in Sentry the same day. No handoffs. The AI layer, both sides of it. Inside the product and the content pipeline: OpenAI API calls from Python that power the features and automations that benefit from an LLM. Inside the team: Claude Code skills and sub-agents the founders and clinician use to do their own work faster. You own and extend both. Stack Python (Flask) primary. Backend, async jobs, integrations, data pipelines, internal tools. PostgreSQL Celery + Redis for queues and scheduled jobs Tailwind CSS + Flowbite, server-rendered from Flask templates. No SPA today. Akute (EHR), Stripe, Postmark, Fillout, ShipStation, Slack as the live integrations. OpenAI API called from Python for the in-product features and content-pipeline automations that benefit from an LLM. Choice of model is not religion either - we will switch providers when the trade-off changes. Claude Code, custom skills, and MCP integrations are how the team works day-to-day. This is the stack today, not a religion. We swap pieces when there is a real reason. We expect you to argue for changes, lead them, and own the cost of them. The wrong fit is "I only work with X" in either direction. What we are looking for 7-8+ years building production web apps end-to-end. Senior, hands-on. You have shipped features real customers used and paid for, and you have owned a system long enough to live with your own design decisions. Healthcare is in your background. Most of those years were spent shipping production code at a healthcare, telehealth, EHR, digital therapeutics, pharmacy, or medical-device company. You know what PHI is. You have argued about HIPAA with a security team. You have hit an EHR API and lived to tell about it. You want to stay in healthcare. This is not your "let me try something different from fintech" tour. When you describe what you want to build over the next 5 years, healthcare is in the answer without prompting. Claude Code is your primary tool. Not Cursor, not Copilot autocompletes, not "I sometimes ask Claude". 6+ months of daily use, 4+ hours per day. You write skills, wire up MCP servers, compose sub-agents, and have a real CLAUDE.md in every repo you own. If you cannot describe your Claude Code workflow in concrete detail, wrong seat. Strong Python. This is our primary language. Production Python at depth - typed code, async, packaging, profiling, real test coverage on the parts that matter. Not "I picked it up for a side project." Ship across the stack daily. Frontend, backend, schema migrations, infra - whichever the task needs. You don't wait for a teammate to do the other half. Real external integrations under your belt. At least one that mattered - payments, EHR, messaging, identity. You know what good error handling looks like, and what 3am pager pain teaches you. You have shipped LLM features to real users, not demos. Production prompt engineering, evals on real data, retrieval, structured outputs, cost-and-latency budgeting - you know what each of these is and why each one bites. "I have used ChatGPT" does not count. "I built a cool demo" does not count. Tooling is part of your job. If the internal dashboard you need doesn't exist, you build it. If the deploy is painful, you fix it. If the test suite is slow, you make it fast. You don't file tickets against yourself. Tests on the parts that need them, not everywhere. Nice to have Direct experience with EHR systems (Akute, Healthie). Worked at Hims, Ro, Hone, Maximus, or similar DTC telehealth. Stripe billing experience beyond a basic checkout. Flask, Peewee, or Celery in production. Comfortable shipping server-rendered HTML (Jinja templates, Tailwind) when that's what the task needs - and equally comfortable arguing for a SPA, a different framework, or a different language when it earns its keep. How we operate AI-native, not AI-curious. Both founders code in Claude Code every day. The bar for "should this be a tool" is hours, not weeks. In-product LLM features (OpenAI API in Python) and team-side AI tooling (Claude Code skills) are both real, both maintained, and both yours to extend. No queues, no tickets pointed at yourself. If you see it broken, you fix it. If a script would save you four hours a week, you build it Friday. We don't wait. Never idle. Always something being tested, a signal we're chasing, a part of the product getting tighter. A week without something new shipped to patients or providers is a broken week. Signals over opinions. What patients message us, what support tickets say, where the funnel breaks, what the error logs scream - that sets the backlog. The product changes when the data says so, fast. Straight line to the founders. No layers. You're in the room (Slack, Linear, the weekly call) where product, clinical, and business decisions happen. You're expected to push back when you disagree. Business-engaged or wrong seat. Not someone who picks up tickets and goes home. Someone who reads retention, has a view on what should be built next, and pings us at 9pm when production is off. Async-first, US hours overlap. Code review by the team. No long-running branches. We ship every day at minimum. Apply To This Job