How to Get Hired as a Software Engineer in 2025 (The ONE project rule)

Phil Choi argues aspiring software engineers should build one deep project instead of many shallow ones. A single project forces you to solve real problems like caching, deployment, and CI/CD that employers actually care about, plus learn full-stack understanding that portfolios of small apps won't teach.
Questions this video answers
Phil Choi
$300,000 per year
August 18, 2025
Chapters
Si vous essayez de percer dans la technologie en créant un tas de projets superficiels, vous perdez votre temps. Le marché est rempli de développeurs qui ont créé la même application de gestion de tâches, la même application météo et le même site de portfolio. Mais voilà, les entreprises ne se soucient pas du nombre de projets que vous avez créés. Elles se soucient de votre compréhension des systèmes qui sous-tendent ces projets. Aujourd'hui, je vais vous montrer pourquoi approfondir un projet vous apprendra plus et vous rendra plus utile que de créer 10 applications superficielles. Nous parlons de connaissances du domaine, de stratégies de déploiement, de mise en cache, de gestion d'état et de tout ce qui distingue un développeur junior d'une personne que les entreprises doivent embaucher. Pour rappel, je m'appelle Phil. J'étais un professeur d'anglais fauché et épuisé. J'ai changé ma vie grâce au codage. Je suis finalement devenu un développeur senior qui a gagné 300 000 $ par an pour plusieurs entreprises générant des revenus à 7 ou 8 chiffres. Je dirige l'un des programmes de mentorat technologique qui connaît la croissance la plus rapide et je dis à tous mes mentorés de terminer un seul projet qui leur tient vraiment à cœur, car ce processus à lui seul vous permettra d'aller plus loin en tant que programmeur à long terme que n'importe quel projet de tutoriel. Gabe avec son application de football fantastique, Jocelyne avec son application de playlist musicale, Jay avec son application d'entraînement pour les personnes âgées. Ces gars ont réussi et ont décroché des emplois à six chiffres grâce à ce qu'ils ont appris en commençant et en terminant leurs propres projets personnels jusqu'au bout. Pourquoi la mort est plus forte que le pain ? Lorsque vous vous plongez dans un projet, vous commencez à découvrir les véritables défis auxquels sont confrontés les développeurs dans le secteur. Il ne s'agit pas seulement de faire fonctionner quelque chose. Il s'agit de le rendre évolutif, maintenable et efficace. Par exemple, disons que vous développez une application de commerce électronique. Si vous vous arrêtez à la création d'un panier d'achat et d'une page de paiement, vous passez à côté d'une mine d'or d'opportunités d'apprentissage. Mais si vous approfondissez, vous commencerez à vous poser des questions telles que Comment gérer des milliers d'utilisateurs ajoutant des articles à leur panier en même temps ? Comment mettre en cache les données des produits pour réduire la charge de la base de données ? Comment déployer cette application pour qu'elle soit rapide et fiable pour les utilisateurs du monde entier ? Ce sont le genre de problèmes pour lesquels les entreprises paient beaucoup d'argent pour les résoudre. Et vous n'apprenez pas tout cela en passant d'un projet à l'autre. Vous l'apprenez en vous entenant à un projet et en creusant dans les détails. Ce que vous apprendrez en approfondissant. Décomposons cela. Voici ce que vous apprendrez réellement lorsque vous vous engagez à approfondir le front-end d'un projet. Au-delà des composants, la plupart des gens s'arrêtent à la création de composants raisonnables. Mais lorsque vous approfondissez, vous commencez à découvrir des outils de gestion d'états globaux tels que Redux ou l'API Contextuel qui vous apprennent à gérer les données dans l'ensemble de votre application. Des principes solides. Ce sont des principes de conception qui facilitent la maintenance et l'évolutivité de votre code. Par exemple, le principe de responsabilité unique garantit que chaque composant fait une chose correctement, comme il se doit. Optimisation des performances Comment accélérer le chargement de votre application ? Chargement différé La mémorisation et l'optimisation de votre logique de rendu deviennent une seconde nature lorsque vous résolvez de vrais problèmes. Ainsi, pour le back-end, le véritable atout du développement back-end est d'apprendre comment fonctionnent réellement les systèmes. En allant plus loin, vous gérez les connexions aux bases de données. Devez-vous utiliser SQL ou NoSQL ? Comment optimiser les requêtes pour améliorer les performances ? Les outils de mise en cache tels que Redos ou Memcache peuvent considérablement améliorer la vitesse de votre application en stockant les données fréquemment consultées. Stratégie de déploiement Apprenez à containeriser votre application avec Docker. Configurez des pipelines CI-CD et déployez-les sur des plateformes telles qu'AWS ou Google Cloud. C'est ce qui vous rend inestimable pour une équipe. Intégration complète de la pile Lorsque vous travaillez à la fois sur le front-end et le back-end d'un même projet, vous commencez à voir que tout est lié. Vous apprendrez à gérer efficacement les requêtes d'API, à sécuriser vos points de terminaison et à déboguer les problèmes qui concernent l'ensemble de la pile. Cette compréhension globale est ce qui distingue un développeur junior d'un développeur senior. Comment créer votre propre projet approfondi ? Très bien, comment faire cela concrètement ? Voici un exemple. Planification étape par étape. Choisissez un problème qui vous tient à cœur. Ne construisez pas quelque chose au hasard. Choisissez un projet qui résout un problème réel qui vous intéresse. Par exemple, si vous êtes dans le domaine du fitness, créez un outil de suivi des entraînements qui s'adapte au progrès de l'utilisateur. Si vous êtes dans la finance, créez un outil de budgétisation qui visualise les tendances des dépenses. Si vous aimez les jeux vidéo, créez un système de classement avec des mises à jour en temps réel. Décomposez-le, divisez votre projet en composants plus petits. Par exemple, si vous créez un outil de suivi des entraînements, commencez par l'authentification des utilisateurs, puis passez au suivi des entraînements, puis ajoutez des analyses pour montrer les progrès au fil du temps. Chaque étape vous apprendra quelque chose de nouveau et vous prendrez de l'élan au fur et à mesure. Apprenez juste à temps. N'essayez pas de tout apprendre d'emblée. Apprenez ce dont vous avez besoin au fur et à mesure. Par exemple, lorsque vous rencontrez des problèmes de performance, renseignez-vous sur la mise en cache. Lorsque vous devez déployer, renseignez-vous sur Docker et les plateformes cloud. Lorsque votre application se développe, renseignez-vous sur la gestion des états et l'évolutivité. Cette approche vous permet de rester concentré et d'éviter de vous sentir dépassé. Comment vous positionner pour réussir ? D'accord, une fois que vous avez approfondi un projet, vous devez le présenter d'une manière qui met en valeur vos connaissances du domaine et vos compétences en résolution de problèmes. Voici comment procéder. Documentez tout et rédigez un fichier lisez-moi détaillé pour votre projet. Expliquez le problème que vous avez résolu, les technologies que vous avez utilisées et les défis que vous avez surmontés. Cela montre aux employeurs que vous n'êtes pas qu'un simple codeur, mais un penseur. Mettez l'accent sur la profondeur de votre chevaud. Au lieu de lister 10 projets, concentrez-vous sur 1 ou 2 qui démontrent votre expertise. Par exemple, vous avez créé une plateforme de commerce électronique évolutive avec la mise en cache Ready et le déploiement Dockerisé. Vous avez géré plus de 10 000 utilisateurs simultanés. Vous avez développé un outil de suivi des entraînements avec Redux pour la gestion des états et les analyses en temps réel. Ce genre de détails vous permet de vous démarquer. Partagez votre parcours. Publiez des informations sur votre projet sur LinkedIn ou GitHub. Partagez ce que vous avez appris, les obstacles que vous avez rencontrés et la manière dont vous les avez résolus. Cela renforce votre image de marque personnelle et attire des opportunités. Si vous ne créez que des projets de surface, vous êtes en concurrence avec tous les autres développeurs juniors. Mais si vous ne le faites pas, vous êtes en concurrence avec tous les autres développeurs juniors. Mais si vous ne le faites pas, vous êtes en concurrence avec tous les autres développeurs juniors. Si vous approfondissez vos connaissances, si vous apprenez à résoudre de vrais problèmes et à comprendre les systèmes qui sous-tendent votre code, vous vous démarquerez. La grande opportunité ici, c'est que la profondeur ne se limite pas à être embauché. Il s'agit de devenir le genre de développeur capable de s'adapter, d'évoluer et de prospérer dans n'importe quel environnement. Alors, arrêtez de courir après la quantité, commencez à courir après la qualité. Choisissez un projet, approfondissez vos connaissances et observez votre évolution. Non seulement développeur, mais aussi solutionneur de problèmes. Et si j'y arrive, vous pouvez le faire aussi. Le codage sauve des vies.
More from Phil

day in the life of a software engineer | 5 hour productivity | building my dev agency 🔥

day in the life of a software engineer | 3 hour productivity | coding my 6-figure community startup

day in the life of a software engineer | 5 hour productivity | coding our sns startup app LFG

day in the life of a software engineer | 5 hour productivity | creating apps that makes big money

day in the life of a software engineer | 4 hour productivity | building a dev team for my agency





