Senior Mobile Software Engineer - ENG0040573

Offer by General Motors




About this job

Job type: Full-time
Role: Mobile Developer


android, ios, reactjs

Job description

Do you have a passion to see your work used by millions of customers around the world?
Do you believe in building not only working software, but well-crafted software working with a community of professionals?
Do you believe in steadily adding value by releasing frequently the features you built in productive partnerships with customers, product management and user experience teams?
We are looking for ambitious and creative professional React Native, Android Native, and iOS Native application developers who are passionate about mobile apps, the connected car, and want to be part of a fast growing technology hub in Detroit to develop ground breaking features in GM’s flagship mobile apps.
Below Are Links To MyChevrolet
Learn more about our apps by looking at myBuick, myCadillac, myGMC, myChevrolet, myOpel, myVauxhall or OnStar RemoteLink in the app store.
At GM, we are finding ways to bring your digital life into your car and your car into your digital life. One way is with your phone. GM vehicle apps provide new ways to connect with your vehicle. Among other things, you are able to see diagnostic information and start your car from your phone, watch, and interact with services in your vehicle using CarPlay and Android Auto. You can help determine what it will do next! With 4G LTE connected cars becoming available in Europe as well as North America.
As a team member, you will be involved in all aspects of developing new features including user story elaboration, estimation, analysis, design, programming, unit/integration testing and debugging following Agile development practices such as Scrum and Extreme Programming (XP). In this highly collaborative, cross-functional, and Agile environment, you will…
  • Build industry leading mobile apps for connected vehicles on a global scale
  • Elaborate, estimate, and design for small increments of work…just-in-time
  • Commit to completing well-defined work and deliver on those commitments
  • Swarm around tasks along with other Scrum team members
  • Perform technology evaluation and design spikes
  • Test-drive code (Test Driven Development)
  • Pair program with different people in many situations
  • Report status of assigned software development tasks
  • Consistently follow the specified software development methodology
  • Model courageous and continuous learning to the team. Actively help team members continuously learn
  • Promote improvements in programming practices such as functional/acceptance test driven development, continuous integration, and test automation
  • Continuously learn and challenge the organization concerning new practices, processes, technologies, and languages
  • Build a strong team using their collaboration skills. Interview and mentor team members.
  • Provide leadership and assistance among and across teams/organizations
Prospective candidates possess a high degree of business insight, creativity, decision making skills, a drive for results, the ability to negotiate, the ability to develop peer relationships, and a strong technical learning capability.
Required Experience And Skills
  • 3+ years of experience on a team developing: React Native, native Android, or native iOS apps.
  • Design and write software technical specifications, write software code and perform unit testing
  • Apply current technology to solve technical problems and ensure system and application performance is optimized
  • Work with business units to improve efficiency and remove barriers in applications
  • Work with product teams on new product ideas, designs, prototypes and estimates
  • Maintain coding standards to facilitate code maintenance and enhancement
  • Provide deep systems support (programming, architecture, system analysis) for the Applications team
  • Document processes and development projects
Preferred mobile experience - in one or more of the following platforms
React Native
  • Experience on a team developing React Native app(s) available in the app store
  • Experience with TypeScript
  • Experience with Unit Testing frameworks such as Jest and UI testing frameworks like Detox
  • Experience with Redux Sagas for state management
  • Experience developing apps that interact with Web Services (REST, JSON) – Axios is a plus
  • Experience developing bridges to native components
  • Experience with IntelliJ, ReactNative Debugger
  • Most likely 3+ years of experience on a team developing native Android app(s) available in the Google Play store
  • Experience with Java 8 and RX Java in a production application
  • Experience developing apps that interact with web services (REST, JSON) – Retrofit is a plus
  • Experience with frameworks such as Dagger and design patterns such as MVP, Singleton, Factory
  • Experience with native Android HIG and UI development best practices – Android Material Design
  • Experience with data persistence frameworks such as Realm or Active Android
  • Experience with Google Play Services is a plus
  • Experience with Android Studio
  • Experience with the publishing process for Google app store
  • Experience with Android Auto is a plus
  • Most likely 3+ years of experience on a team developing native iOS app(s) available in the App Store
  • Experience with Swift and Objective-C in a production application
  • Experience developing apps that interact with web services (REST, JSON) – AF Networking and Mantle are a plus
  • Experience with native iOS HIG and UI development best practices including a deep knowledge of UIKit and AutoLayout
  • Experience developing for Apple Watch or CarPlay are a plus
  • Experience with the publishing process for the iOS app store
Preferred General Experience And Skills
  • Experience designing and developing mobile applications in a complex operating environment; financial industry experience strongly preferred
  • Proven experience/responsibility for design and architectural decisions of app
  • Proven knowledge and practical application of design patterns
  • The ability to identify and write appropriate tests leveraging mocking/spying frameworks for isolation of the subject component
  • Knowledge of and desire to work in an Agile development environment
  • Must have strong teamwork orientation and the ability to foster collaboration within and across teams
  • Understanding of object-oriented design, client-server architecture, and relational database design
  • Experience with notification platforms such as FCM, APNS
  • Experience developing location-based services with MapKit, Google Maps or similar framework
  • Experience in Jenkins, Fastlane, and Fabric for continuous integration and deployment
  • Experience with multithreading, memory management, and caching mechanisms specific to mobile devices
  • Familiarity with SCRUM as a development method for Agile Development
  • Proven ability to quickly learn and apply new technologies
  • Bachelor's degree in Computer Science or an equivalent of work-related experience
BS in Computer Science or other related field of study and applicable work experience
3 - 10 years of experience as a software developer on production project
This position requires the ability to legally operate a motor vehicle on a regular basis.

A new version is available REFRESH