Version EN
(French below)
Hybrid, 3 days in office · Start: ASAP · Montreal-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
You'll join a small senior team and own the meaningful surface area of our platform end-to-end. Expect to:
- 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.
Python (7+ years, primary stack)
- 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.
React / Next.js (5+ years, primary stack)
- 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, please do not apply.
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.
- Competitive salary + stock options, comprehensive health + dental.
- Hybrid, modern HQ in Montreal.
How to apply
Email [email protected] with:
- Your CV.
- A GitHub or portfolio link with at least one non-trivial Python project and one non-trivial React/Next.js project that you personally architected (tutorial clones don't count).
- A short paragraph (≤200 words) describing the most complex Python backend and the most complex React frontend you've personally architected — key decisions and why.
Applications without items 2 and 3 will not be reviewed.
Selection process
- 40-min insert video call
- 45-min live technical screen, no AI tools allowed — screen-share, live coding in Python and React.
- Short take-home (~3h), followed by a pair-debug session where we walk through your code together.
- Virtual team meet-up.
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.
-----------------------------------------------------------------------------------------------
Hybride (3 jours au bureau) · Démarrage : ASAP · Candidats basés à Montreal uniquement
À propos de Draft&Goal
Draft&Goal est une startup d'IA générative soutenue par des investisseurs VC, qui développe une plateforme d'agents IA pour automatiser les opérations marketing et data de grands comptes. Nos solutions sont utilisées par des entreprises comme Turo, La Poste, TotalEnergies, Publicis Media ou Groupon.
Notre culture d'ingénierie est AI-first. Nous utilisons quotidiennement Claude Code, Cursor et d'autres outils similaires, mais nous attendons avant tout d'excellents ingénieurs. L'IA accélère le développement ; elle ne remplace ni le jugement technique ni l'expérience.
Ce que vous ferez
Vous rejoindrez une équipe réduite d'ingénieurs seniors et interviendrez sur l'ensemble de la plateforme :
- Concevoir, développer et déployer des services backend en Python et des applications frontend en React / Next.js.
- Déployer sur AWS et GCP avec Docker et Kubernetes.
- Intégrer des agents IA et des composants basés sur les LLM dans des workflows de production.
- Prendre des décisions d'architecture autour de la scalabilité, des performances et de la sécurité.
- Concevoir et maintenir des API REST robustes pour des environnements enterprise.
- Utiliser les outils de génération de code avec esprit critique et relire systématiquement le code produit.
Ce que nous attendons de vous (non négociable)
Il s'agit d'un poste Full Stack senior. Nous recherchons des ingénieurs ayant déjà conçu, livré et exploité des systèmes en production sur l'ensemble de la stack.
Python (7+ ans)
- Vous avez conçu et mis en production au moins un service Python gérant un trafic réel.
- Vous êtes capable d'expliquer son architecture, ses limites et les compromis techniques effectués.
- Vous avez déjà diagnostiqué et corrigé un incident complexe en production (memory leak, deadlock, problème de performance, comportement inattendu d'une dépendance, etc.).
- Vous maîtrisez les aspects opérationnels d'un service : graceful shutdown, structured logging, retries avec backoff, idempotence, health checks, gestion propre de la configuration.
- Vous avez utilisé le typage statique sur des projets significatifs et savez quand il apporte de la valeur.
- Vous avez conçu une API ou une librairie consommée par d'autres équipes en portant une attention particulière à son ergonomie et à sa maintenabilité.
React / Next.js (5+ ans)
- Vous avez été responsable d'une codebase React importante en production.
- Vous maîtrisez le fonctionnement interne de React : reconciliation, rendering lifecycle, batching, concurrent rendering et gestion des keys.
- Vous savez analyser les performances avec React Profiler et résoudre les problèmes de re-render sans surutiliser memo ou useCallback.
- Vous avez pris des décisions d'architecture concernant le state management (Context, Redux, Zustand, Jotai...).
- Vous avez conçu une couche de données robuste avec TanStack Query, SWR ou une solution équivalente : cache, invalidation, optimistic updates, gestion des race conditions et stratégies de refetch.
Expérience Full Stack
- Excellente maîtrise de PostgreSQL : modélisation, optimisation et tuning de requêtes.
- Vous avez déjà piloté un incident de production jusqu'au post-mortem.
- Vous considérez les outils d'IA comme des accélérateurs, pas comme des substituts aux compétences techniques.
- Vous êtes capable de réaliser une revue approfondie d'une pull request volumineuse et de challenger les choix techniques.
Si vous avez utilisé ces technologies sans avoir eu de responsabilités d'architecture ou de production, ce poste ne correspondra probablement pas à votre profil.
Bonus
Une expérience sur tout ou partie des sujets suivants sera appréciée :
- IA générative en production : orchestration de LLM, agents, RAG, LangChain ou équivalent.
- Observabilité : OpenTelemetry, tracing distribué, monitoring et budgets de latence.
- Optimisation avancée de PostgreSQL.
- React Server Components en production.
Pourquoi nous rejoindre ?
- Construire une véritable plateforme d'agents IA pour des clients enterprise.
- Travailler sur des produits utilisés chaque semaine par des groupes internationaux.
- Évoluer dans une culture d'ingénierie AI-first.
- Salaire compétitif, BSPCE / stock-options, couverture santé et dentaire.
- Bureau moderne à Montréal avec organisation hybride.
Candidature
Envoyez un e-mail à [email protected] avec :
- Votre CV.
- Un lien GitHub ou portfolio présentant au moins un projet Python et un projet React / Next.js significatifs que vous avez personnellement architecturés.
- Un court texte (200 mots maximum) décrivant le backend Python le plus complexe et le frontend React les plus complexes sur lesquels vous avez travaillé, ainsi que les principaux choix d'architecture.
Les candidatures incomplètes ne seront pas étudiées.
Processus de recrutement
- Entretien vidéo (40 min).
- Live coding (45 min) en Python et React, sans IA.
- Take-home (~3 h), suivi d'une session de pair debugging.
- Rencontre virtuelle avec l'équipe.
Un processus rapide et orienté technique.
Prérequis
- Résider au Québec et disposer d'un permis de travail valide.
- 7+ ans d'expérience professionnelle en développement logiciel, avec le niveau d'expertise attendu sur chaque stack.
- Poste ouvert jusqu'à recrutement. Les candidatures anticipées sont encouragées.
Draft&Goal est un employeur garantissant l'égalité des chances et s'engage à promouvoir un environnement de travail inclusif.
Type d'emploi : Temps plein
Rémunération : 90 000,00$ à 110 000,00$ par an
Avantages :
- Assurance Dentaire
- Assurance Maladie Complémentaire
- Congés payés
Lieu du poste : Télétravail hybride à Montréal, QC H2S 3J9