Kai Oelfke

Work

Non-work information about me you can find here. Last updated on 31 July 2020.

Summary

Since 2010 I make iOS apps with Objective-C and Swift. The most interesting app I worked on is HeliEFB and flies in helicopters around the world. My Computer Science degree, volunteering work and side projects extend my work profile.

I don't know everything in tech and there are better programmers than me. But so far I managed to solve every problem I encountered in a reasonable time because I learn.

GitHub StackOverflow RemoteOk

My strongest skills and how I learned them

My first programming was with Lego MindStorms and in a visual programming language. In high school, I learned Delphi with three other students thanks to the volunteering of a retired teacher. Here I did my first implementation of QuickSort.

Sometime around 2009 I lost my phone and bought an iPod Touch to listen to music again. I fell in love with the groundbreaking touch-based user experience.

I started a job of manual data entry to save money for buying a MacBook. The App Store opened the year before and I wanted to learn how to make apps. So I taught myself iOS app development in Objective-C for my high school project.

Next, people asked me to make apps for them and that's how it started. While studying I did more iOS projects. Currently, my main language is Swift. Besides, I have hands-on experience with Flutter/Dart, Ruby and other technologies.

Primary Skills

iOS, 6 years

Swift, 4.5 years

Objective-C, 5.5 years

Complementary Skills

Not ordered in a particular way. My experience with the things below varies from little to a lot. As I like playing with new technologies to expand my horizon this list is likely incomplete.

Languages — Ruby, Dart, Python, JavaScript, C, Java, Haskell, SQL, HTML, CSS

Frameworks — Ruby on Rails, UIKit, Angular.JS, Node.JS, Vue.JS, Middleman, Flutter, GRDB, Core Data, GCD, AutoLayout, Ruby on Rails, PSPDFKit, OpenCV, PostgreSQL, MySQL, SQLite, Realm

Tooling — Xcode, Instruments, LLDB, VS Code, Sublime Text, Unix, Bash, ZSH, Git, CircleCI, TravisCI, Fastlane, CocoaPods, Carthage, Heroku, AWS, Figma, Sketch, Jira, Trello, Xcode UI Test, Xcode Unit Tests

Concepts — SOLID, Design Patterns, Software Architecture, MVVM-C, MVC, Functional Programming, REST, JSON, XML, SOAP, TDD, User-centered Design, Kanban, Scrum, Git Flow, ASO

Soft skills — Product Management, Project Management, Budget Management, Working in remote teams, Working in crossfunctional teams, Communication with clients, Code reviews

Work experience

Senior iOS Developer at Chattyco, 2019 - ongoing

Chattyco connects stars and fans. Fans ask questions, request shoutouts and congratulations as video. This allows stars to monetize their audience.

I am responsible for the iOS app and upgraded the complex feeds to ensure a smoother scrolling experience while fixing layout issues in recent and legacy iOS versions. I extended Fastlane with automatic sanity checks to avoid deployments in bad configurations and missing localization keys using Ruby and Unix commands.

I automated a time-intensive and manual KPI data extraction process with Google Apps Script saving several hours per day per employee in the growth team and making the process scalable.

I worked on the rewrite in Flutter / Dart of the star and fan app. I have hands-on experience with declarative UI's via widgets and BLoCs (Business Logic Component).

Swift, Flutter, Dart, Fastlane, JavaScript, REST, CocoaPods, Instruments, VS Code, ...

Freelance iOS Developer at TwoTickets, 2019, Contract-basis

I was responsible for the maintenance of the legacy codebase and new features such as 3D Touch, Push Notifications, and the integration of EventKit.

Objective-C, Push Notifications

Freelance iOS Developer at Exozet, 2018, Contract-basis

I worked on integrating the iOS WeChat payment SDK.

WeChat SDK

Freelance iOS Developer at HeliEFB, 2016 - 2018, Contract-basis

HeliEFB provides electronic flight bags as iPad apps for cargo and emergency helicopters.



I improved the flight map experience with the Maply SDK to display many online/offline map layers and clustered pins of weather data or landing zones. I expanded the test pipeline with UI tests to complement unit testing. I worked on the weight and balance calculation as required by the FAA and EASA. I integrated PSPDFKit and a file browser UI for displaying checklists, emergency manuals and other documents.

Core Data, UI Tests, Unit Tests, Objective-C, Swift, REST, CocoaPods, ...

Freelance iOS Developer at Mobilversichert, 2015 - 2016, Contract-basis

Mobilversichert provides a digital app-based experience of insurances for insurances, brokers and customers. I worked on the Mobilversichert iOS app.

Maintenance of the existing codebase by fixing issues and memory leaks. Improving performance with Instruments. Refactoring the app source code. Integrating more APIs and features.

Instruments, Objective-C, SQLite, REST

Freelance iOS Developer at an anonymous client, 2015, Contract-basis

I implemented a custom media app with animated image galleries and synchronization with the Dropbox API.

Dropbox API, Objective-C, REST, Core Graphics, OAuth

Freelance iOS Developer at Network4Finance, 2013 - 2014, Contract-basis

Network4Finance is a startup connecting customers, vendors and banks to provide loans on the point of sale. The customer uses the iPad app to get credit approval within two minutes and then receives the product / service immediately.

Implement multiple MVP iterations in Objective-C. Integrate an OpenCV edge detection algorithm for automatic passport cropping and image transformation. Integrate SOAP APIs from different banks for risk assessment and credit approval. Generate dynamic form UIs from server data. Integrate passport scanning OCR API.

Objective-C, OpenCV, SOAP, Web APIs

Older iOS freelance projects, 2011 - 2013, Contract-basis

TonyRomas — For the client, I made an iOS app for the TonyRomas restaurant in Berlin, Potsdamer Platz. The app displays the menus, allows ordering sauces and integrates the OpenTable API for making reservations.

Navendo — For the client, I implemented a web-based e-learning application with native login via keychain and push notifications.

PizzaAlarm — For the client, I implemented an iOS app with a barcode scanner, looking up the pizza in a Core Data database and showing the corresponding baking time on the timer. I also made a little tool to import excel sheets via SQLite as the database seed.

Objective-C, Core Data, SQLite, Keychain, Push Notifications, Web APIs

Side Projects

See all projects here.

Volunteering

Former Board Member at JA Alumni Europe

Junior Achievement is a global non-profit youth organization teaching entrepreneurship.

I participated in the JA Germany company program, where high school students found a student company. Our company got into the German finals. During the global entrepreneurship week in 2010, a classmate and I pitched the company to the economy minister. The JA experience was the highlight of my entire time in high school.

Afterward, I joined the German Alumni network. As the regional coordinator of Berlin, I organized events. I became a member of the German Board and then got elected as European Board Member for two years. JA Alumni allowed me to manage several projects, organize international conferences and hold workshops for hundreds of students and teachers on youth entrepreneurship.

Working Group Member at OCEANS Network and ESAA

The OCEANS network of international exchange programs, connects students and alumni of international exchange programs.

The Erasmus+ Students and Alumni Alliance (ESAA) aims to bring together all European Union funded exchange students and alumni.

As a working group member, I co-organized several international events and I was responsible for managing budgets of ESAA funds.

Mentor at Freie Universität Berlin

As mentor, I helped new and existing computer science students to get the best experience during their studies.

Education

B. Sc. Computer Science, Freie Universität Berlin, 2012 - 2018

Scholarship, University of Toronto, 2013