Chapitre 2 : L'atterrissage au Japon

Tony Duong

Tony Duong

mai 26, 20268 min

Aussi disponible en:🇬🇧🇯🇵
#career-story#career#personal#japan#tokyo#seido
Chapitre 2 : L'atterrissage au Japon

J'ai atterri à Tokyo en février 2018 et je suis allé directement dans une sharehouse à Kami-Itabashi. Une trentaine de personnes y vivaient, principalement des Japonais dans la vingtaine et la trentaine — en gros, l'environnement parfait pour quelqu'un qui débarque seul dans un pays qu'il étudiait jusque-là à distance. Des amis et de la pratique de la langue, tout compris.

Les 48 premières heures, c'était la version du Japon qu'on imagine avant d'y avoir mis les pieds. Tout est nouveau, tout est sur-stimulant. Je me suis assis dans le train et je me suis rendu compte que je pouvais lire les kanji sur les panneaux des gares. Des années de WaniKani, accumulées en silence, qui se monnayaient soudain en quelque chose d'utile. Mon oral était nul, mais je savais lire. J'avais l'impression d'avoir trouvé un cheat code.

La boîte, c'était Seido — sept personnes, qui vendaient du matériel d'arts martiaux japonais en ligne. J'avais été embauché presque en même temps qu'un autre dev, mon senpai, mais on travaillait sur des choses complètement différentes. Lui s'occupait de la boutique Shopify : widgets, checkout, affichage des articles. Jordy, lui, m'a jeté sur un projet d'outils internes flambant neuf, à partir de rien.

Ce que j'ai construit pendant cette période, c'est la partie sur laquelle je reviens avec le plus de tendresse, parce que je l'ai construite comme une page blanche. Pas de mentor, pas de relecteur, pas d'IA. Juste de la doc, du temps, et un refus obstiné de rester bloqué.

Il y avait un système d'expédition qui parlait à l'API Shopify et qui assemblait DHL, Japan Post et FedEx. Un dashboard de suivi de colis qui tirait les données de l'API de chaque transporteur et les normalisait dans une vue commune unique. Des scripts Tampermonkey pour patcher les bouts d'interfaces tierces que personne n'allait corriger pour nous. Ruby on Rails côté serveur avec PostgreSQL, déployé sur Heroku. Du Google Apps Script pour automatiser les spreadsheets que l'équipe utilisait pour le pipeline de commandes. Un outil de comptabilité qui calculait le chiffre d'affaires mensuel et la déclaration de taxes. Il y en avait d'autres — huit ans c'est long et les détails se brouillent — mais la forme globale était toujours la même : chaque problème que l'équipe rencontrait, j'allais lui construire un outil. Et ensuite j'utilisais ces outils moi-même. Je me retrouvais à l'entrepôt à emballer des colis, à imprimer des étiquettes via un logiciel que j'avais shippé la veille, pendant que le postier passait récupérer les 20 à 30 paquets du jour. Des deux côtés du clavier.

J'étais occupé tous les jours et je n'ai pas fait de burn-out. J'adorais ça. Tout était nouveau — la codebase, la langue en dehors du boulot, la ville, la bouffe. Une page blanche sur tous les axes à la fois, et c'était justement ça le plus énergisant.

À la fin du stage, Jordy m'a dit que les outils internes avaient vraiment fait avancer la productivité de la boîte, et il m'a proposé un poste à temps plein. Oui, évidemment oui. Mais il fallait d'abord que je rentre en France pour ma soutenance finale. À cause du timing — et franchement, parce que je n'avais pas les moyens de multiplier les allers-retours — j'ai fini par rater les deux remises de diplôme, celle de Montréal et celle de Belfort. Ça m'a un peu piqué. Ça me pique encore, quand j'y pense. Mais Tokyo m'attendait.

La moitié de ce qui rendait Seido génial, ce n'était pas le travail — c'étaient les gens. La majorité de l'équipe était française, ce qui a rendu la transition au Japon ridiculement douce. Je pouvais basculer en français pendant un debug frustrant, sortir déjeuner et essayer (mal) de commander en japonais, puis revenir et reparler architecture en français. Les collègues, c'étaient comme des grands frères : Jeff, Antoine, Nico, Alex, Jason. Certains sont encore des amis proches aujourd'hui.

