Resume
20+ Years of Experience
Experience
2022 - Date
Digital Turbine IncSenior Software Developer
• Android developer on the Discover Bar and Moment apps
• These apps run on tens of millions of devices worldwide
• Code quality, testability and reliability are paramount in this role
• Work closely with Product, QA and Automation teams
• Clients include Tier 1 carriers such as AT&T, and Tier 2 carriers such as Cricket, US Cellular, Tracfone and many more
• These apps run on tens of millions of devices worldwide
• Code quality, testability and reliability are paramount in this role
• Work closely with Product, QA and Automation teams
• Clients include Tier 1 carriers such as AT&T, and Tier 2 carriers such as Cricket, US Cellular, Tracfone and many more
2021 - 2022
FangJet LLCSoftware Consultant (Owner)
• Android and web software development contractor
• Worked on an app that streamed video of a person presenting at a whiteboard, with video from the Android camera that was processed in real-time on the device using OpenCV native code and streamed to a web conference such as Zoom and WebEx, with the presenter removed from the shot.
• Designed and developed an Android launcher for the elderly / vision impaired
• Developed an Android app with on-device voice recognition with wake word detection
• Worked on an app that streamed video of a person presenting at a whiteboard, with video from the Android camera that was processed in real-time on the device using OpenCV native code and streamed to a web conference such as Zoom and WebEx, with the presenter removed from the shot.
• Designed and developed an Android launcher for the elderly / vision impaired
• Developed an Android app with on-device voice recognition with wake word detection
2011 - 2021
ThinkRite IncStaff Software Engineer / Android Team Lead
• Lead Android developer, working in a small team primarily on Betr Meetings, a productivity app that allows users to manage their calendar and join conference calls and attend meetings.
• Coordinated design and development with the iOS and Web teams, Product and QA departments.
• Used the Twilio Voice SDK to develop a voice and video conferencing solution for users to attend meetings using our app (with cross platform compatibility with iOS and Web)
• Used and promoted the use of JUnit, Mockito and other unit testing methodologies.
• Worked with native libraries using the Android NDK
• Championed the use of Continuous Integration within the organization. Installed and configured Jenkins servers and made use of GitLab pipelines and Docker to run unit tests before code review.
• Worked on an IBM Soft Phone Android app, using PJSIP the library for call control
• Experienced with Camera, BluetoothLE, Telephony, Google Maps, Firebase, OAuth and more
• Experienced with Jetpack components such as navigation, data binding, life cycle, work manager, etc
• Designed and implemented advanced bespoke UI components such as a custom calendar Ui.
• Wrote clear and concise technical and end-user documentation
• Developed hybrid portions of the app in Javascript using the Vue.js Javascript Framework
• Implemented push notifications with both Firebase and also with Pusher (3rd party push notification service)
• Integrated debugging and crash reporting services and analytics using Crashlytics, Raygun and MixPanel.
• Worked under an Agile software design methodology. Played an active role in sprint planning, retrospectives and organized the Android team sprint demos.
• Integrated the app with the AT&T Conference Call Gateway (CCGW) to provide features such as active speak- er, and host controls such as mute-all, waiting rooms, drop leg, terminate conference and more.
• Wrote an Exchange Web Service (EWS) component to retrieve and update calendar events via the exchange protocol (for example Office 365) and perform name and phone number lookup.
• Developed an Android voicemail app called ThinkRite Voice Client, used by IBM employees and external customers to manage their IBM Unified Messaging voicemail.
• Conducted technical interviews and mentored junior devs.
• Presented “Lunch-and-Learn” sessions to teach colleagues about topics such as Test Driven Development (TDD) , code review, version control, coding best practices, and more.
• Wrote a C# desktop app prototype to explore custom window design and animation techniques.
• Coordinated design and development with the iOS and Web teams, Product and QA departments.
• Used the Twilio Voice SDK to develop a voice and video conferencing solution for users to attend meetings using our app (with cross platform compatibility with iOS and Web)
• Used and promoted the use of JUnit, Mockito and other unit testing methodologies.
• Worked with native libraries using the Android NDK
• Championed the use of Continuous Integration within the organization. Installed and configured Jenkins servers and made use of GitLab pipelines and Docker to run unit tests before code review.
• Worked on an IBM Soft Phone Android app, using PJSIP the library for call control
• Experienced with Camera, BluetoothLE, Telephony, Google Maps, Firebase, OAuth and more
• Experienced with Jetpack components such as navigation, data binding, life cycle, work manager, etc
• Designed and implemented advanced bespoke UI components such as a custom calendar Ui.
• Wrote clear and concise technical and end-user documentation
• Developed hybrid portions of the app in Javascript using the Vue.js Javascript Framework
• Implemented push notifications with both Firebase and also with Pusher (3rd party push notification service)
• Integrated debugging and crash reporting services and analytics using Crashlytics, Raygun and MixPanel.
• Worked under an Agile software design methodology. Played an active role in sprint planning, retrospectives and organized the Android team sprint demos.
• Integrated the app with the AT&T Conference Call Gateway (CCGW) to provide features such as active speak- er, and host controls such as mute-all, waiting rooms, drop leg, terminate conference and more.
• Wrote an Exchange Web Service (EWS) component to retrieve and update calendar events via the exchange protocol (for example Office 365) and perform name and phone number lookup.
• Developed an Android voicemail app called ThinkRite Voice Client, used by IBM employees and external customers to manage their IBM Unified Messaging voicemail.
• Conducted technical interviews and mentored junior devs.
• Presented “Lunch-and-Learn” sessions to teach colleagues about topics such as Test Driven Development (TDD) , code review, version control, coding best practices, and more.
• Wrote a C# desktop app prototype to explore custom window design and animation techniques.
2001 - 2011
VoiceRite LtdSenior Systems Engineer
• Lead developer of the VoiceRite Client, a multi-platform Eclipse RCP based voicemail and telephony application for the IBM Unified Messaging voicemail platform. It runs as a plugin within IBM Lotus Notes or Sametime, and also as a standalone application.
• Troubleshooted application issues from the client to server side, such as by analyzing application logs and traces and telephony traces including SIP, QSIG, ISDN protocols.
• Experience of DB2 and IBM WebSphere Application Server tuning, troubleshooting and configuration.
• Responsible for new feature development as well as bug fixing. Projects include modifying the application to communicate with the backend WebServices over SSL and using the IBM Intranet password for mailbox login. For both projects I worked with one other developer to architect a solution that conformed to strict IBM security standards.
• Travelled extensively worldwide installing and upgrading IBM Unified Messaging at customer sites, working with on-site telephony engineers (Siemens, Avaya, Cisco, etc) to set up state of the art voicemail servers. A big install often consisted of multiple IBM pSeries servers running AIX with high levels of redundancy and "five 9s" reliability.
• Created and improved software and operating procedures for system monitoring, recovery, backup and optimization.
• Troubleshooted application issues from the client to server side, such as by analyzing application logs and traces and telephony traces including SIP, QSIG, ISDN protocols.
• Experience of DB2 and IBM WebSphere Application Server tuning, troubleshooting and configuration.
• Responsible for new feature development as well as bug fixing. Projects include modifying the application to communicate with the backend WebServices over SSL and using the IBM Intranet password for mailbox login. For both projects I worked with one other developer to architect a solution that conformed to strict IBM security standards.
• Travelled extensively worldwide installing and upgrading IBM Unified Messaging at customer sites, working with on-site telephony engineers (Siemens, Avaya, Cisco, etc) to set up state of the art voicemail servers. A big install often consisted of multiple IBM pSeries servers running AIX with high levels of redundancy and "five 9s" reliability.
• Created and improved software and operating procedures for system monitoring, recovery, backup and optimization.
2000
Department of Applied MathematicsJava Programmer
• After achieving a 3.88 GPA in my first semester at the University of Colorado, I was offered an internship for a software project called the Mathematical Discussion System.
• We built a tool for presenting a mathematical text online. I wrote a feature that enabled users to embed discussions, including complex mathematical notation, anywhere in the website text.
• We built a tool for presenting a mathematical text online. I wrote a feature that enabled users to embed discussions, including complex mathematical notation, anywhere in the website text.
Education
2001
University of East Anglia (United Kingdom)2:1 BSc Hons in Computer Science
My degree included a year abroad at the University of Colorado, Boulder where I also interned at the Department of Applied Mathematics.
1999
Sudbury Upper School (UK)A Levels
Business Studies, Geography and Mathematics
Certifications
IBM DB2 Certified Database Associate - DB2 10
2014
IBM Sametime Unified Telephony Professional
2010
IBM Certified Specialist - pSeries AIX System Admin
2004
Coding Skills
Java
95%
Kotlin
87%
Android SDK
95%
JetPack
80%
Other Skills
JavaScript
90%
Profiling
85%