ahn heejong

Resume

PDF

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

Interests

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

Education

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

Gyeonggi Science High School

2010 March - 2013 February

A student president

Experience

Programmer, Hyperconnect

October 2017 - present

Working as a web frontend developer (to be updated).

Programmer, Spoqa

January 2017 - September 2017

Spoqa provides various B2B solutions to help local and brand stores’ customer management.

Q1 (January 2017 - March 2017)

Being one of two programmers of the team, took charge of the frontend side of the latest product of Spoqa, Dodo Manager.

  • Implemented SPA from scratch modern web technologies such as React.js, Redux and the latest features of ECMAScript.
  • Weaved responsive layout with heavy use of flexbox, which works well in various environments including CEF, tablet, and web browser.

Q2 (April 2017 - June 2017)

For the second quarter, the team migrated an improved version of Dodo Message, a message based marketing platform into Dodo Manager.

  • Implemented ‘Message’ part of the app, which includes multi-step message writing form and simple dashboard for marketing result analysis.
  • Made 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, the team focuses on making the app more robust.

  • Replace entire codebase using Facebook’s Flow with MS’s Typescript for higher productivity and stability.
  • Adapt automated e2e and unit testing environment using Selenium, Mocha, and other testing libraries / frameworks.
  • Implement ‘Analysis’ part of the app, by providing visualization of customer statistics for the stores.

For Q3, I’m also in charge of organizing the project timeline of the team.

Skills

Modern Web Frontend

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

ECMAScript

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

Functional approaches on UI

  • React.js (+ redux, react-router, ...)
  • Vue.js
  • Elm

Styling

  • CSS (+ css-module)
  • CSS Preprocessor SASS, Stylus
  • PostCSS

Graphics and Interaction

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

Ecosystem

  • Webpack
  • Babel
  • Package manager npm, yarn
  • Linter eslint, tslint

Miscellaneous

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

Programmers' Essentials

Though these skills are outside of my main interest, I have basic level of understanding on them as they're essential to any programmer.

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

Functional Programming

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

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

Additional Information

Links

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

Miscellaneous

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

  • In July 2014, I worked shortly at the very first stage of a media startup, Byline, in San Francisco. Though I couldn’t contribute much and forgot almost everything I’ve learnt, it sure was fun and valuable startup experience.
  • In June 2015, I participated to The Rust Programming Book Korean translation project. About that time, I also made my first open-source contribution: broken documentation link fix to Rust repository.
  • 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.