Summary
- Experienced software engineer with a passion for distributed systems,
scalability problems, and dealing with a large amount of data
- Another area of interest is internal tools development to boost the
productivity of colleagues
- Keeps communication skills honed by actively engaging in conversations,
public speeches, and ritually writing daily journals and various social media
posts of substantial lengths
Work Experience
Senior Software Engineer @Coupang
Korean version of Amazon.com; largest e-commerce, logistics company
Data Engineering
- Kafka log persistence
- Kafka schema registry
- Handling extract, transform, load (ETL) tasks with Spark
Inter-domain logistics state management system (Flow)
- Handling write-heavy workloads with Cassandra
- Message ordering guarantee with a distributed queue
- RESTful API for internal customers (domain teams)
- Spark jobs for data validation, written in Scala, fully automated with
Airflow
Internal Tools & Extracurricular Activities
awsauth
: Command line tool written in Golang to issue temporary AWS access
keys with AD FS and AWS STS
schema-extractor
: Command line tool to generate an ORC schema from a Java
DTO class using
reflection.
- Leading an unofficially-organized class to teach Python to colleagues
Software Engineer @Nexon
Largest gaming company in South Korea, servicing +100 titles in +190 nations world-wide
Marketplace
- In-game marketplace where players exchange goods with money and vice versa
- Inter-database transactions (Couchbase ↔︎ AWS Aurora)
- Complex search query support with Elasticsearch
- Driving most of technical decisions
- In-game natural environment that resembles that of the real world
- Number crunching with OpenCL and C# math library
- ECS, ECR, data pipeline
- Cost saving (est. $300,000/year) with architectural revisions
- Implementing precautionary measures: data validator, auto-scaling
- Public speech on this topic: Automating Mother Nature @AWS re:Invent 2017
Internal Tools
- Wheelhouse: Automated Python package pre-build system for internal PyPI repository
- Game world packaging and distribution tools for internal customers (game designers, non-tech users)
Software Engineer @Spoqa
Mar 2014 - Jul 2014
Seoul, South Korea
- Building a customer-facing Android app
- Building a backend for commercial loyalty service
Research Programmer @University of Arizona
Jun 2010 - Jun 2011, Tucson, AZ
- Developed internal tools to conduct machine learning researches
Education
MS in Computer Science @University of Arizona
Aug 2011 - Dec 2013
Tucson, AZ, USA
BS in Computer Science, Mathematics @University of Arizona
Jan 2006 - Dec 2010
Tucson, AZ, USA
Postgraduate Education
- Occasionally, but persistently taking classes from Coursera, Udacity
- Machine Learning
- Design of Computer Programs
- Computational Finance
- Founding and leading an unofficial research paper reading group in Nexon (2015)
Public Speeches
Discussed the architecture that we settled on for algorithmic generation of
game content in a large scale with a number of components provided by Amazon
Web Services such as distributed messaging queues (SQS), containerized
application clusters (ECS), and object storages (S3).
Discussed how we built an automated pipeline to supply natural resources. Due
to the sheer size of the in-game world, the environment simulation is performed
on-demand, within a limited geographic boundary, in accordance with player
activities.
Discussed how we built an in-game environment simulator with OpenCL to handle a
massive parallel processing. The primary purpose of the simulator is to provide
natural resources based on realistic simulations by taking a number of
geographic features, such as topography, temperature, humidity, soil fertility,
into consideration.
Patents & Research Papers
Nexon decided to file a patent with the work referred above as natural
environment simulation. I was listed as a co-author along with the game
designer who pioneered the concept.
Discusses how human-instructable computing can be achieved. That is, how an
electronic student can be taught using the same natural instruction methods
humans use.
Open Source Activities
Contributions to others
- pandas-datareader: Extract data from a wide range of Internet sources into a pandas
DataFrame
.
- secor: Kafka log persistence.
- gspread: A Python library to access and manipulate Google Spreadsheets.
My own projects
Personal Projects
An improvised marketplace to sell underused personal belongings where every
auction starts at KRW 1,000 (approximately USD 1).
Set of code for personal asset management and quantitative investment.
Volunteer Works
Providing 127GFLOPs on average to tackle difficult scientific problems such as
climate modeling, discovering large prime numbers, and generating accurate
three-dimensional dynamic models of stellar streams in the immediate vicinity
of the Milky Way galaxy.
This project had started in March of 2011 in an attempt to help the general
public to be alerted regarding the spread of radiation and other radioactive
materials originated from the catastrophic incident in the Fukushima nuclear
power plant in Japan, by visualizing city-wise radition levels in near real
time.