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


  • Making beautiful and usable things with robust and readable code.
  • Building a challenging, open team where good people get even better.
  • Improving by cooperation, not competition; open source spirit!



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 to do a alternative military service

Gyeonggi Science High School

2010 March - 2013 February

A student president


Frontend Programmer, Hyperconnect

October 2017 - present

Late 2017

  • Implemented and refactored the layout for Azar Go (currently only available in TW), the web version of Azar. Used Vue.js, TypeScript, and Webpack etc.
  • Ported face-tracking sticker application feature from Azar app, using WebGL.

Programmer, Spoqa

January 2017 - September 2017

Q1 (January 2017 - March 2017)

Took charge of the frontend side of the latest product, Dodo Manager.

  • Implemented SPA from scratch using modern web technologies such as React.js, Redux, Webpack and the latest ECMAScript features.
  • Weaved responsive layout which works well in various environments CEF, tablet, and web browser. The layout heavily relies on flexbox.

Q2 (April 2017 - June 2017)

Integrated Dodo Message, a message-based marketing platform.

  • Implemented ‘Message’ part. The part includes multi-step message writing wizard and simple dashboard for marketing result analysis.
  • Built challenging UI components like a small text editor with auto input button, slide-based range selector and so on.

Q3 (July 2017 - Present)

To officially launch the product, focused on making the app more robust.

  • Migrated entire codebase from Flow to TypeScript for higher productivity and stability.
  • Setup automated e2e testing environment using Selenium and Mocha.

For Q3, I also took charge of organizing the project timeline of the team.


Modern Web Frontend

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


  • Experience up to ES8; solid understanding of the core language
  • Static Type Checking TypeScript, Flow

Functional approaches on UI

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


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

Graphics and Interaction

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


  • Webpack
  • Babel
  • Package manager npm, yarn
  • Coding convention prettier, eslint


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

Programmers' Essentials

Though skills below are beyond my main interest,
I have basic understanding on them as they're essential to any programmer.

  • 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.