Aug 2017-Mar 2018, Software Engineer, Honest Fund, Seoul, Korea
2017-2018, Cryptocurrency exchange server
Oct 2016-Jul 2017, Software Engineer, Thenully(closed), Seoul, Korea
2016-2017, Rework app server
Feb 2014-Feb 2016, Software Engineer, Kakao, Seongnam, Korea
2014-2015, KakaoTalk server
Feb 2012-Feb 2014, Software Engineer, S-Core, Seongnam, Korea
2012-2013, Tizen SDK and web based IDE for web apps
Personal Projects
J Parser, parser generator
I designed Conditional Derivation Grammar(CDG), that extends Context-Free Grammar with conditional nonterminals: longest match, intersection, exclusion, followed-by, and not-followed-by. It is designed to be capable of defining the grammars of practical modern programming languages.
I also created and implemented a parsing algorithm for CDG. The algorithm is similar to Earley parsing, but it uses graph to represent the state of parsing and uses accept condition for conditional nonterminals.
SugarProto, an enhancement on Protocol Buffer data format syntax
SugarProto is a language designed to improve the usability of Protocol buffer’s schema definition language.
SugarProto definition file is converted into protobuf definition file.
Also includes pbsuf, which is a yaml-like message marshalling format.
Hexman, a binary file format definition language with its interpreter and visualization UI
A work-in-progress.
Hexman is a language designed to describe the structure of a binary file format in a concise form.
The definition can be converted into Kotlin code to read binary files in the given format. Additionally, the UI displays the values read from the file and indicates their origin.
JsonType, a json format definition langauge and its code generator for Kotlin and GSON
JsonType is a language designed to describe the required or optional fields, as well as the types of fields, in a JSON object.
A definition can be converted into Kotlin data class definitions, along with a converter that translates between JSON object and Kotlin class. This converter verifies the fields and their types. The generated converter utilizes GSON.
2017-2022, Passzero, Secure password manager
Aimed to make a 1-password alternative. Currently not maintained.
Feb 2010-Feb 2012, M.S. in Computer Science, KAIST
Advisor: Taesook Han
Thesis: 가상화 기법으로 난독화된 실행 파일의 동적 분석 방법 A Dynamic Analysis of Virtualization-Obfuscated Binary Executables ( Download English version draft)
Developed the methodologies to analyze the behavior and meaning of a highly-obfuscated program using instruction level execution trace of the program.
It consists of instruction level execution trace extractor, developed with Pintool, and trace analyzer. The trace analyzer was originally prototyped using Python and wxPython and then re-written in Java.
You can download the trace extractor and trace analyzer here. Source code is not opened.
Feb 2007-Feb 2010, B.S. in Computer Science, KAIST
Skills
Programming Languages: Kotlin, Java, Dart, Scala, JavaScript, Python, C++