About
I am a software developer with over twelve years of professional experience. However, I’ve been programming since 1986 (I started with Commodore 64 BASIC and Machine Language before the hard drive was even invented), giving me over thirty years of total programming experience. As a professional, I have designed, written, maintained, and project managed everything from embedded systems to enterprise level software.
Experience
Bose
Senior Application Software Engineer
2022 to Present (Two Years)
What Did the Company Do?
Bose is the industry leader in audio equipment from personal to professional use. They manufacture speakers, amplifiers, professional audio controllers, headphones, earbuds, hearing aids, Bluetooth devices and many more products that you yourself have possibly used. The sound quality of their products is second to none.
What Were My Responsibilities?
- Developed and maintained mobile and desktop software that ran on multiple operating systems including Windows, MacOS, Android, and iOS.
- Deployed multiple mobile software apps for both Android and iOS to the Google Play Store and the Apple App Store.
What Technologies Did I Use?
- Low level Android Development in C++ with NDK.
- Cross platform applications (Both Android and iOS) using C++, Qt, QML, JavaScript, and TypeScript.
- Native Android Development in Kotlin.
- MVI design architecture.
- Dependency Injection with Hilt.
- Native iOS Development in Swift.
- Android GUI involving both classic XML and Jetpack Compose.
- Cross platform GUI involving C++, Qt, QML, JavaScript, and TypeScript.
- Bluetooth and Network socket programming in C++, Kotlin, and Swift for TCP and UDP sockets on - Wireshark, TShark, and dumpcap to analyze and debug network traffic between applications and devices.
ComTech Communications
Senior Software Engineer
2012 to 2022 (Ten Years)
What Did the Company Do?
ComTech developed Fire Station Alerting devices for use by county and city fire departments all over the country. Fire Station Alerting Controllers (FACs) were central hubs that communicated with 911 dispatch computers and routed signals to Station Controllers which automated individual Fire Stations, getting first responders out the door as quickly as possible.
Our devices performed tasks such as shut off gas stoves at the station, created audio alarms for the appropriate response units, opened bay doors at the station, controlled the traffic lights outside the station, and fed information to personnel in a way they could easily digest as they responded on the move so they could confidently drop anything they were doing and go.
What Were My Responsibilities?
- Product Design and Development – Invented new products and evolved existing products based on direct customer demand and feedback.
- Software Development and Maintenance – Converted ideas and designs to code. Debugged issues and developed new features.
- Project Manager and Product Owner - Designed the latest cutting-edge Fire Station Alerting System devices to both manage entire counties and the devices to work at the stations from the ground up.
- Built a team of software developers – conducting interviews, and selecting the best candidates for the job.
- DevOps - Implemented modern software development practices where there were none before: Agile, Test Cases, Version Control. I developed the entire build pipeline for the company.
- QA – Implemented and maintained the QA pipeline using TestRail and overseeing the use of both Unit Testing and Regression Testing.
What Technologies Did I Use?
- Android Application development in Java – Created a mobile application for monitoring alerts to the primary Fire Station Alerting Controller.
- Embedded Linux Development on Fedora Server using C++ and Qt – Designed and programmed the latest Fire Station Alerting Controller and radio connected Text-To-Speech Servers.
- Embedded Systems Development in C++ and C on microcontrollers such as RabbitCore and Arduino – Designed and programmed smart peripheral devices used in Fire Station alerting such as Station Controllers, Touch Screen User Interface Displays, and Alert Information Displays.
- Networked Peripheral Programming – Created services that communicated with third-party network devices used in Fire Station Alerting, such as LED kiosk displays, Printers, Email and Text Message alerts, Zetron tone generators for DTMF and Two-tone pagers and decoders.
- Desktop and terminal applications in C++, Qt and C#.
- Headless daemon/service Development on Linux and Windows using C++.
- TCP and UDP Socket Development in C++.
- Berkely Socket programming for IPC between microservices.
- Wireshark, TShark, and dumpcap to analyze and debug network traffic between applications and devices.
- Network based development and interactions using netcat and SSH.
- Linux BASH shell scripting.
- LAMP Stack web browser-based application programming using Linux, Apache, MariaDB, PHP, JavaScript, and JQuery – Created web-browser-based Configuration GUIs for users to easily configure their systems and peripherals.
- Worked with API protocols in XML, JSON, and Modbus.