As an iOS Software Engineer, you will be building customer-focused and scalable native mobile experience in GMPI’s iOS app and be responsible for monitoring and addressing performance and security. You will work side-by-side with designers, product owners, copywriters and other developers to create new features, test your own ideas, and push changes live for billions of users. You will:
- You will have end to end ownership for both the development of our products bundling experience and for building the Multi Product platform approach from scratch and powering the Cross Sell Experience.
- You will be involved in the development of new features and integrations, collaborating with other native iOS Engineers.
- You will collaborate with the rest of the GMPI teams in order to create a seamless experience across mobile platforms.
- Ensure the utmost high quality of the GMPI app in production, by monitoring crashes, firefighting incidents, solving complex bugs, etc, and leading incident investigation if necessary.
- Lead and coach other developers in the team
- Maintain and modernize the core libraries for the GMPI app (Network, A/B testing, Local Storage, etc.).
- Ensure that our platform and new features are always kept up-to-date with the latest technology standards and department guidelines.
- Ensure that service-level-agreements for test coverage and quality are met by implementing tests and processes.
- Perform profiling to find bottlenecks and optimize performance, and ensure that performance metrics are set up and monitored for app health.
- Able to connect business and product goals to complex technical tasks.
- Solve issues prioritizing based on customer impact.
- Collaborate with app developers, backend developers, product managers, and quality specialists, to constantly improve customer experience within the Trips Horizontals to enable the connected trip vision.
- Contribute to GMPI's growth through interviewing, on-boarding, or other recruitment efforts.
We expect our developers to know the ins and outs of the iOS framework and to deliver polished products that customers want to use. We need self-starters who are great at solving problems, initiate solutions and discussions and are not afraid of solving challenges due to our large scale.
- 7+ years of experience developing native iOS applications using Swift or Objective-C.
- At least 1 year of this experience must be from working with Flutter Framework.
- Excellent knowledge of Swift, Cocoa and Xcode.
- Experience in working on building iOS applications with SwiftUI is a must for this role.
- Good understanding of best practices in testing and test frameworks available for iOS projects.
- Knowledge of Object Oriented concepts and a strong passion for software development.
- Self-motivated to explore new technologies, applications and environments.
- Excellent degree of communication skills - Being able to effectively communicate to both technical and non-technical stakeholders.
- Excellent attention to detail.
- Self-starter, highly motivated, team-player.
- Fully comfortable working in English, both in writing and spoken.
Bonus points for
- Experience with Apple Approval & Distribution Process, Ad Hoc & Enterprise Distribution.
- Experience with server-driven UI framework development.
- Experience working with A/B testing
- Have built an approved store App
- You are passionate about open source and contribute
- You’re not afraid to solve deep technical challenges of a whole new level at a huge scale
- You have an intrinsic curiosity in technological innovations and you are always on top of the latest trends
For this role you will expected to have demonstrated success in software project delivery experience in leading technical efforts developing applications using a variety of tools, languages, frameworks and technologies
Demonstrate mastery of many programming languages, tools and/or technologies
Performance tuning, usability assessment/improvement
Aggressively engage in the identification / remediation of software issues related to code or solutions quality, security, and/or pattern/frameworks and software usability or end user related issues
Integrate software with existing software/systems
Automates unit/end-to-end testing of software systems within their domain, focused on software quality and maintainability
Strong Knowledge of maintaining and debugging live software systems. Dedicatedly engage in the remediation of software issues related to code/solutions quality and/or security
Provides guidance and mentoring of fellow software developers and other team members
Possess technical writing knowledge around system design specification and user documentation of software systems and ensure that technical documentation meets GM standards
Understand and maintain compliance with GM standards and industry standard methodology
Holds themselves and others accountable for demonstrating GMs values and cultural behaviors. Models GM behaviors and builds a winning culture.
The position is responsible for developing and testing mobile applications using repeatable industry best practices and in accordance with GM's software development project methodology. The Software Developer will work hands-on designing and writing code based on detailed requirements and system specifications. Developers will specialize in mobile development software packaging and coding languages. Development activities will include updating existing software and/or developing new mobile applications to address a specific customer need or to solve a particular business problem. This role will contribute to all development activities including design, coding, testing, certification, documentation and deployment. The Software Developer for Mobility should have a strong eye for Usability especially within Mobile Form Factors. This role will involve a great deal of creativity and initiative. Role Responsibilities:
Full lifecycle application development using standard frameworks and coding standards/patterns
Coding, unit testing and debugging applications in various software languages
Software testing and quality assurance
Performance tuning, improvement, balancing, usability, automation
Document software code and ensure that technical documentation i.e. configuration guides, install guides meet requirements
Integrate software with existing systems
Maintain standards compliance
Implement localization or globalization of software
Work closely with senior developers and software engineers to gain additional knowledge and expertise.
Proactively engage in the remediation of software issues such as code quality, pattern mismatch, and security issues related to the code/configuration
Automates testing processes by developing unit test scripts, as needed Minimum Qualifications:
Minimum 7 years of professional software development experience
Minimum 3 years of experience developing mobile applications within the Android OS for devices or tablets.
Excellent technical knowledge of Java for Android
Demonstrates strong experience/knowledge of the Android SDK
Good understanding of software development best practices
Experience working in an agile environment
Extensive UI Design experience
Strong knowledge and understanding of different Android platforms