Detroit, Michigan, USAbout GM
There’s never been a more exciting time to work for General Motors.
To achieve our vision of a world with Zero Crashes, Zero Emissions and Zero Congestion, we need people to join us who are passionate about creating safer, better and more sustainable ways for people to get around. This bold vision won’t happen overnight, but just as we transformed how the world moved in the last century, we are committed to transforming how we move today and in the future.
Why work for us
Our culture is focused on building inclusive teams, where differences and unique perspectives are embraced so you can contribute to your fullest potential as you pursue your career. Our locations feature a variety of work environments, including open work spaces and virtual connection platforms to inspire productivity and flexible collaboration. And we are proud to support employee volunteer interests and make it a priority to join together in efforts that give back to our communities.
The Connected Ecosystem Integration organization in General Motors blends aspects of Information Technology, Software Development, and Vehicle Engineering into a rewarding career that builds leading-edge services and products around the customer’s connected vehicle experience. The Core App team is responsible for the software development, testing, and release of vehicle integrated apps which facilitate an application shop experience to our customers. Processes follow agile software development practices within the vehicle engineering timing model.
This specific role is for a software developer with the primary responsibility to work with a team to code a portfolio of connected application products and/or features of a product. The software developer is expected to have proficiency in JAVA for android coding and possess expertise in building new (and supporting existing) android-based software products that run on an in-vehicle platform. The software developer will engage at the development start stage and work from actionable user stories and epics that are derived from business requirements. Projects often include components which interface with back office systems, so experience with distributed systems is essential. Developers will work in an agile-based environment that may not strictly adhere to every facet of the agile methodology. Developers will be expected to assure their code through comprehensive unit tests, and deliver complete, robust, and critical defect-free product to integration teams for final testing. After release of the product, the developer may be asked to continue to support the product through a warranty period, and be engaged in defect triage, bugfixes, and hotfixes for critical issues.
Technical skills of candidates should include extensive experience in android software development, with skills in kotlin, room database, data binding, model view/view model, dagger 2, android p/q, and android X. Software developers in this role will also be relied on to function as SME’s on build processes and function as the gate keeper of build tools, processes, and best practices. Experience with continuous delivery systems for Android will allow shepherding of all development activities to a common process.
- 2+ years of experience in a software development in JAVA for android.
- Leverage high degree of organizational and communication skills to comprehend design as articulated by team architects and contribute to effort estimation activities.
- Work with team technical business analysts to always ensure features under development continue to meet the feature definition and expectation; communicate and escalate where necessary any ambiguous or contradictory features for resolution.
- Work with a team of developers in an agile-based environment to build features of products that will be part of an in-vehicle android platform.
- Apply critical thinking to write efficient, flexible code using various methods to assure quality and which delivers the intended feature without relying on extensive development quality assurance teams.
- Work to take a feature concept from base requirements and user stories to a functioning product that runs as part of a larger overall piece of infotainment software.
- Execute tasks in agile-based methodology and participate in scrum ceremonies; reinforce team mechanics by working in development pods to deliver product together, primarily acting as SME for the features developed.
- Communicate within the development team with tools and artifacts and methods such as JIRA, GIT, Stash, Confluence, ALM, RTC, TFS, and more.
- Leverage communication and problem-solving skills by interfacing with multiple teams to resolve integration issues during the development cycle.
- Capability to solve problems that arise in development cycle and/or escalate appropriately and contribute to resolution strategies which balance risk management against desired feature content.
- Develop and deploy product using industry-leading coding best practices, including cybersecurity design, driver distraction-sensitive standards, and object-oriented and reusable programming.
- Subject matter expertise on continuous integration and continuous delivery methods. Ability to act as team SME on code practices, development tools, and deployment methods.
- Bachelors degree in Information Technology, Computer Science, Engineering, Physics, Math, or Chemistry or equivalent experience may be considered
- Expertise and/or certification in Agile software development methods
- Proficiency in software development tools such as JIRA, GIT, Stash, Confluence, ALM, RTC, Gherkin, and more
- Knowledge and experience in vehicle infotainment platforms and architecture a plus (GMLAN, CAN, Global-A, Global-B, etc.)
- Fluency with connected vehicle infotainment systems
- office systems interaction or integration experience a plus