05 Aug
|
Draft & Goal
|
Montreal
05 Aug
Draft & Goal
Montreal
Hybrid, 2 days in office · Start: ASAP · Quebec-based only
ABOUT DRAFT&GOAL;
Draft&Goal; is a VC-backed generative-AI company building the agentic marketing operating system. We design and deploy complex AI agent workflows that automate content and data operations for enterprise clients including Turo, La Poste, TotalEnergies, Publicis Media, and Groupon.
We are an AI-coding-first engineering org. We use Claude Code, Cursor, and adjacent tools daily — but our bar for human engineering ability is non-negotiable. AI accelerates our experts; it does not replace expertise.
WHAT YOU'LL DO
- Design, build, and ship backend services in Python and frontends in React/Next.js, deploying to GCP and AWS via Docker and Kubernetes.
- Integrate LLM-based agents and generative-AI components into production workflows alongside our R&D; team.
- Own architecture decisions for scalability, performance, and security.
- Build and maintain RESTful APIs that hold up under enterprise load.
- Use AI coding tools strategically — and critically review every line they produce.
WHAT WE EXPECT FROM YOU (NON-NEGOTIABLE)
This is a senior dual-stack role. We're looking for engineers who have owned production systems on both sides and can defend every architectural decision. If the bullets below don't describe how you actually work, this role isn't for you.
- You’ve designed and shipped at least one Python service handling real production traffic. Not a side project, not a prototype. You can walk through its architecture, its failure modes, and what you’d build differently today.
- You’ve debugged a real, non-trivial Python problem in production: memory leak, deadlock, slow cold start, or a library misbehaving under load. You found it, you fixed it, you can still explain what was actually wrong.
- You’ve owned the operational side of a Python service: graceful shutdown, structured logging, retries with backoff, idempotent writes, healthchecks that mean something, configuration that doesn’t leak between environments.
- You’ve made type safety pay off on a real codebase past the prototype stage. You know when stricter typing helped the team and when it slowed it down, and you can articulate which.
- You’ve designed a Python API (internal SDK, shared library, or service contract) that other engineers consume. You think about ergonomics, error surface, and what happens when callers misuse it.
- You’ve owned a React codebase past ~50K lines of code with multiple contributors in production. You can defend the architectural decisions that kept it maintainable as it grew.
- You understand React’s rendering model deeply: reconciliation, key behavior, batching, concurrent rendering. You can predict why a tree re-renders without guessing.
- You’ve used the React Profiler to find an unnecessary re-render chain and fixed it properly, without reaching for a memo as a shotgun. You know when memo, useMemo, and useCallback earn their place and when they’re cargo cult.
- You’ve made informed architectural decisions about state management at scale: when local state is enough, when Context becomes a performance liability, when an external store (Zustand / Redux / Jotai) actually earns its keep. You can articulate why.
- You’ve architected a data layer against a remote API at depth (TanStack Query, SWR, or equivalent): cache keys, invalidation strategies, optimistic updates, race condition handling, refetch policies.
ACROSS BOTH STACKS
- Postgres at depth: you’ve designed a schema that survived 10x row growth and tuned a query from seconds to milliseconds.
- You’ve owned at least one production incident end-to-end (detection,
diagnosis, mitigation, post-mortem), and the team trusted you to lead it.
- AI coding tools are an accelerant, not a crutch. In our technical interview you will write Python and React without AI tools, explain your code line by line, and debug under pressure.
- You can review a 2,000-line PR from a teammate and produce a thoughtful review.
If you’ve used most of these technologies but never made architectural decisions about them, this role isn’t a fit and applying will waste both our time.
NICE TO HAVE (WE'LL LIKELY ASK ABOUT THESE)
- Generative AI in production: LLM orchestration, agentic patterns (ReACT, tool use), RAG pipelines, LangChain or equivalent.
- Observability in production: OpenTelemetry, structured tracing, latency budgets.
- Postgres tuning past the 100ms mark.
- React Server Components shipped to real users.
WHY JOIN
- Operate at the frontier of agentic AI for enterprise — not a wrapper, a platform.
- Real ownership: ship to enterprise customers (Turo, La Poste, Publicis Media, TotalEnergies…) every week.
- AI-coding-first culture: master Claude Code, Cursor, and what comes next.
- Market-competitive salary + stock options, comprehensive health + dental.
SELECTION PROCESS
1. 40-min introductory call.
2. 45-min live technical screen, no AI tools allowed — screen-share, live coding in Python and React.
3. Short take-home (~3h), followed by a pair-debug session where we walk through your code together.
Quick, decisive process — we don't drag candidates through eight rounds.
REQUIREMENTS
- Currently based in Quebec, Canada, with a valid work permit.
- 7+ years of professional software engineering, meeting the per-stack minimums above.
- Open until filled — early applications encouraged.
Draft&Goal; is an equal opportunity employer. We celebrate diversity and are committed to creating an inclusive workplace.
LE POSTE
COMMENT POSTULER
#J-18808-Ljbffr
📌 Senior Full Stack Engineer / Ingénieur(e) Full Stack Senior (Python + React)
🏢 Draft & Goal
📍 Montreal