Summary
Overview
Work History
Education
Skills
Websites
Accomplishments
Publications
Timeline
Generic

Mwai Banda

Merrillville,IN

Summary

Fullstack Software Engineer, I love to create solutions to complex problems. I've found the most complex problems have simple and elegant solutions, I thrive to implement that in my work. I'm enamored with design, its ability to shape reality, the journey from idea to concept, and then to product. All while being authentic & original, empathizing with the end-user to provide an experience that's uniquely tailored to meet that one user's need while fulfilling the business requirement. I love to articulate the 'HOW' and 'Why' behind innovative design.

Overview

4
4
years of professional experience

Work History

Mobile Developer II

The Christian Broadcasting Network
Virginia Beach, VA
08.2022 - Current
  • Lead Mobile Developer and Architect on CBN Bible Mobile (Android and iOS). I led the development team by designing a clean architecture with use cases and MVVM design, backed by SOLID principles for mobile (Android, iOS, and SDK), and I solved various API problems, i.e., dynamic data mapping for reading plan days. And built internal tools with React, i.e., a USX tagging website that allows users to view tags across versions, books, chapters, and verses. And a website converts USFM to USX. I am the primary iOS developer, building the new iOS app, and serving as the lead developer for both iOS and Android. I have built 50% of the screens and functionality with the primary Android developer.
  • For CBNBible, I proposed and developed an SDK-driven approach to building these new apps (Android and iOS) with KMM which is the first of its kind at CBN. The SDK houses all our business logic, while Android and iOS are only UIs, they connect to the SDK to retrieve and process data. The SDK houses a networking layer that allows the posting/retrieval of data with GraphQL, and a database with SQLite to provide an offline-first architecture. Additionally, it controls analytics, an audio player, data syncing between offline and online, and an observer that allows the apps to subscribe when the call data retrieval use cases create a reactive mechanism where the SDK can send updated data when data is mutated. Uses various design patterns: Factory Method, Builder, Facade, Observer, Strategy, Chain of Responsibility, and Mediator.
  • Lead Roku Developer and Architect (CBN News), CBN News Roku was a template Roku app, which Roku has now made its policy not to support. I designed and developed the architecture for a new app for CBN News, with BrightScript. The app is now the third-largest CBN News app, with over 20,000 users and more than 200,000 cumulative downloads. I am also the primary maintainer of CBN Family Roku. After the prior maintainer left, I added multithreading to the app, which improved the startup time by a factor of 30 because the app calls various APIs, and each response contained a large payload. Processing every request on the main thread resulted in an initially delayed load ranging from 30 to 60 seconds; I optimized it to 2 seconds. I built a desktop app (Windows and macOS) in Go that has an embedded server, communicating with a Roku ECP client to run automated tests.
  • For CBN News (Android), the app was written in Java. I spearheaded updating the News app from Java to Kotlin, and rewrote it in Jetpack Compose. I created custom player controls to overlay over the ExoPlayer view for the update, and revised the casting functionality that allows users to control content being cast using the same controls seamlessly.

Mobile Developer

WPRK
Orlando, FL
05.2021 - 12.2021

Built an open-source, multi-platform radio and podcast streaming app for WPRK, a licensed FCC broadcast station, which currently has 51 stars from the open-source developer community.

GitHub - https://github.com/MwaiBanda/WPRK-MultiPlatform

  • Kotlin Multiplatform Mobile manages the apps' multiple targets, sharing core business logic.
  • Play live streams, play podcasts, and check scheduled shows for different days.
  • Clean Architecture.
  • Android, iOS, and iPadOS with SwiftUI and Jetpack Compose were initially built and hosted in separate repositories; now, I have migrated the project to a mono-repository with all target source code (Android, iOS, and iPadOS).
  • WPRK had its podcasts hosted on a podcast storage service, so I developed all client-side solutions.

Education

Associate of Science - Computer Science

Ivy Tech Community College of Indiana
Lake County, IN
04-2025

Associate of Science - Software Development

Ivy Tech Community College of Indiana
Lake County, IN
04-2025

Skills

  • Go
  • Kotlin
  • Swift
  • JavaScript/TypeScript
  • XML & JetpackCompose
  • UIKit & SwiftUI
  • React
  • Google Cloud, Azure & AWS
  • GraphQL & Rest API design
  • Swagger & OpenAPI API Documentation
  • Kotlin Multiplatform Mobile(KMM)
  • Stripe with Apple pay & Google pay integration
  • Firebase(Auth, Storage, Notifications & Crashlytics)
  • Database Design SQL, Postgres & MongoDB
  • MVVM, MVC, MVI, MVP & Clean Architecture
  • Testing (Unit & Integration tests)
  • Di (Dagger, Hilt, Koin & Swinject)
  • C, Java, Python, BrightScript

Accomplishments

Fullstack Developer

Mometum Church - Payments & Video Streaming ( Go Backend, Android, iOS & iPadOS) I designed, developed and deployed, an open-source multiplatform payments & sermon streaming apps for Momentum Church in Indiana. The backend is written in Go hosted on Google Cloud with a CI/CD pipeline and the apps are built with Kotlin Multiplatform Mobile(KMM) with SwiftUI for iOS & Jetpack Compose for Adndroid. The apps are architected to emphasize code sharing between Android, iOS & iPadOS, so all core business logic written in the SDK which interacts with the Go backend to retrieve/store data and process payments. The Android, iOS & iPadOS apps only contain presentation logic, viewmodels and tests.

Github(Go Backend) - https://github.com/MwaiBanda/Momentum-Server

Github(Android, iOS & SDK) - https://github.com/MwaiBanda/Momentum

CMS - https://services.momentumchurch.dev/dashboard

API Docs(Swagger) - https://services.momentumchurch.dev/

Android - https://play.google.com/store/apps/details?id=com.mwaibanda.momentum.android

iOS & iPadOS - https://apps.apple.com/us/app/momentum-church-indiana/id1637040037

  • Stripe Integration - to facilitate payments for Debit/Credit, Apple Pay or Google Pay I have the backend process requests from the clients apps(Android & iOS) it interacts with the Stripe API to facilitate the functionality serverside
  • Caching - I use an in-memory cache to ensure whenever the user opens the app it retrieves the latest data. But as they continue to the app it caches all data that's fetched
  • SQLDelight - to store user information locally as well track video progress to allow users to resume at last position
  • Firebase Integration - to facilitate auth, as well as storage of store remote user data. To easy sync user data across different devices
  • The app is available on the AppStore & PlayStore as 'Momentum Church: Indiana'

Publications

  • Clean Architecture for Android & iOS - https://mwaibanda.com/clean-architecture
  • Solid Principles In the Real World - https://mwaibanda.com/solid-principles-in-the-real-world

Timeline

Mobile Developer II

The Christian Broadcasting Network
08.2022 - Current

Mobile Developer

WPRK
05.2021 - 12.2021

Associate of Science - Computer Science

Ivy Tech Community College of Indiana

Associate of Science - Software Development

Ivy Tech Community College of Indiana
Mwai Banda