Bonjour, 코드기린 👋

Bonjour. Je suis Yang Tae-yeong, un développeur inconfortable pour un monde confortable.
Je m’efforce toujours d’améliorer ce qui est inconfortable autour de moi, de créer des services stables et de bonnes structures.
📚 Compétences
Catégorie | Compétences |
---|---|
Backend | Java, Spring Boot, Go, Echo Framework, Python, Django |
Frontend | Javascript, Typescript, React |
Base de données | MySQL, PostgreSQL, MongoDB, Redis, Elasticsearch |
File d’attente | AWS SQS, RabbitMQ |
DevOps | Docker, AWS, Github Actions |
IDE | IntelliJ, Goland, PyCharm |
Autres | Git, Github, Jira, Confluence, Notion |
📃 Parcours
Illuminarian SAS - Ingénieur backend en poste
2024-04 ~ Actuellement
Plus
Energy Shares US
- J’étais responsable de la maintenance et du développement des nouvelles fonctionnalités du serveur et du back-office pour la plateforme de crowdfunding d’investissement en énergies renouvelables Energy Shares US.
- J’ai implémenté l’API REST en utilisant Spring Boot et stocké les données avec MySQL.
- J’ai construit un pipeline CI/CD d’Actions Github > ECR > Event Bridge > ECS.
- J’ai amélioré la fiabilité des tests et optimisé le temps d’exécution.
- J’ai augmenté la fiabilité des requêtes en ajoutant des tests de repository via Testcontainers.
- Pour optimiser le temps de test, j’ai séparé
@SpringBootTest
en@WebMvcTest
et@DataJpaTest
pour réduire le temps d’exécution des tests à un tiers. - J’ai introduit un Self-Hosted Runner pour optimiser le temps d’exécution et préparé une mesure de secours en cas d’échec du Self-Hosted Runner.
- J’ai mis en place un système de traçage distribué avec Grafana Tempo.
- J’ai facilité la traçabilité des logs en attribuant TraceID et SpanID aux champs de log et amélioré la recherche sur la plate-forme de recherche en modifiant le format de log en JSON.
- J’ai développé un outil de comparaison de fichiers de configuration pour résoudre le problème de paramètres manquants lors du déploiement](/blog/trouble-shooting/config-differ-check/).
- J’ai réalisé un test de charge avec Locust pour définir les spécifications adéquates du serveur et résoudre les problèmes de performance.
- J’ai amélioré les performances en traitant de manière asynchrone les cas de réponse lente dus à un autre fournisseur de plateforme en utilisant AWS SQS.
- J’ai abaissé la charge en cachant les réponses API lentes avec Redis.
- J’ai effectué le suivi du système à l’aide de Prometheus.
Looko SA - Ingénieur backend en poste
2022-08 ~ 2024-04
Plus
Écloset
- Je me suis occupé de l’API, des tâches programmées et de la maintenance des serveurs du service Écloset, qui reçoit 400 000 visiteurs mensuels.
- J’ai conçu les données de base pour les transactions de seconde main et implémenté les API correspondantes.
Looko AI
- J’ai mis en place le backend pour le service Looko AI afin d’améliorer l’efficacité du travail des commerçants de vêtements vintage d’occasion.
- J’ai utilisé Go avec le framework Echo et stocké les données dans MongoDB.
- J’ai synchronisé le statut des services liés aux commandes/produits/réclamations de trois sources (Écloset, Café24, Naver Smart Store) avec Looko AI à l’aide de FSM et géré la synchronisation en temps réel de 300 000 produits et 50 000 commandes.
- J’ai utilisé AWS Lambda et Event Bridge pour créer une fonction serverless qui rafraîchit les tokens pour chaque plateforme.
Twodigit SA - Ingénieur backend en poste
2022-04 ~ 2022-07
Plus
- En tant qu’ingénieur backend, j’ai été responsable de la maintenance du serveur back-office, du développement et du déploiement de la vue trading.
- J’ai refait le code SQL des requêtes en utilisant l’ORM de Django.
- J’ai utilisé le module Javascript Trading View pour implémenter des graphiques boursiers.
📚 Projets & Activités
Responsable du développement de la plateforme de blogs pour développeurs “Plog”
2022-07 ~ 2023-11
Découvrez comment le code source est structuré, en examinant en détail l’intérieur de chaque section.
Retrouvez ce qui a été bien souligné dans le projet, les défis rencontrés durant le développement.
Ceci est le service déployé. Il pourrait être temporairement inactif en raison de soucis de coût.
Plus
- En tant que leader, j’ai dirigé le développement de la plateforme de blogs pour développeurs “Plog” dans un but éducatif.
- J’ai organisé des réunions hebdomadaires pour suivre l’avancement et utilisé Github Discussion pour garder une trace.
- J’ai implémenté une API REST avec Spring Boot et stocké les données principales dans PostgreSQL.
- J’ai utilisé Redis pour mettre en cache les API et implémenter l’authentification par e-mail.
- J’ai construit un pipeline CI/CD comprenant Github Actions > ECR > ECS pour le déploiement.
- J’ai effectué des tests de repository avec Testcontainers et écrit des tests unitaires pour chaque couche.
- J’ai utilisé Grafana pour surveiller les logs de CloudWatch.
- J’ai développé le frontend avec React et l’ai déployé avec AWS Amplify.
- J’ai implémenté l’éditeur de markdown, avec téléchargement de fichiers, en utilisant Toast UI Editor.
Responsable de l’étude interne de l’algorithme
2022-05 ~ 2022-06
Plus
- J’ai dirigé une étude d’algorithmes pour améliorer individuellement les compétences algorithmiques.
- Deux fois par semaine, nous avons discuté des problèmes algorithmiques résolus et effectué des examens de code.
- Les détails de cette étude peuvent être trouvés sur ce Github.
Responsable d’une étude interne sur le clean code Python
2022-05 ~ 2022-06
Le résultat de l’étude, livre électronique Code Érroné Python, prêt à lire !
Découvrez les règles de l’étude et plus encore.
Plus
- J’ai organisé une étude sur le clean code de Python pour explorer plus en profondeur le langage utilisé en interne.
- Les détails de cette étude peuvent être trouvés sur ce Github.
- Nous avons écrit le livre électronique Code Python Érroné en utilisant WikiDocs.
Développement d’une API de gestion de la garantie utilisateur à partir de l’extraction de modèles de textes de courriel Python
2021-09 ~ 2021-11
Plus
- Ce projet a été développé pour créer une plate-forme qui gère simultanément les modèles et les garanties de diverses marques de produits.
- J’ai développé une API pour gérer la période de garantie utilisateur en extrayant des modèles de courriel de boutiques en ligne à l’aide de Python.
- La mise en œuvre réelle de ce projet peut être vue sur ce Github.
- Plus de détails sur ce projet sont disponibles sur cette page Notion Notion.
Formateur des bases de Python pour le club de big data IBAS de l’Université d’Inha
2021-03 ~ 2021-07
Plus
Responsable de projet pour le développement du site internet du club de big data IBAS de l’Université d’Inha
2020-12 ~ 2021-09
Plus
- J’ai été responsable de l’architecture backend, en utilisant Django pour développer une application basée sur le modèle MTV (Model, View, Template).
- J’ai partagé le statut du projet via des réunions hebdomadaires et géré le calendrier du projet.
- J’ai créé le frontend à l’aide de Django Template et utilisé Django Context pour passer les données.
- J’ai utilisé AWS EC2 pour le déploiement et Nginx pour configurer le serveur web.
- Le code réel de ce projet peut être examiné sur ce Github.
Participation au mentoring ICT Hanium
2020-04 ~ 2020-11
Plus
- J’ai participé en tant que mentoré au mentoring ICT Hanium.
- J’ai utilisé le framework Spring Legacy pour mener le projet.
- J’ai effectué un projet pour extraire des mots-clés liés à l’aide d’un simple comptage de mots avec Hadoop.
Formateur en SQL pour base de données Oracle
2020-04 ~ 2020-07
Plus
- J’ai donné une formation en SQL pour base de données Oracle au sein du club de programmation IGRUS de l’Université d’Inha.
- Les formations dispensées peuvent être consultées via ce lien.