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
October 2017 - present
Working as a web frontend developer (to be updated).
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.
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 core language
- Static Type Checking Typescript, Flow
Functional approaches on UI
- React.js (+ redux, react-router, ...)
- CSS (+ css-module)
- CSS Preprocessor SASS, Stylus
Graphics and Interaction
- CSS transition / animation
- HTML5 Canvas
- Package manager npm, yarn
- Linter eslint, tslint
- Static Site Generation Nuxt.js, Jekyll, Lektor
- Google Analytics
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
- 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).
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
- Control side effects; Keep it referentially transparent whenever possible.
- Using 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.
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.