Careers

Interest

  • Organization - Leadership, Culture, Performance Management, Communication
  • Software Developer - Software Craftsmanship, Agile, Professionalism, DevOps, Large-scale system, Reactive system
  • Private - Major League Baseball(including sabermetrics), Fitness, Fashion, Liquor

Work Experience

FingerPlus, Seoul, Korea

  • Position
    • Lead Engineer - 2018.02 ~ 2019.01
    • Senior Engineer - 2017.04 ~ 2018.01
  • Achievements
    • Migrate EC2 and other component into VPC in AWS and setup VPN server/client to enhance service security
      • AWS VPC, AWS EC2, Network, OpenVPN
    • Design and implement Player API v1
      • Replace old Player API beta to avoid exposing API key externally
      • Issue page view token through server-to-server communication to use for client to request API server
      • Define new player user log format and modify Player API backend to send new log stream to make log analysis deepen
      • AWS API Gateway, AWS Lambda, AWS DynamoDB, Serverless Framework, JWT(Json Web Token)
      • Heading to construct reactive system
    • Change deployment from VM to Docker
      • AWS ECS, Docker
    • Design and implement Advertiser API v1
      • Integrate another AD system by integrating API
      • Implement Bulk Request API
      • HapiJS, OAuth 2.0 (Client Credentials), JWT
    • Restructuring legacy system
      • Overcome slower developing speed, frequent unintended errors due to monolithic and tightly-coupled legacy system
      • Motivated from optimistic concurrency, state management in the Kubernetes
      • De-couple video meta, advertisement, and statisitics system respectively
        • Event driven - AWS SQS
        • Detect state change as compared with latest data
      • De-couple system to use not SMR clip, also general-purpose video clip (In progress)
    • Substitute AWS Lambda into server in Player API backend (In progress)
      • Overcome the limitations with AWS Lambda - unknown error, and slow scaling speed, and hard to customize configuration
      • Achieve both 1k~ TPS and ~100ms response time per 1 application in peak time
    • Etc
      • Define code, API, and message convention for engineers
      • Introduce jira and confluence into company
      • Organize monthly study sessions (OpenLab) in engineering group
        • Make engineer blog using Jekyll

Opensurvey(ex. IDINCU), Seoul, Korea

  • Position
    • Senior Engineer - 2016.04 ~ 2017.03
    • CTO - 2012.04 ~ 2016.03
    • iOS Developer - 2011.07 ~ 2012.03
  • Achievements
    • Design new survey/response data structure and relationship between modules
    • Develop functions to use external survey reference in legacy response modules
    • OPENSURVEY
      • From 1.0 to 2.0
      • Manage OPENSURVEY accounts including registration, authentication and authority
      • Spring (Spring Boot), MyBatis, JPA, HTML/CSS, LESS, Javascript, jQuery, Redis, Spring Security, Spring Session
    • Common Questionnaire Modules
      • Improve performance function to store responses asynchronously using RabbitMQ
      • Implement Question Group Rotation feature and External Questionnaire Reference feature and so on
      • Re-design front/backend module
      • Spring, Struts2, MyBatis, Javascript, jQuery, RabbitMQ, Node.js, React, Kafka
    • OVEY
      • Develop and maintain OVEY 1.0 iOS Application
      • Develop single sign on system related with OPENSURVEY and OVEY
      • Develop shop and account managing system in OVEY
      • Spring (Spring Boot), MyBatis, HTML/CSS, LESS, Javascript, jQuery
    • Re-construct legacy system (From monolithic to MSA)
      • Adapt REST API
      • Introduce Apache Kafka for messaging system
      • Introduce Netflix Eureka for service registry/discovery system
    • Etc
      • Introduce gerrit, jira and confluence into engineering team
      • Establish code conventions including Java, Javascript, html/css
      • Introduce ployglot (Java, Javascript, Python)

Memory Division, Samsung Electronics, Hwasung, Korea

  • Position
    • Associate Software Engineer - 2010.03 ~ 2011.07
    • Software Engineer - 2008.02 ~ 2009.02
  • Achievements
    • Develop and maintain NAND Flash Firmware (FTL, Flash Translation Layer) - applied to embedded storage, especially, OneNAND and Flex-OneNAND
      • STL (Sector Translation Layer) from 1.1 to 1.2
        • Improve wear-leveling algortithm (10% improvement) - count/store wearing(erase) count per block and calculate a minimum erase count block to use next block to use
      • Maintain BML(Block Management Layer) and LLD (Low-Level Device layer)
    • Develop UFD(USB Flash memory Drive) UA1
      • Study existing FTL technologies
      • Design architectures for next generation storage device

Education

Master’s degree, Computer Science and Engineering, Seoul National University (2006 - 2008)

  • Mobile Embedded System Lab.
  • GPA 4.15
  • Achievements
    • Implement NAND flash driver and block device driver
    • Implement the static analyzer of C– (Subset of C) and that of Effective Inference
    • Research towards obtaining IPRs for mobile applications (with Pantech)
      • Patent - 통합 IP 메시지 시스템의 일대다 파일전송 방법(Method for Transmitting a File or More from One Device to Many under the Converged IP Messaging System)
    • 지상파 DTV 방송프로그램 보호 기술 개발 (with ETRI, 한국전자통신연구원)
    • Research media sharing and multi-device support protocol within CPM system (with Samsung Electronics)
    • Research for next generation flash memory storage (with Archi Lab. in SNU, Samsung Electronics, Hanyang University, M-tron, and so on)
  • Publication
    • Enhancement of CPM (Converged IP Messaging) System - 2008.02
  • Awards
    • Samsung Electronics Scholarship, Samsung Electronics - 2007.03

Bachelor’s degree, Computer Science and Engineering, Seoul National University (2002 - 2006)

  • GPA 3.71
  • Publication
    • Implementation of GTP(Game Transport Procotol) - 2006.02
  • Awards
    • Graduation with Honors (Cum Laude), Seoul National University - 2006.02

Skills & Expertise

  • Programming Languages
    • Java
    • Javascript
    • C/C++
    • Groovy (Elementary)
    • Python (Elementary)
    • Objective-C
    • nML
  • Deployment
    • Docker
    • AWS ECS
    • Kubernetes (in Study)
  • Framework / Library
    • Java
      • Spring Framework - Spring Boot, Spring Security, Spring Session, Spring Cloud
      • Test Framework - JUnit, Spock, and so on
    • JS (Javascript)
      • Front
        • jQuery
        • React (Elementary)
      • NodeJS
        • ExpressJS
        • HapiJS
      • Test framework - mocha, chai, jest, and so on
  • Markup - HTML/CSS/LESS/SCSS
  • Databases
    • MySQL
    • DynamoDB in AWS
  • Embedded System
    • Trace32
    • ARM architecture

Languages

  • Korean (Native)
  • English (Intermediate)

Publications

Translation