Ahn HeejongI 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
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, …
- 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
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
- 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.
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
- Control side effects; Keep it referentially transparent whenever possible.
- Use ADT to enable precise data encoding.
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.