Principal Software Architect, Mobile
CurrentRe-architected the main Constant Contact iOS app to patterns used in Android app, including clean architecture, RxSwift, MVVM via ReactorKit, Moya for REST APIs and SQLDelight for database layer. Sync engine code on both platforms implemented almost exactly the same due to use of Rx.Moving most of Android codebase to Kotlin (currently around 55%) on an as-needed basis. Ported common library functionality to use Kotlin extension functions instead of “Utils” classes.Architected complex cross platform rich text editor for iOS & Android with hierachical JSON data containing template and document data. Editor follows MVVM pattern using ReactorKit/RxReactor. Moved API wrappers to use Retrofit 2, and Moshi for JSON conversion.Built an Actions on Google app which lets the user log in to their Constant Contact account and make queries about their latest campaign stats, as well as receive some email marketing tips. Built as an AWS Lambda in Kotlin, deployed via CloudFormation scripts. Natural Language Processing uses Dialogflow to turn speech into intents, which are then process by the lambda.Built out and maintain a large Confluence wiki with information for product, software development (including architecture and feature design documentation), quality assurance, and day-to-day tasks.