Profile
I am an Android developer with 7 years of experience in the connected vehicle space. I thrive in environments where I am challenged to quickly learn & share Android best-practises to deliver reliable location-based applications. I am enthusiastic about trying new design patterns and language features while carefully evaluating new technologies’ trade-offs.
Skills
Android
Databases
Embedded
Web
Tools
Soft Skills
- Mobile application design & architecture
- Requirements gathering
- Process analysis and documentation
- Writing and presenting Lunch & Learns, Conference Talks
- Authoring technical training materials
- Scrum process, release planning
Work Experience
Building functionally-safe (ISO 26262) user interfaces. (C++, QNX, ISO 26262)
In this role, I was the domain architect and lead developer for part of the new infotainment system that Ford launched for the 2024 Lincoln Nautilus. This system features a 48-inch panoramic display, a touch-screen centre stack, and tight integrations between the Android Automotive OS system and a hypervisor.
-
I was the domain architect for the right-Pano Information On Demand (IOD) widgets. (Trip computer, Fuel Economy, Clock, TPMS). I was also the domain architect for the Centre-Stack Panoramic Display configurator application.
-
I started at the very beginning of the IVI project, writing prototypes and cross-training Android best practises to other team-mates who had an Unreal Engine and C++ background.
-
When the Nautilus project was started, my work was used as a foundation for the new system. I provided the technical design and architecture guidance to a team of ten developers.
- Wrote prototypes and Proof of Concepts
- Introduced Jetpack Compose to Ford Motor Company. Our team was the second team in all of Ford to adopt Compose in production.
- 1:1 mentored and helped all of the developers with code questions, design ideas, and unit testing help.
- Prepared a 1 hour lunch and learn on Jetpack Compose Scaffold Layouts in mid-2021, when documentation on Compose was scarce.
- Assisted my manager in becoming acquainted with the inter-team dependencies on vehicle services and signalling. I empowered him with information and design intent so he could advocate for our team’s needs when we needed services from the “rest of the car”
-
I helped perform technical interviews as an Android Subject Matter Expert for two engineering supervisors. My input led to the hiring of three very strong developers.
-
I worked with the Design Studio team to provide feasibilty input and brainstorm interaction modes.
-
I built two libraries (SignalService and AutoRebindingServiceClient) that automated the repetitive IPC tasks that our team’s projects faced. SignalService provides a Kotlin DSL for marshalling and unmarshalling nested Bundles into a Message. On the producer side, it provides an easy way for developers to specify a URI scheme for multiple endpoints of streaming data from a bound service connection. On the consumer side, it automates setting up a Kotlin Flow that can be wired into a repository or ViewModel architecture.
AutoRebindingServiceClient provides a way for developers to simply and reliably bind to a service, and abstract all failure events such as Disconnect, BindingDied, Reconnect, etc. It has hooks for developers to provide exponential back-off and retry characteristics without requiring deep knowledge of RxJava or Kotlin Flow patterns. This library centralized the code and tests for error-prone ServiceConnection lifecycle handling, enabling the team to wire together components more quickly.
Contract-to-hire position for the above role. I was converted to a full-time employee at 11 months.
Android developer for in-vehicle telematics tablets. I worked on new app development for end-users, B2B app development and integrations, as well as Device Admin and Device Policy Controller APIs, and Samsung KNOX SDK integrations.
-
Delivered Out-of-Truck lone-worker safety application. Guided a team of 4 through design decisions, experimentation with new Android Architecture components, and best practises. As part of the team, I also cross-trained an embedded C developer Android development practises and design patterns, leading to an additional effective project contributor.
-
Designed and implemented large-scale tablet imaging & setup process to automate field tablet setup and software installation as part of a warehouse supply chain.
-
Organized and led the team during the last stages of the tablet imaging process project by identifying outstanding Product Backlog Items, and collaborating with the team to place the PBIs on a Gantt chart (updated every day in daily standup) so that we could confidently deliver in our narrow deadline.
-
Learned best practises with Android Room and Navigation Jetpack architecture components.
-
Occasionally completed C development tasks for an embedded in-truck on-board computer with engine management peripherals.
Android developer.
-
Exposed to design evolution of building and scaling a connected truck application with remote code-update and diagnostic capabilities.
- Overhauled flagship Google Play Store Android app to:
- Use an internal common C++ business logic layer
- Integrate with partner application
- Have a brand-new UI
- Adopt Clean Architecture code design
- Increase test coverage
-
Successful releases and partner integrations greatly increased the Total Addressable Market for the Android app.
-
Learned RxJava2, Dagger2, Mockito, Robolectric, Clean Architecture patterns.
-
Production experience using Android Geo-location APIs: usage, initialization, and device-specific pitfalls.
-
Consolidated 3 separate development streams, reducing un-needed design diversity.
- Worked closely with partner companies to fine-tune and achieve technical requirements.
-
Designed & implemented billing system enhancements.
-
Learned Oracle PL/SQL, wrote stored procedures in a large database application.
Certifications
Conference Presentations
I wrote and presented two workshops at a conference for university students. Each workshop was 75 minutes in length and detailed the theory and practise of building web-enabled Android applications. The workshop focused on an example “Todo List” application.
Volunteerism
Mentored and evaluated elementary and middle school students participating in Lego Mindstorms robotics design competitions.