Description
English Version (French will follow)
Full-Stack Web Developer (Intermediate) Remote (Québec-based) · Full-time, permanent
About ProductShop
ProductShop is a Montréal venture studio and engineering lab.
On the software side, we build and ship production work for a lean roster of clients: custom operations platforms, e-commerce storefronts, ERP modernization, client and compliance portals, loyalty and rewards programs, systems integration, and much more.
We also build hardware, from connected devices to smart building products, and act as a fractional CTO for several of our clients.
Small team, real ownership, no layers of process between you and shipping.
The role
You'll take features from requirement to production: data model, backend, frontend, tests, deployment, and support.
You'll report to a senior developer who reviews your plans and PRs and is available when you're stuck.
Communication is expected, not optional; asking early beats going quiet for three days.
We build with AI, but we don't vibe code
AI tools are part of our daily workflow, but they must be used properly.
What that means here:
You can explain and defend every line that ships under your name, whether you typed it or an agent generated it.You review AI output like a junior developer's PR; reject it, correct it, re-scope it.You structure repos so agents produce good work: maintained agent instructions, project rules, reusable skills, tests as guardrails.You plan before generating, and you know when writing it yourself is faster.
What we need
3+ years of professional web development, shipping and maintaining production applications; this is not a junior role; you've owned features in a real production codebaseTypeScript; strict typing as a design tool, not a formalityReact / Next.js (App Router); server/client boundaries, data fetching, cachingNode.js backend (Express or equivalent); designing and consuming REST APIsPostgreSQL and data modelling; schema design, indexing, non-trivial SQL by hand, transactions and concurrency; comfortable with REST and GraphQL over that dataTailwind + shadcn/ui on solid CSS fundamentals; you can build a clean admin UI without a designer on standbyGit (branching, rebasing, PR workflow) and Docker (building, running, debugging containers)Third-party API integration; webhooks, OAuth, rate limits, retries, idempotencyProduction debugging from logs and real data; fixing causes, not symptomsTesting (unit + integration) as part of normal deliveryLive database migrations; no downtime, no data lossCode review and clear written communication
Languages
Professional fluency in French and English.
Our clients are French or English speaking depending on the account, and day-to-day conversation happens in both languages.
All code and documentation are mainly in English.
What we offer
Competitive salary, group insurance, and a range of perks.
Nice to have
E-commerce (catalogue, cart, checkout, tax/shipping, fulfillment, refunds); MedusaJS, Shopify, Vendure, Saleor, or Magento a strong plusPayments; capture/refund flows, partial refunds, reconciliationHasura or another GraphQL layer over PostgresMulti-tenant architecture; RBAC, row-level security, per-tenant isolationDevOps / cloud; AWS, DigitalOcean, GCP, self-hosted Linux, CI/CDReact Native or native mobileHeadless CMS; Payload, Strapi, Sanity, Directus
Location
Mainly remote, but you must be based in Québec.
Occasional in-person time in Montréal.
How to apply
Apply on LinkedIn with your CV and links to work you can speak to (GitHub, shipped products, case studies).
No cover letter needed; we'd rather see what you've built.
--
VERSION FRANÇAISE
Développeur(-euse) web full-stack intermédiaire Télétravail (basé(e) au Québec) · Temps plein, permanent
À propos de ProductShop
ProductShop est un studio de création et un laboratoire d'ingénierie montréalais.
Côté logiciel, nous concevons et livrons du travail en production pour un portefeuille restreint de clients : plateformes d'opérations sur mesure, boutiques de commerce électronique, modernisation d'ERP, portails clients et de conformité, programmes de fidélité et de récompenses, intégration de systèmes, et bien plus.
Nous développons aussi du matériel, des objets connectés aux produits pour bâtiments intelligents, et agissons comme CTO fractionnaire pour plusieurs de nos clients.
Petite équipe, vraie responsabilité, aucune couche de processus entre vous et la mise en production.
Le poste
Vous menez les fonctionnalités du besoin jusqu'à la production : modèle de données, backend, frontend, tests, déploiement et soutien.
Vous relevez d'un développeur sénior qui révise vos plans et vos pull requests et reste disponible quand vous bloquez.
La communication est attendue, pas optionnelle; poser une question tôt vaut mieux que trois jours de silence.
Nous développons avec l'IA, mais sans « vibe coding »
Les outils d'IA font partie de notre travail quotidien, mais ils doivent être utilisés correctement.
Concrètement :
Vous pouvez expliquer et défendre chaque ligne livrée sous votre nom, que vous l'ayez écrite ou qu'un agent l'ait générée.Vous révisez le code généré par l'IA comme le PR d'un développeur junior; le rejeter, le corriger, le recadrer.Vous structurez les dépôts pour que les agents produisent du bon travail : instructions d'agents à jour, règles de projet, compétences réutilisables, tests comme garde-fous.Vous planifiez avant de générer, et vous savez quand l'écrire vous-même est plus rapide.
Ce que nous recherchons
3 ans et plus de développement web professionnel, avec livraison et maintien d'applications en production; ce n'est pas un poste junior; vous avez déjà porté des fonctionnalités dans une vraie base de code en productionTypeScript; le typage strict comme outil de conception, pas une formalitéReact / Next.js (App Router); frontières serveur/client, récupération de données, mise en cacheBackend Node.js (Express ou équivalent); conception et consommation d'API RESTPostgreSQL et modélisation de données; conception de schémas, indexation, SQL non trivial écrit à la main, transactions et concurrence; à l'aise avec REST et GraphQL sur ces donnéesTailwind + shadcn/ui, avec de solides bases CSS; capable de construire une interface d'administration propre sans designer en soutienGit (branches, rebase, flux de PR) et Docker (construction, exécution, débogage de conteneurs)Intégration d'API tierces; webhooks, OAuth, limites de débit, reprises, idempotenceDébogage en production à partir des journaux et de données réelles; corriger les causes, pas les symptômesTests (unitaires et d'intégration) comme partie intégrante de la livraisonMigrations de bases de données en production; sans interruption, sans perte de donnéesRévision de code et communication écrite claire
Langues
Maîtrise professionnelle du français et de l'anglais.
Nos clients sont francophones ou anglophones selon le compte, et les échanges quotidiens se font dans les deux langues.
Le code et la documentation sont principalement rédigés en anglais.
Ce que nous offrons
Salaire concurrentiel, assurances collectives et divers avantages.
Atouts
Commerce électronique (catalogue, panier, paiement, taxes/expédition, exécution, remboursements); MedusaJS, Shopify, Vendure, Saleor ou Magento, un atout majeurPaiements; flux de capture/remboursement, remboursements partiels, rapprochementHasura ou autre couche GraphQL sur PostgresArchitecture multi-locataire; RBAC, sécurité au niveau des lignes, isolation des données par locataireDevOps / infonuagique; AWS, DigitalOcean, GCP, Linux auto-hébergé, CI/CDReact Native ou développement mobile natifCMS headless; Payload, Strapi, Sanity, Directus
Lieu de travail
Principalement en télétravail, mais vous devez résider au Québec.
Présence occasionnelle à Montréal.
Pour postuler
Postulez sur LinkedIn avec votre CV et des liens vers des réalisations dont vous pouvez parler (GitHub, produits livrés, études de cas).
Pas de lettre de présentation nécessaire; nous préférons voir ce que vous avez construit.