×
Stephen Gowen

Stephen Gowen

Software Engineer Consultant

Clarksville, Tennessee, US
(931) 343-9355

Background


About

About

I have architected software systems, led and managed engineering teams, and provided consulting services to clients building everything from Android/iOS/Windows apps and their backends to embedded systems that analyze the chemical composition of objects. I am a software enthusiast in every sense of the word, always looking for that next challenge.

Work Experience

Work Experience

  • Software Consultant, Freelance

    Sep, 2013 - Present

    I've worked for clients such as Sam's Club, Walmart Labs, and Constant Contact to name a few, primarily (but not exclusively) developing Android and iOS applications.

    • Sam's Club - Implemented various features and bugfixes for the Sam's Club app, primarily focused on Scan & Go and Fuel. I also single-handedly executed one of the largest refactors that the SnG codebase had ever seen, leveraging and improving existing legacy code to deliver an entirely new Audit flow, instead of rewriting it, saving the company many months worth of development costs, while also freeing up the rest of the Android team to begin writing a new app on Walmart's Glass platform

    • Walmart Labs - Implemented various features and flows for Walmart's new grocery shopping app. Majority of the contract was spent writing Kotlin code for the Android Glass platform. But the last few months, I was moved to the iOS team and wrote Swift code. The work consisted mostly of implementing Zeplin designs and consuming GraphQL APIs

    • Constant Contact - Sped up SQLite query for contact search in the Toolkit app by over 300 times by implementing FTS4, wrote over 100 unit tests covering all client/server interactions, built the drag and drop email campaign editor for Android, implemented a color wheel picker, added tablet support, and implemented custom animations for interacting with all the widgets

    • Lightspeed Systems - Built the Classroom agent, a Windows app that: runs in the background (with a system tray interface), monitors Student Web Browser activity, allows Teacher Remote Control of Student's machine (lock screen, close tab, etc.). Built with Ably, WebRTC, REST, and web browser plugins. Written mostly in .NET C# with some C++ interoperability and Javascript for web browser extensions

    • Nito (acquired by AOL) - Developed the macOS and iOS versions of the Nito app. Wrote OpenGL code and integrated proprietary face tracking technology to render a 3D avatar that reflects your facial movements. Utilized the Superpowered Audio Engine to allow users to customize the audio output of their recorded avatar videos before sharing on social media

    • UpdateZen - Ported the UpdateZen iOS app to Android. Utilized the following libraries: auth0client, gson, pulltorefresh, android-inapp-billing-v3, google play services

    • InfoWorks - Wrote the CGS Medicare application for both Android (Kotlin) and iOS (Swift). Wrote the backend REST server with node.js, deployed via Heroku at first, now deployed as a Firebase function

    • Canopy - Wrote the Canopy EAP application for both Android (Kotlin) and iOS (Swift)

    • Qorum - Contributed significantly to the Qorum iOS Swift app, which allows users to get free Uber rides after spending an hour or more at participating bars/restaurants. Utilized the following libraries: Facebook, Twitter, Fabric, Google Maps, CardIO, Stripe, Uber, Firebase, SnapKit

    • Tully - Contributed significantly to the Tully Android app, implementing the Superpowered Audio SDK to record and playback lyrics synchronized to a beat track, the core functionality of the app

    • Atrium Health Wake Forest Baptist Medical Center - Ported the Sugar Sweetened Beverage iOS app to Android

    • Sirius Signal - Wrote the Afloat Plan Home app for both Android (Kotlin) and iOS (Swift)

    • WiActs (acquired by LogMeIn) - Wrote the MVP of the NoPassword Android app

    • Alkami Technology - Worked as part of a team on the iOS side writing Objective-C and some occasional Swift code to maintain existing banking apps, involving a complex custom system of customization on top of a vanilla core app

  • Software Architect / Software Engineering Manager, SciAps

    Jan, 2014 - Jun, 20195 years 5 months

    I led a team of engineers to develop the Raman, XRF, and LIBS products, which are handheld Android-powered analytical instruments. Raman and XRF ran on a board that supported Android 5.1.1, while our LIBS product ran on Android 4.2. I architected most of our code to be shared where possible, both in Java and in C++. The algorithmic portion of our C++ code was also shared with our Windows desktop applications used by our physicists and chemists, allowing them to contribute algorithms to the Android apps without ever opening Android Studio.

    • Embedded Android development

    • Managed AOSP environments for both OMAP and Qualcomm embedded Android systems

    • Wrote modifications to the Linux Kernel to add support for new hardware: LCD screen, smbus battery, FPGA, and various sensors

    • Implemented native C++ hardware service to manage all hardware interaction (X-Ray Tube, lasers, FPGA, mechanical stage, I2C, SPI Bus, UART, and GPIO) via the AIDL (Android Interface DefinitionLanguage)

    • Algorithm Development in C++

    • Apache CouchDB / MapDB

    • Java Swing / Visual Basic (Desktop apps)

    • I2C / SPI bus / FPGA / UART / GPIO

    • DART-SD410: Qualcomm Snapdragon 410

    • Android Lollipop 5.1.1 / Android Jelly Bean 4.2

    • Integrated Travis CI for all of the major Android apps and the desktop app (replacing Jenkins)

    • Spectroscopy

    • Bluetooth

  • iOS Lead Architect, Univision Communications

    Apr, 2016 - Jan, 20179 months

    I led a team of 5 developers, spread across North America and South America, to develop Univision's top apps with millions of users: Deportes, Univision, and Noticias

    • Implemented a shared Objective-C architecture

    • Significantly refactored the codebases of Univision and Noticias into a single reusable CocoaPod, cutting each individual app's code down to a mere few classes

    • Designed and wrote a video player from scratch to replace JW Player using the AVFoundation and MediaPlayer frameworks

    • Integrated with the following libraries: NielsenAppApi, AdManager, Akamai, Urban Airship, AFNetworking, CHTCollectionViewWaterfallLayout, CocoaLumberjack, Crashlytics, Fabric, FBAudienceNetwork, Firebase, GoogleAnalytics, INSPullToRefresh, INTULocationManager, MMDrawerController, SDWebImage, TTTAttributedLabel, TwitterKit, XMLDictionary, YieldmoSDK

    • Integrated with Buddybuild CI for both the Android and iOS apps

  • Mobile Software Architect, Ingo Money

    Mar, 2013 - May, 20141 year 2 months

    I wrote the Ingo Money app for Android and iOS, an app that allows you to cash a check simply by snapping a picture of it

    • I wrote the Android app in Java. I used Gson for handling all of the JSON serialization/deserialization, Urban Airship for our push notifications, Iovation for uniquely identifying users and devices, and the Facebook SDK for posting about successful check deposits to the user's wall.

    • I wrote the iOS app in Objective-C. All of the user interface is captured via a storyboard or a xib file. The app utilized a separate storyboard altogether for iPhone 5 devices. The only external libraries I used were the iOS distributions of Iovation and Urban Airship. I also put together a complex custom camera view controller by manipulating the native UIImagePickerController via transformations and view obfuscations. This screen was responsible for taking check images and sending them as Base64 to the REST server. I was also responsible for generating all of the certificates and profiles for the application, as well as uploading the app to TestFlight (for QA) and the Apple App store.

    • Integrated with the A2iA Mobility library to OCR check images directly on the phone hardware

    • Extracted the main check cashing flow into its own SDK, allowing customers to embed into their own app with their own branding

    • The SDK also faciliated quick development of white label apps for financial institutions that did not have their own app

  • Lead Android Developer, Asurion

    Feb, 2012 - Mar, 20131 year 1 month

    Transitioned from Java server development to Android development here. Within a few months, I was leading development effort on the AT&T Mobile Protection Pack application, in a team of 7.

    • Developed various custom UI components surrounding contact and file syncing functionality

    • Wrote the Technical Documentation for the functionality surrounding (AWS) Amazon Web Services Multipart upload, allowing our customers to backup their photos and videos larger than 5MB in multiple separate sessions

    • Refactored the Android codebase to use Library projects, eliminating unnecessary resource abstraction

    • Wrote extensive JUnit tests for various features such as Contact and File sync and XML validation tests for our network protocol using XMLUnit

    • Played a vital role in providing client development estimates during Sprint planning for our internal projects

  • Java Developer / Big Data Engineer, Dataium (sold to IHS in 2015)

    Jun, 2011 - Feb, 20128 months

    I developed data parsing algorithms for the Hadoop platform and wrote database loading routines in Microsoft SQL.

    • Wrote Java code for the Hadoop platform

    • Reverse engineered automotive websites to optimize data collection

    • Wrote a nightly process that loaded car information from provided VINs, normalized the data, and inserted it into our database

