ahn heejong



Ahn Heejong

I fear little, challenge often, and learn fast.

I have two main focuses as an engineer:

  • Smoothly bridging the gap between code and design
  • Programming languages adopting practical and powerful type systems


KAIST 2013 March – Present

Pursuing B.A. at School Of Computing(GPA Total 3.62/4.3, Major 3.79/4.3)

Currently on a break, doing an alternative military service


UI Engineer, Viva Republica

April 2018 - present

  • To Be Updated

Frontend Programmer, Hyperconnect

October 2017 - April 2018

  • Implemented & refactored the web version of Azar. Vue.js, TypeScript, and Webpack
  • Ported face-tracking sticker application feature from Azar app. WebGL

Programmer, Spoqa

January 2017 - September 2017

  • Built initial version of Dodo Manager, the store management tool, from scratch. React.js, Redux, and Webpack
  • Migrated entire codebase from Flow to TypeScript for higher productivity and stability.


Modern Web Frontend

The borderline between code and design is my main playground. I enjoy implementing both performance-wise and aesthetic-wise solid product.


  • Comfortable with the latest ECMAScript feature and proposals; solid understanding of the core language
  • Static Type Checking TypeScript, Flow

Functional approaches on UI

  • React.js + react-router, redux, redux-saga, …
  • Vue.js + vuex, vue-rotuer, …
  • Elm


  • CSS + css-module, styled-components
  • CSS Preprocessor SASS, LESS, Stylus and PostCSS

Graphics and Interaction

  • CSS transition / animation
  • SVG, HTML5 Canvas, Three.js


  • Build toolchain Webpack, Babel
  • Coding convention Prettier, ESLint


  • Static Site Generation Nuxt.js, Jekyll, Lektor
  • Google Analytics, Google Tag Manager

Programmers' Essentials

Though skills below are beyond my main interest,
I have basic understanding on them.

  • VCS: Using git since 2014. My first command for any project is git init.
  • Theoretical background: Knowledge of widely used DS and basic algorithm.
  • Server-side programming: Python(Flask + SQLAlchemy), Node(express.js).
  • Server Administration: UNIX-like, CLI utils, AWS(EC2, S3, CloudFront, Route53).
  • System programming: Have implemented minimal assembler, OS(PintOS) during undergraduate curriculum.

Functional Programming

I’ve learnt a lot from the principles of functional programming.
Whenever I confront interesting problems, this is my main toolbox to look at.

  • Favor composition over inheritance.
  • Utilize the power of simple functions like map, reduce, and filter.
  • Control side effects; Keep it referentially transparent whenever possible.
  • Use ADT to enable precise data encoding.

Additional Information


When I leave trails on the web, I try to do so with my identity revealed.
I believe this policy helps me stay responsible.


Experiences which won't make me a superstar programmer yet I personally am proud of.

  • In Fall 2016, I organized and led Haskell Programming Language Study in KAIST, using UPENN’s CIS194 class materials. A dozen of students participated throughout the semester.
  • In June 2015, I participated in The Rust Programming Book Korean translation project. About that time, I also made my first open-source contribution: documentation link fix to Rust repository.
  • In July 2014, I worked shortly at the very first stage of a media startup, Byline. Though I couldn’t contribute much and forgot almost everything I’ve learnt, it sure was fun and valuable startup experience.