Founding Engineer — EmployLabs
EmployLabs
- Experience
- 2+ years
- Location
- Remote · India
- Job type
- Full-time
- TypeScript
- Python
- PostgreSQL
- system design
- LLM
- AI coding agents
About the role
Own one area from problem to production without waiting for answers. Ship features that cross multiple services and codebases. Ensure reliability of long-running workflows and real-time voice interviews. Keep spend capped under retries and parallel workers. Maintain data consistency between two systems (Employ and Zia). Measure and maintain LLM quality with evals.
What you’ll do
- read the code and query production to find out what is really happening before deciding what to change
- write down the states, what happens on a retry, a restart or a duplicate event, and what it costs
- direct AI coding agents and review every line as if you wrote it yourself
- ship and verify changes in production
- find root cause when something breaks
- participate in daily standup 12:30–1:30 IST
What we’re looking for
Must have
- TypeScript
- Python
- PostgreSQL
- system design
- LLM
- AI coding agents
Nice to have
- real-time voice
- WebRTC
- telephony
- speech-to-text
- text-to-speech
- WhatsApp Business API
What makes this role challenging
- owning features that cross two codebases and a dozen services
- ensuring long-running workflows survive deploys and crashes without duplication
- maintaining real-time voice call continuity during deploys
- keeping cost caps under retries, parallel workers, and public endpoints
- handling WhatsApp 24-hour window and template rules
- measuring and proving LLM quality doesn't degrade
What success looks like
- First 30 days
- Run the stack locally, understand how Employ, Zia and the BD engine connect, and ship a small fix to production.
- By 90 days
- Own one feature end to end in Employ or Zia, from design to production verification.
- First year
- Own a whole area (outreach, voice assessment, WhatsApp channel, or BD pipeline) including its design, reliability, and roadmap.
About EmployLabs
EmployLabs is an AI-native recruitment platform that offers a people search engine scanning over 80 million profiles and a live AI interview agent named Naira. The company serves GCCs, agencies, and enterprises including BMW, Randstad, Deloitte, and Accenture.
HRTech / Enterprise Applications · 1–10 employees
Founding Engineer — EmployLabs
Full-time · Remote (India) · 2+ years experience · salary + ESOP
About us
EmployLabs builds AI that does the work of recruiting. We run three connected products:
- Employ, the recruiter platform. A recruiter posts a job. AI turns it into an ideal-candidate profile, sources and scores candidates, runs outreach by email and phone, and an AI voice interviewer assesses the shortlist. The recruiter approves at set checkpoints.
- Zia, an AI career companion on WhatsApp, phone calls and web. She remembers each person and helps with salary talks, offers and job moves. Zia is also how Employ talks to candidates: Employ hands Zia a job, Zia has the conversation and reports back.
- GTM / BD, our own sales engine. It finds companies that are hiring, triages them, and invites them into a Company Room: a public page where an AI consultant maps their hiring market and shows them sample candidates pulled from live sourcing.
It's a small, founder-led team, and all three products are live in production.
Why this role exists
The platform has grown into an ecosystem: two production codebases (TypeScript and Python), more than a dozen services, 100+ Postgres tables, long-running workflows, real phone calls, WhatsApp lines and paid data vendors. Every feature now crosses two or three of these.
We need an engineer who can take one area and own it from problem to production without waiting for someone to answer questions. You read the code and the production data, decide what to build, build it and prove it works.
What owning a feature means here
- Start from the problem. Read the code and query production to find out what is really happening before deciding what to change.
- Design before you build. Write down the states, what happens on a retry, a restart or a duplicate event, and what it costs. Share it before the first line of code.
- Build it. Most of our code is typed by AI coding agents. You direct them and review every line as if you wrote it yourself.
- Ship and verify it in production. A change is done when production data shows it working.
- Stay with it. When it breaks, you find the root cause.
Problems you'll work on
These come from our codebase today
- Workflows that last days. An outreach sequence runs over several days. It has to survive deploys and crashes without emailing someone twice or going silent.
- Live AI voice interviews. A candidate is mid-interview with our AI interviewer. A deploy must not cut the call, and a crash must not lose the transcript or the scoring.
- Spend that stays capped. Enrichment APIs, contact lookups, LLM calls and phone calls all cost money. Caps have to hold under retries, parallel workers and a public, unauthenticated chat page.
- Two systems, one contract. Employ (TypeScript) and Zia (Python) hand candidates back and forth: missions, referrals, outcomes, opt-outs. A dropped or duplicated message means a real person gets a wrong message.
- Real-time voice. Phone audio goes through speech-to-text, an LLM and text-to-speech with first audio in under 2 seconds, and it has to handle interruptions and bad lines.
- Messaging you don't fully control. WhatsApp lines must recover on their own after a restart, and we need to know when one quietly dies. WhatsApp's 24-hour window and template rules apply on top.
- LLM quality you can measure. Candidate scoring must be based on evidence, and an LLM-as-judge eval harness checks Zia's replies. A prompt or model change needs proof it didn't get worse.
Tech stack (current)
- Employ API: TypeScript, Hono, Mastra (agents + durable workflows), Drizzle ORM, PostgreSQL 16 (pgvector), Redis, Zod contracts shared with the web app
- Employ web + landing: Next.js 16, React 19, TanStack Query, Tailwind v4, shadcn/ui, Better Auth
- Voice: Python, LiveKit Agents on self-hosted LiveKit, Deepgram, Cartesia, ElevenLabs, Plivo
- Zia: Python, FastAPI, async SQLAlchemy, Alembic, PostgreSQL, Redis, Qdrant (semantic memory), APScheduler, Next.js 15 frontend
- Messaging: Resend (email), Plivo (WhatsApp + calls), a WhatsApp gateway, a Chrome extension for LinkedIn
- AI: Claude, DeepSeek and others through OpenRouter, prompt caching, structured output, LLM-as-judge evals
- Infra: Docker Compose on Hetzner, Dokploy, Traefik, Cloudflare R2, GitHub Actions, GlitchTip
You will work in both TypeScript and Python. You need to be strong in one and willing to learn the other fast.
Must have
- 2+ years of full-time software engineering, shipping and running production systems that real users depend on.
- You have owned a feature or product end to end: design, build, deploy, and fixing it in production. You can tell us what broke after launch and how you found out.
- System design that starts from failure. Async jobs, queues or workflow engines, idempotency, retries, state machines, race conditions. You can explain what happens when a worker dies halfway through a job.
- Strong TypeScript or Python, and solid Postgres: schema design, migrations on live data, indexes, transactions and locks.
- You have shipped LLM features to real users and know how they fail: bad structured output, cost spikes, quality drift. You have measured quality with evals or production data.
- You build with AI coding agents every day (Claude Code, Cursor, Codex) and check what they write: you read the diff, write tests that can fail, and verify in production.
- You write clearly. You can put a design on one page that someone else can review in ten minutes.
- Available for the daily standup, 12:30–1:30 IST.
Strong signals
- You have built and launched your own product, a side project, startup or open-source tool that real people used. That means you have done every job yourself, from design to support.
- Real-time voice, WebRTC, telephony, or speech-to-text/text-to-speech pipelines
- WhatsApp Business API or messaging at volume
- Agent frameworks (Mastra, LangGraph or your own) or durable workflow engines (Temporal, Inngest)
- Running your own infrastructure: Linux servers, Docker, reverse proxies, backups, reading production logs
- An early-stage startup as one of the first engineers
- Recruiting or HR tech
This role is probably not for you if
- you need a detailed spec before you start
- you only want to work on one layer (only frontend, only backend, only prompts)
- "tests pass on my machine" is where your job ends
- you want a stable roadmap. Ours changes as we learn from customers every week.
How we work
- Async and task-based. No hour tracking. The daily standup, 12:30–1:30 IST, is the only fixed sync.
- Founder access. You discuss architecture directly with the founders, and you are expected to disagree when you have a reason.
- Plan before you build. For anything non-trivial we write down the states and failure cases first, because that is where our bugs have come from.
- Root cause over patch. If an implementation is wrong, we remove it instead of adding a threshold to hide it.
- AI-native. We run several coding agents in parallel. The engineer's job is the design, the review and the proof.
- Fast pace. Features go from idea to production in days.
Your first 90 days
- Weeks 1–2: run the stack locally, learn how Employ, Zia and the BD engine connect, and ship a small fix to production.
- Weeks 2-4: own one feature end to end in Employ or Zia.
- Months 2: own a whole area, such as outreach, voice assessment, the WhatsApp channel or the BD pipeline. That includes its design, its reliability and its roadmap, which you plan with the founders.
Compensation
Competitive salary plus meaningful equity (ESOP). Tell us your expected compensation in your application.
How to apply
Subject: `Founding Engineer - `
In the body, answer briefly
- A feature or product you owned end to end: what it did, which parts were yours, and what broke in production. (3–5 lines + links)
- Something you built on your own (product, side project, open source), with a link, if you have one.
- Years of experience, location, current and expected compensation, notice period.
Attach your resume. the answers above are the cover letter.
We read every email. The shortlist gets a 30-45 minute call with the founder and an engineer. We go deep on a system you built, then design something from our own products together. No DSA rounds and no live coding. If it's a fit, the last step is a short trial or direct hire.