Senior Software Engineer2020 - PRESENTSportening
Technologies: Swift, iOS, RxSwift, Clean Architecture, Protobuf, UIKit, Unit Testing, Bash Scripting, Jira, Atlassian Confluence, Carthage
- Created a rich UI with smooth animations and interactive custom components.
- Built a robust and responsive app using RxSwift and clean architecture.
- Wrote hundreds of unit tests using SnapshotTesting, RxBlocking, and RxTest.
- Wrote several bash scripts to record network traffic smartly. Also wrote scripts in order to automate tedious tasks like updating proto models, downloading and formatting localization files, and more.
CEO | Founder | iOS Development Consultant2020 - PRESENTUnderflow
Technologies: Viper, Model View Viewmodel (MVVM), RxSwift, Objective-C, Swift, iOS
- Consulted several companies regarding iOS development.
- Set up architecture and processes for iOS development. Adapted a React Native app for iOS.
- Helped integrate a low-level GPU library into an Xcode project.
Senior iOS Consultant2020 - 2020Insurance App
Technologies: Model View Viewmodel (MVVM), RxSwift, Swift, iOS
- Boosted the development of an iPhone app for insurance.
- Delivered on all requirements within a tight time schedule.
- Built a reactive application using RxSwift and MVVM.
Senior iOS Developer2019 - 2020Nomadic Tribe (via Toptal Projects)
Technologies: Jira, Git, SnapKit, PromiseKit, Stripe, Core Data, Swift, iOS
- Built a booking system and integrated it with Stripe payments.
- Added support for push notifications and created a push notification extension. Integrated Swift Package Manager support.
- Built social media features with rich posts, comments, people and location tagging, sharing, and other feed actions. Provided smooth scroll performance, an intuitive UI, and efficient data load and persistence.
- Tweaked misbehaving custom fonts. Used instruments to find performance bottlenecks. Built a custom scroll-based fading navigation bar.
- Extracted custom build settings to Xcode configuration files and schemes, making them easy to switch based on the environment (debug, QA, staging, release).
Senior iOS Developer2019 - 2019Social Livescore App
Technologies: Amazon Cognito, Carthage, RxSwift, Swift, iOS
- Created a library for Carthage for a lightweight Amazon Cognito sign-up process.
- Created a test app to demonstrate usage of library.
- Handled asynchronous tasks primarily using RxSwift.
Lead iOS Developer2014 - 2019Sofascore
Technologies: BuddyBuild, Sirikit, StoreKit, SnapKit, PromiseKit, Git, CocoaPods, Objective-C, Swift, WatchOS, iOS
- Split a legacy Objective-C codebase into several frameworks and integrated Swift support.
- Wrote hundreds of unit and snapshot tests making sure things don't break. It sped up development making team members more confident when releasing updates.
- Implemented a non-consumable in-app purchase and an auto-renewable subscription with local validation using OpenSSL.
- Created a library to facilitate the use of table views with mixed table view cells and made seamless animated transitions between states.
- Implemented a watchOS app as well as Today and Intents app extensions.
- Refactored the core app using Promises to make data load and persistence seamless, fast, and efficient.
- Developed a multiplayer penalty shoot-out game from scratch using Swift and reusing existing underlying frameworks.
Software Engineering Intern2015 - 2015
Technologies: GraphQL, ComponentKit, Mercurial, Objective-C++
- Created a pixel perfect UI and animations to enhance user engagement.
- Fetched necessary data from a database using GraphQL.
- Deployed code to a codebase shared with hundreds of developers.
- Improved the accessibility for visually impaired people.
- Wrote unit, snapshot, and end-to-end tests for the technology.
Software Developer2013 - 2014aiKATE
Technologies: Microsoft SQL Server, ASP.NET, C#
- Developed an application to track students' progress in the early stages of education and for direct parent-teacher communication.
- Worked on processing input data and creating backup Excel files.
- Developed forms using ASP.NET to collect user input.