What follows is the basic job ladder for the mobile software engineering organization.
Mobile Software Engineer, Associate (Sftwr Engr, Assoc)
- Demonstrates basic CS skills equivalent to a CS graduate with limited production experience.
- Demonstrates basic knowledge of version control required to contribute on production projects.
- Has production-required knowledge of their team’s language.
- Is able to adhere to best practices as defined by their team and the larger organization.
- Understands and acts according to team and organizational values and goals
- Is able to communicate with and take feedback from other engineers, with a focus on increasing knowledge base and accepting mentorship.
- Is able to work autonomously on small, well-defined tasks. Asks for help and escalates blockers in a reasonable time frame.
- Responds to escalated customer issues and incidents in a proactive, timely fashion.
- Has a basic understanding of which services interact with code they directly contribute to and raises flags for changes that might affect other teams.
Mobile Software Engineer (Mobile App Dvlpr)
- Is independently capable in one or more core domains.
- Considers performance matters and cleanliness of code during development.
- Is able to critically consider and contribute to best practices as set by their team.
- Is capable of providing mentorship for entry-level engineers.
- Identifies flaws and suggests improvements within their domain, primarily by providing meaningful code reviews.
- Understands and acts according to team and organizational values and goals.
- Is able to work and contribute with other teams.
- Is capable of working on larger, feature-level tasks mostly independently. Can estimate size of tasks with reasonable accuracy. Escalates blockers and scope changes in a reasonable time frame.
- Responds to escalated customer issues and incidents in a proactive, timely fashion.
- Can contribute to discovery meetings and feature definition.
- Can help debug pipeline and production service issues. Considers infrastructure impacts of their own deployed code.
- Understands which services interact with their team’s code and collaborates on changes that will affect other teams.
Mobile Software Engineer, Advanced (Mobile App Dvlpr, Adv)
- Is an authority in one or more core domains, demonstrating understanding of both technical and business impacts
- Considers performance matters and cleanliness of code during development and understands the related impact of ongoing changes.
- Is able to critically consider and contribute to best practices.
- Is capable of providing mentorship for other engineers.
- Is able to identify flaws and suggest improvements within their domain, primarily by providing meaningful code reviews.
- Understands and acts according to team and organizational values. Actively considers how these values affect our work
- Is able to work and contribute with other teams. Is called upon regularly to express their understanding of their domain(s).
- Is capable of working on larger, feature-level tasks independently. Can estimate size of tasks with reasonable accuracy. Escalates blockers and scope changes in a reasonable time frame.
- Responds to escalated customer issues and incidents in a proactive, timely fashion.
- Capable of representing the team in discovery meetings.
- Consistently helps debug pipeline and production service issues. Considers infrastructure impacts of deployed code from themselves and code they review.
- Understands which services interact with their team’s code and collaborates on changes that will affect other teams. Considers how said code will affect end users and support personnel. Considers impacts on reliability and scaling during code reviews.
Senior Mobile Software Engineer (Mobile App Dvlpr, Sr)
- Is able to work competently across entire relevant stack, with the ability to work on high level designs and reusable components for their team.
- Actively contributes to coding standards and best practices.
- Provides regular mentorship, including one on one help and code readings/talks for their team.
- Is able to identify flaws and suggest improvements within their domain, primarily by providing meaningful code reviews.
- Understands and acts according to team and organizational values and goals, as well as the strategic direction of the company at large. Actively considers how these values affect our work. Helps mold team and organizational values.
- Is capable of leading technical efforts on larger, feature-level tasks. Can estimate size of tasks with consistent accuracy. Escalates blockers and scope changes in a reasonable time frame.
- Is capable of prioritizing work within their feature team.
- Responds to escalated customer issues and incidents in a proactive, timely fashion.
- Is capable of representing the team in discovery meetings. Is capable of representing the team through the technical decision making process.
- Helps with the interview process and growing the team.
- Understands the high level architecture of the data services stack and can identify when a code change will affect other services. Consistently considers how said code will affect end users and support personnel and communicates those impacts out appropriately. Applies knowledge of reliability and scaling during development.
Mobile Software Engineer, Advisory (Mobile App Dvlpr, Advry)
- Has broad expertise or unique knowledge and contributes to company objectives as a subject matter expert (SME). Works on highly complex and diverse projects. Works on significant and unique issues where analysis of situations or data requires an evaluation of intangibles. Exercises independent judgment in selecting methods, techniques and evaluation criteria for obtaining solutions.
- Superior knowledge of Android or iOS frameworks.
- Superior understanding of iOS UI design patterns and Android UI guidelines.
- Contributes to the architecture of the mobile application. Actively leads efforts to refactor the app to both improve maintainability and to adopt new architectural changes in the iOS or Android framework.
- Continuously discover, evaluate, and implement new technologies to maximize development efficiency.
- Can help with prioritization of feature and backlog work within their domain, including negotiating scope and timeline of feature work with the Product teams.
- Understands and acts according to team and organizational values and goals, as well as the strategic direction of the company at large. Actively considers how these values affect our work. Helps mold team and organizational values.
- Is able to work and contribute with other teams, both inside and outside of the mobile software engineering group. Is called upon regularly to express their understanding of their domains.
- Is capable of representing the team in both exploration and discovery meetings. Is capable of representing the team through the technical decision making process.
- Helps with the interview process and growing the team.
- Consistently helps debug pipeline and production service issues. Considers and offers guidance on wide reaching infrastructure impacts of deployed code from across the stack.
- Understands the high level architecture of the data services stack and can identify when a code change will affect other services. Consistently considers how said code will affect end users and support personnel and communicates those impacts out appropriately. Applies knowledge of reliability and scaling during development.