☎️ 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.

My next company was Moin. I used Flutter to build the overseas remittance application. We used Bloc for our state management, Golden testing for snapshot tests, melos for package managing, and many other libraries to analyze and manage improve our product. Our challenge as a financial company was to deliver fast and not break. With the help of AI, we made our own QA tools and were able to get chance to learn how to use AI to slowly speed up our processes. Later we also replaced our website with Flutter so that we all share the same logics in all platforms. We were able to reduce our maintaining costs and focus more on building what our users need.

Other than work I'm interested in automations and integrations. I like to build things that are not only valuable to users, but also to our team.