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

Kotlin, Kotlin Flow, Jetpack Compose, KotlinPoet, RxJava2, Dagger2, Gradle, MockK, Mockito, Robolectric

Databases

SQL, MS-SQL, Oracle PL/SQL, MongoDB

Embedded

C++17, GoogleMock/GoogleTest, CMake, QNX

Web

Django, Django-TastyPie

Tools

Git, JIRA/Confluence, IntelliJ, CLion, Balsamiq, LaTeX, Figma

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

Ford Motor Company

September 2023 - Present
Software Engineer, Safety Graphics

Building functionally-safe (ISO 26262) user interfaces. (C++, QNX, ISO 26262)

Ford Motor Company

October 2020 - September 2023
Senior Android Developer, Domain Architect

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.

Ford Motor Company

October 2020 - October 2021
Android Contractor

Contract-to-hire position for the above role. I was converted to a full-time employee at 11 months.

Trimble Oil & Gas Services

September 2018 - September 2020
Software Engineer

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.

Drivewyze

May 2016 - September 2018
Software Developer

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.

Computronix

May 2015 - August 2015
Summer Student
  • Designed & implemented billing system enhancements.

  • Learned Oracle PL/SQL, wrote stored procedures in a large database application.

Certifications

Associate Android Developer
May 2018 - Expires May 2021
Google Developers
Google Cloud Platform Fundamentals, Core infrastructure
March 2019
Coursera -- Google Developers
Industrial IoT on Google Cloud Platform
January 2019
Coursera -- Google Developers
Algorithms on Graphs
July 2018
Coursera -- UC San Diego & Higher School of Economics (NRU)
Data Structures
April 2018
Coursera -- UC San Diego & Higher School of Economics (NRU)
Algorithmic Toolbox
October 2017
Coursera -- UC San Diego & Higher School of Economics (NRU)

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.

Introduction to Android App Development & RxJava
Stefan Martynkiw
Startup Edmonton Student Developer Conference 2018
Introduction to Android App Development
Stefan Martynkiw
Startup Edmonton Student Developer Conference 2017

Volunteerism

FIRST Lego League

2012 - 2018
Technical Judge

Mentored and evaluated elementary and middle school students participating in Lego Mindstorms robotics design competitions.

Awards

Eleven Prize -- Eleven Engineering Inc.

2016
Best ECE Capstone Design Project

Hobby Projects

BMW E39 Navigation Retrofit Project (2019 - 2020) - The first iteration of retofitting the BMW factory navigation to my BMW e39. I built middleware on a Raspberry Pi to get the steering wheel buttons to change the audio track on a Bluetooth-connected telephone.
Fast Math - At a 24-hour Hackathon in early 2014, I worked with Stephen Just and Jacob Ortt to re-create the elementary school fun of Mad Minutes. The idea was that you are presented with quickly solveable Calculus problems, and for every problem solved, you get an “award” in the form of an XKCD-style comic.
Qasper - Qasper was my very first Android app that I wrote in University. In a team of six, we built a multi-threaded Question/Answer application similar to Stack Overflow.
Hand-built Z80 Computer - I bread-boarded a Z80 microcomputer.
Arduino EEPROM Programmer - While building the Z80 microcomputer, I built an EEPROM programmer.
BMW DIS Interfacing - I worked with the BMW DIS software to interface with my early 90s BMW. Using an RS232 to ADS cable, I was able to communicate with the car's engine management unit.