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égorieCompétences
BackendJava, Spring Boot, Go, Echo Framework, Python, Django
FrontendJavascript, Typescript, React
Base de donnéesMySQL, PostgreSQL, MongoDB, Redis, Elasticsearch
File d’attenteAWS SQS, RabbitMQ
DevOpsDocker, AWS, Github Actions
IDEIntelliJ, Goland, PyCharm
AutresGit, Github, Jira, Confluence, Notion

📃 Parcours

Illuminarian SAS - Ingénieur backend en poste

2024-04 ~ Actuellement

spring java mysql grafana prometheus prometheus prometheus
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

go mongodb postgresql elasticsearch aws docker github-action lambda ecs rds s3 route53 cloudwatch
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

django python javascript docker github-action

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

spring java postgresql docker grafana ecs prometheus react amplify github-action
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

github algorithm

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

wikidocs github

2022-05 ~ 2022-06

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

python mariadb spring ec2

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

python youtube

2021-03 ~ 2021-07

Plus
  • En tant que membre fondateur du club, j’ai donné une formation de base en Python pour améliorer les compétences des membres.
  • J’ai donné une formation de base en Python pour le club de big data IBAS de l’Université d’Inha.
  • Les formations effectuées peuvent être consultées via ce lien.

Responsable de projet pour le développement du site internet du club de big data IBAS de l’Université d’Inha

python django mariadb ec2 nginx html css javascript

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

spring hadoop javascript

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

oracle youtube

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.