Skills

Skills

  • Languages

    C / C++

    C#

    Javascript / Node.js

    Kotlin / Java

    Shell

    Swift / Objective-C

  • Technologies

    Kotlin Multiplatform

    SwiftUI / Jetpack Compose

    Android NDK / JNI

    CMake

    GCC

    Git

    GNU Make

    Graphql

    Inter-process communication (IPC)

    Multithreading

    OpenAL

    OpenGL(ES)

    OpenSL ES

    Regex

    REST

    Socket IO

    SQLite

  • Platforms

    Amazon Web Services

    Android

    Heroku

    iOS

    Linux

    macOS

    Windows

  • IDEs

    Android Studio

    Atom

    Code::Blocks

    Visual Studio

    Xcode

  • Tools

    Audacity

    Charles

    GitHub Desktop

    Parallels / Microsoft Remote Desktop

    Postman

    Slack / Discord / Zoom

    Travis / Jenkins / Looper

    Figma / Zeplin / Sketch

    Vysor

Education

Education

  • Software Engineering, Bachelors, The University of Phoenix

    Sep, 2011 - Jun, 2013

  • Software Engineering, Associates, ITT Technical Institute

    Sep, 2009 - Jun, 2011

Publications

Publications

  • The Last Kernel, Stephen Gowen

    Published on: Jan 23, 2017

    Grab 3 friends and jump in a microwave! Developed for macOS and Windows 7+

  • NosFURatu, Stephen Gowen

    Published on: Oct 20, 2016

    A side-scrolling game involving a rabbit turned vampire named Jon and his journey to rescue Bunni from an evil Cobra Countess! Developed for Android, iOS, Windows Phone 8+, macOS, and Windows 7+

Interests

Interests

  • Brazilian Jiu-Jitsu

  • Guitar

  • Cycling

  • Game Development

  • Reading / Writing

  • Tetris

  • Chess

  • Camping