Stephen Gowen
*** ******** ** * Gallatin, TN ****6 * Cell 931-***-****
***.******@*****.***
Essential Skills
Technologies/Methodologies:
JIRA, Rally, Bamboo, Crucible, Team City, Jenkins
Git, Subversion
GitHub, Bitbucket, Assembla
Gradle, Maven, Ant
AES, SHA256, MD5 cryptography
MVC, Orthogonal Software
Programming Languages:
Java (Android, Swing, Server)
Objective-C (iOS, Mac OS X)
C/C++ (Android, iOS, Windows 10, Mac OS X, OpenGL ES, Direct3D)
MS SQL, MySQL, SQLite
JSON/ XML (Gson, Jackson, RapidJson)
Operating Systems:
Mac OS X
Windows
Linux/Unix Based Systems
Software:
Android Studio, Eclipse, NetBeans
Xcode
Visual Studio
Experience
SciAps - Woburn, MA January 2014 – Present
Software Architect
Writing Java/C++ software for the LIBZ System, which is a handheld analytical laser.
Wrote both an Android and an iOS application from scratch entirely by myself that analyzes/aggregates/displays alloy data.
UpdateZen – Montclair, NJ December 2014 – April 2015
Android Architect
Ported the existing UpdateZen iOS application to Android.
This application is for project managers, and it facilitates management of team members
Constant Contact - Waltham, MA January 2015 – March 2015
Senior Android Developer
Sped up the contacts search functionality in the Toolkit application by 300 times!
Wrote SQLite Database Android Instrumentation Tests
Added support for Email Lists in the Toolkit application
Nito – New York, NY August 2014 – March 2015
iOS/Mac OS X Developer
Added extensive features and enhanced the Mac OS X and iOS versions of the Nito app.
The Nito app uses OpenGL combined with proprietary face tracking technology to render a 3D avatar that reflects your facial movements. You are able to record and share videos of your avatar in action as well.
The iOS and Mac apps utilize the Superpowered Audio Engine to allow users to customize the audio output of their recorded avatar videos.
InfoWorks - Nashville, TN June 2014 – September 2014
Mobile Software Architect
Wrote the CGS GO Mobile application entirely from scratch for both Android and iOS. It is currently on the Google Play and Apple App stores.
Venturesoft - Monroe, CT May 2014 – July 2014
Mobile Software Architect
Designed entire solution with documentation on how to develop an Android SDK in Android Studio and distribute it both as an AAR and as an Eclipse-ready zip file project dynamically.
Architected/Designed solution for SDK that embeds a complete modal-nested navigational flow on Android
Added Dealership search feature to Bankrate Auto app for Android. This involved using the Google Maps and Edmunds API’s.
Constant Contact - Waltham, MA September 2013 – December 2013
Senior Android Developer
Wrote over 100 unit tests covering all client/server interactions
Built a complete drag/drop email-marketing editor for Android, complete with color pickers and tablet support.
Ingo Money - Nashville, TN March 2013 – May 2014
Mobile Software Architect
Significantly refactored and made updates to the “Spyke” mobile application for Android by eliminating memory leaks, optimizing the JSON serialization to consume less memory, and consolidating the network communication to our Services layer. Spyke utilized ActionBarSherlock’s tab bar to manage various fragments. I also had to extract asynchronous task execution from these fragments to their parent activities to eliminate application crashes.
Single-handedly wrote Ingo Money for Android. 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.
Single-handedly wrote Ingo Money for iOS. All of the user interface is captured via a storyboard or a xib file. The app utilizes 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 is responsible for taking check images and sending them as Base64 to our Services layer. 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.
For both Android and iOS, I mocked all of the server interaction, allowing our sales team to show off all of the screens and features of the app in a demo mode that required no network connectivity to function.
Asurion - Nashville, TN February 2012 – March 2013
Android Developer
Led the development effort for the AT&T Mobile Protection Pack application on Android.
Wrote the Technical Documentation for the functionality surrounding 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. Also wrote 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.
Dataium LLC - Nashville, TN June 2011 – February 2012
Java Hadoop Developer
Wrote Java code to extract relevant information from raw collection data using the Hadoop MapReduce API
Wrote a Java procedure that downloaded remote vehicle information for a list of VINs and inserted this data into multiple databases as part of a nightly automated process.
Wrote a utility using Java and Pig script that extracted raw data from the collection server and stored it into separate logical entities for Hadoop processing.
Projects
Battle Bombs February 2014 – December 2014
Android, iOS, Windows Phone 8, Java Server
Cross-platform multiplayer Bomberman clone that supports up to 8 players in real-time.
Completely bootstrap; I funded all of the design/sound/music/marketing aspects by myself.
85% of the game is written in C++. This codebase is used on all 3 mobile platforms and the Azure server. The other 15% of the code are wrapper layers written in (Java, Objective-C, C#).
None of the popular cross-platform frameworks are used here (Unity, Marmalade, Cocos2d, etc.); I have designed and implemented a complete cross-platform solution entirely by myself. Doing this was important, because it allows me to always support the latest platforms without any delay (e.g. not having to wait on a company to update their SDK to support the latest iOS version). That being said, my framework does utilize the following libraries: libpng (for loading png images via C), rapidjson (for processing server communications via C and AppWarp (for communicating with the server via Java, Objective-C, and C#).
The outer layer of the game (the wrapper so to speak) is written using the platform-specific technologies (Java/XML, Objective-C/Storyboards, C#/Xaml, Java 7). This allows me to respect and embrace individual platform paradigms while maintaining the concept of D.R.Y (Don’t Repeat Yourself) by writing the core of the game only one time, only one way.
On Android, I access the C++ core by interfacing with JNI (Java Native Interface).
On iOS, I access the C++ core by simply using a ViewController with an .mm extension.
On Windows Phone 8, I access the C++ core by instantiating a WinRT C++ Class from the .NET (C#) layer, which in my case is a subclass of Page.
Tappy Plane February 2014
Android, iOS, Windows Phone 8
An Open Source cross-platform Flappy Bird clone for Android, iOS, and Windows Phone 8. In this game, you tap to control a colorful plane through a cave!
It uses precompiler directives to intuitively switch between OpenGL ES and Direct3D rendering. Roughly 90% of the game is written in C++. The other 10% of the game is a reusable wrapper layer written in Java for Android, Objective-C for iOS, and C# for Windows Phone 8.
Insectoid Defense June 2012 – December 2013
Android, iOS, Windows Phone 8
Sci-Fi Tower Defense game for Android, iOS, and Windows Phone 8
Developed entirely by myself using OpenGL ES/Direct3D without any third party game libraries or frameworks.
Utilizes the Google Play Game Services framework to store leaderboards and achievements across both Android and iOS.
Utilizes the Google on all 3 platforms for app monetization
Roughly 90% of the game is written in C++. This codebase is shared across all 3 platforms. The other 10% of the game is a reusable wrapper layer written in Java for Android, Objective-C for iOS, and C# for Windows Phone 8.
Education
University of Phoenix – Nashville, TN September 2011 – June 2013
Earned a Bachelor’s of Science in Information Technology with a Concentration in Web Development
Graduated in June 2013
GPA – 3.22
ITT Technical Institute – Nashville, TN September 2009 – June 2011
Earned an Associate’s Degree of Applied Sciences in Software Applications and Programming
Graduated in June 2011
GPA – 3.76