Design and development of core features and functionalities for internal Ford flashing tools, primarily utilizing Golang.
Lead the integration of flashing tools into modern, cloud-based (GCP) Continuous Integration/Continuous Deployment (CI/CD) pipelines to enable automated software-in-the-loop (SIL) and hardware-in-the-loop (HIL) validation.
Read, understand, and analyze existing codebase (including legacy systems), identifying areas for improvement, refactoring, and integration of new features.
Collaborate with ECU software development teams to understand their requirements and translate them into tool capabilities.
Actively participate in all aspects of the Agile software development lifecycle, including daily stand-ups, sprint planning, backlog refinement, and sprint reviews.
Develop and implement unit, integration, and end-to-end tests to ensure the robustness, accuracy, and performance of the flashing tools.
Create and maintain clear, concise technical documentation for developed features, APIs, and system architecture.
Provide technical support and troubleshooting for issues related to flashing tools across the release.
Guide, mentor, and coach junior and mid-level software engineers, establishing and championing best practices.
Requirements
Bachelor’s degree in Computer Science, Computer Engineering, Electrical Engineering, or a closely related field of study.
7+ years of professional software development experience, with a proven track record of delivering production-grade developer tools or system-level software.
Expert-level programming proficiency in Go.
5-7 years of experience in system design and software architecture, particularly in how software interacts with embedded systems and physical hardware.
5-7 years of experience mentoring other engineers and leading technical projects or workstreams.
Deep expertise in automotive diagnostic and flashing protocols (e.g., UDS ISO 14229, DoIP ISO 13400, ODX, or AUTOSAR standards).
Extensive experience with in-vehicle network communication protocols (e.g., CAN, CAN-FD, LIN, and Ethernet).
Experience using and automating automotive hardware interface tools (e.g., CANalyzer, ValueCAN, etc).
Experience architecting and maintaining CI/CD pipelines (e.g., Jenkins, GitHub Actions) for hardware-reliant software.
Active participant in Agile/Scrum development methodologies, with experience driving sprint planning and technical backlog grooming.
Exceptional diagnostic, problem-solving, and communication skills, with the ability to translate complex technical concepts to both technical and non-technical stakeholders.