Jordy, lui, avait un tempérament chaud. Il s'énervait parfois contre moi — généralement à juste titre, pour de vraies erreurs. Le classique, c'était un jour d'expéditions chargé, un bug quelque part dans mon système, et des colis qui s'empilaient alors qu'ils auraient déjà dû être dans un camion. Avant mes outils, l'équipe faisait tout à la main — mais le pire effet de l'automatisation, c'est qu'on ne pouvait plus revenir au manuel. Donc quand le système plantait, c'était sur moi que ça retombait. Je débuggais avec le chrono qui tournait, Jordy stressé, tout le flux en attente. À chaque fois, ça finissait bien. Mais le stress était réel. Je ne lui en veux pas. Ce que j'ai retenu en travaillant sous lui, plus que tout le côté technique, c'est comment tenir ma position : comment écouter un boss frustré, prendre ce qui est vrai dans ce qu'il dit, et continuer à défendre mon point de vue quand je pensais avoir raison. J'ai toujours une excellente relation avec lui. Il habite à Okinawa maintenant — je suis descendu le voir récemment. Okinawa est ma préfecture préférée au Japon, et de loin.

En dehors du boulot, le Japon s'est révélé encore plus fun que ce que j'avais imaginé — ce qui n'est pas rien, vu à quel point je l'avais imaginé. J'ai rejoint un cercle de hip-hop. Je passais des journées à arpenter les quartiers de Tokyo sans plan. 100 000 yens par mois, ça voulait dire beaucoup de pâtes à la sauce tomate — mais les pâtes à la sauce tomate, c'est l'un de mes plats préférés, donc ça n'a jamais vraiment eu le goût du sacrifice. (Huit ans plus tard, ça n'a pas changé non plus.) Et par-dessus ça, la vraie bouffe japonaise : tonkatsu, kaiten sushi, ramen. Miam.

L'autre chose que je suis content d'avoir faite avec mes économies de Montréal, c'est de faire venir la famille — parents, sœurs, toute la troupe. Je voulais qu'ils voient cet endroit auquel je venais de jeter ma vie. Ils ont tellement aimé qu'ils sont revenus presque chaque année depuis.

Et puis, au bout d'un moment, le doute a commencé.

Le truc bizarre, c'est qu'il ne venait pas d'un échec. J'étais rarement bloqué. Quand je l'étais, je creusais jusqu'à m'en sortir — je me souviens d'une période où j'ai perdu quelques jours sur un bug de rendu React, le state était bon mais l'UI refusait simplement de se mettre à jour. Ces jours-là arrivaient. Mais je finissais toujours par trouver une issue. La solution n'était pas toujours la meilleure, mais elle marchait, et je continuais d'avancer.

Le doute était plus discret que ça. J'avais construit beaucoup à Seido — vraiment beaucoup — mais je l'avais construit seul. Pas de code reviews. Personne pour me dire que j'étais sur le point de livrer une requête N+1 qui allait hanter la prochaine personne qui ouvrirait le fichier. (Il en reste sûrement encore quelques-unes là-dedans, honnêtement.) Je déployais toutes les cinq minutes et ça marchait, mais je n'avais aucune idée de si ce que je faisais était bien. Je savais juste que ça tournait.

Je voulais un mentor. Je voulais des code reviews. Je voulais travailler en japonais, pas en français. Je voulais savoir à quoi ressemblait du bon engineering, pas seulement de l'engineering livrable.

Donc c'était le moment de partir. Et je veux être clair là-dessus : Seido a été une chance. À bien des égards, ces premières années ont été les plus belles de ma vie au Japon. Mais la croissance dont j'avais besoin ensuite se trouvait ailleurs, et il fallait que j'aille la chercher.


Réalisations

Un récapitulatif plus concret de ce que j'ai construit chez Seido, en tant que seul développeur :

  • Construit les outils internes de l'entreprise de zéro — sans mentor ni code reviews — sur Ruby on Rails et PostgreSQL, déployés sur Heroku, avec des livraisons quotidiennes.
  • Livré un système d'expédition intégrant l'API Shopify avec DHL, Japan Post et FedEx, ainsi qu'un dashboard de suivi de colis normalisant l'API de chaque transporteur en une vue commune unique.
  • Automatisé le pipeline de commandes avec Google Apps Script et écrit un outil de comptabilité calculant le chiffre d'affaires mensuel et la déclaration fiscale.
  • Corrigé les UIs tierces dont l'équipe dépendait à l'aide de scripts Tampermonkey, en comblant les manques que personne d'autre n'allait combler.
  • Utilisé moi-même ces outils à l'entrepôt — en emballant et en étiquetant les 20 à 30 colis expédiés chaque jour — ce que Jordy (le CEO) a crédité d'un gain réel de productivité pour l'entreprise, débouchant sur une offre à temps plein.

🌐 Traduit par Claude

Tony Duong

Par Tony Duong

Un journal intime numérique. Pensées, expériences et réflexions.