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
- 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
- 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.
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, …
- CSS + css-module
- CSS Preprocessor SASS, LESS, Stylus
Graphics and Interaction
- CSS transition / animation
- HTML5 Canvas & SVG
- Package manager npm, yarn
- Coding convention prettier, eslint
- Static Site Generation Nuxt.js, Jekyll, Lektor
- Google Analytics
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
- 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.