☎️ Contact

📮 [email protected]

🔗 LinkedIn

🔗 Github

🔗 KO Resume / EN Resume


👋 Introduce

I started iOS app development in 2008 with iPhone 3Gs as it just started selling in South Korea.

The first app was for my graduation project. I used QR codes to generate sounds, and a reader device would read the sound just like camera would read the QR codes. I felt that Objective-C was beautifully made, and I started my career as a iOS Developer in a freelancer team. I made tens of project as a freelancer and being in a SI company for a few months.

At first, there weren't many open source libraries or things like Cocoapods, but I had fun making new things. Objective-C was similar to C, and I ended up making many libraries and macros mainly to increase productivity.

After 2012 I joined a few startup. I made AR iOS apps using OpenCV (which is just C) and camera filters using GPUImage. I made servers for dating app using Ruby. Had to work on NodeJS servers, SQLite, MongoDB, etc and make hybrid apps. Since I joined early stage startups, I had to make frontend and backend and many things by myself.

In Bitfinder we made AQI sensors (IOT Device), I had to connect BLEs and handle live data through MQTT. I had to make a lot of app features to support the device. The app grew big very soon, and I had to setup CI/CD(Jenkins, Fastlane) and find a way to cut down build times using Binary files. Until iOS 13 I used Carthage, but on porting to iOS14, Carthage update speed didn't seem to keep up with iOS update. I had to port to CocoaPods and use cocoapods-binary-cache which is maintained by Grab. I also had experience in providing Frameworks to other company, and making Homekit Device compatible. Since I was a Frontend Lead, I also had to manage projects and our team. I used Agile, Kanban flexibly within projects. For tools we used Jira, Confluence, Bitbucket, Slack as main Asana, Grafana, Rclone, Zappier, etc for other use cases. Since I've been here long, I also planned on making CS dashboard, made auto image update tool, and other things that can support the company.

In Credi I thought it was a good time to apply Flutter App. Both the app for users and admin were made in flutter. I also had to make some Firestore event handlers with NodeJS to handle backend events.

After that in Riiid I was able to learn maintaining an app with my team using SwiftUI and TCA(The Composable Architecture) which pointfree provides. We tested our apps using Quick & Nimble and made Snapshot(swift-snapshot-testing) tests which I was automated to send slack to ios channel diffing the changes in snapshots. We were able to maintain pixel level design changes, and maintain our apps in a very stable manner. I also used Maestro to run E2E QAs on critical features. I also contribute on product side codes as well using Stencil even before Swift had Macros. I made protocols and mocks generators which were used to generate repeated boilerplate code. Also maintained SPM to modularize our features, services, design system, and other tools. I was able to learn a lot from co-working with many talented individuals and diverse personalities.

Other than work I'm interested in Flutter & Dart. I like the concept of one source multi platform, which is why I studied Sencha Touch a few years ago. Back then it didn't become a dominant platform, but Flutter has a low learning curve with trendy programming experience. I'm expecting many people will start using it.