Refactored internal Auth SDK (the new version is network layer independent and can be used with a range of HTTP layers like Alamofire
, Malibu
and regular URLSession
) and migrated to using a new backend service. Increased test coverage to 95%+ on the API Client as well as reduced number of LoCs from 11k+ to ~3k by migrating away from VIPER to a simpler MVC pattern.
Built an app from scratch in the video streaming space. Used Rome to point to remote instances of minio to cache dependencies and reduce build times to ~7 minutes (a 90% decrease).
Set up continuous integration/continuous deployment pipelines for the above app with Fastlane on Gitlab-CI to automatically test, build and deploy the app to Testflight.
The app extensively uses the View Controller containment API to maintain testability and avoid Massive View Controllers. The Home screen is dynamically laid out based on server responses, based on ideas similar to John Sundell's talk on Backend Driven UIs. In addition, I've also built a "mock" target of the app that lets QA test layouts locally realtime by saving responses to a file and relaying those responses via a websocket server. Demo video
Architected a "Continue Watching" feature that worked across multiple devices and used a rudimentary sync algorithm alongside a local database.
Sole iOS engineer at Kayako. Consistently had a >99.5% crash-free rate and thousands of satisfied enterprise customers.
Also built an Open Source SDK for developers to integrate customer support via chat in their apps.
This twitter moment highlights some of the work I did for Kayako that I’m most proud of. It shows various pieces of complex, form-driven UI in the app, with lots of little UI touches added for that little bit of extra delight✨
GPA: 8.19/10.0
🎤 Spoke at iOSCon 2019, London about "Cellular View Controllers".
✍️ Wrote an article about using Texture (formerly known as AsyncDisplayKit) in iOS apps that was moderately popular and also made it to iOS dev weekly.
🎤 Spoke at try! Swift India in Nov 2017 on "Refactoring your app with Rx".
👨🏽💻Conducted a workshop on Advanced Unit Testing at Swift India Conf, 2019
👨🏽💻Wrote an article on Safely securing secret variables on Travis CI and Xcode. Over 1,000 "claps" received and has appeared in several iOS newsletters.
This resume is built in a resume-building app I'm working on that's both WYSIWYG and mobile responsive. Sneak peek.
Built a "Websocket cache" using Phoenix, partly to explore Elixir and functional programming on the server side. It's still early days but quite enjoyable.