Principal Software Engineer – Android | Simplicity First

June 5, 2024
Application ends: July 31, 2024
Apply Now
Deadline date:
July 31, 2024

Job Description

The Principal Software Engineer – Android designs, develops, troubleshoots and debugs mobile applications. This includes developing software components including Networking, Frameworks, Views, Utilities, Deployment and Automation tools. Passionate and hands-on to solve complex problems with elegant and not over-engineered code solutions. Demonstrates technical leadership via individual contributions as well as providing guidance and mentorship to the team.

QUALIFICATIONS AND REQUIREMENTS:

  • Bachelor’s Degree in Computer Science or equivalent
  • 8 years of industry experience in developing mobile applications, web and/or large-scale enterprise products
  • Mobile Development Experience: Kotlin, Java and Android Studio
  • Strong knowledge of Material Design and Android Architecture components
  • Experience with package management and app deployment pipelines
  • Deep experience with standard mobile architectures (MVC, MVVM, MVP, etc)
  • Ability to effectively apply software design patterns and architectural principles
  • Expertise in building complex user interfaces
  • Experience with SQL and relational databases
  • Skillful at writing effective unit and behavioral tests
  • Experience with software development processes (Agile, Scrum, Kanban, etc)
  • Familiar with git branching strategies and semantic versioning
  • Knowledge of mobile continuous integration best practices and tooling
  • Skillful at reviewing new feature impact on an application and recognizing potential risks
  • Uses time effectively and efficiently
  • Quickly learns new technologies
  • Detailed oriented, professional and possesses a positive work attitude
  • Communicate professionally both verbally and in writing
  • Experience mentoring software engineers on complex technical issues

PRINCIPAL DUTIES AND RESPONSIBILITIES:

  • Be a technical lead throughout the development lifecycle, from scoping, planning, conception, design, implementation, and testing, to documentation, delivery, and maintenance
  • Develops software solutions by studying information needs, conferring with users, studying systems flow, data usage, and work processes, investigating problem areas, following the software development lifecycle
  • Collaborates with Engineering Managers and Mobile Architects on engineering design and implementation
  • Decomposes and delegate work to junior engineers
  • Brainstorms with Product Managers and designers to conceptualize and estimate new features
  • Collaborates with backend engineers to efficiently build out new API for mobile apps
  • Researches and promotes internal best practices and coding conventions to write and execute tests for your own code, including creating comprehensive automated tests
  • Contributes to System Architecture documentation
  • Develop shared tooling and SDKs for use by multiple teams across the company
  • Takes an active interest in mobile application quality across all product lines
  • Identifies and pragmatically addresses technical debt
  • Requests constructive feedback for designs early in the process
  • Communicates successfully across departments with large teams and many personalities
  • Provides mentorship for Software Engineers and participates in interview panels to hire new Software Engineers
  • Assists in removing obstacles for the team to yield successful sprints
  • Monitors health of app releases and responds to any mobile escalations
  • Performs peer code reviews to ensure quality of the codebase
  • Occasional on-call duty rotation to respond to after-hours mobile incidents
  • Updates job knowledge by studying state-of-the-art development tools, programming techniques, and computing equipment; participating in educational opportunities; reading professional publications; maintaining personal networks; participating in professional organizations
  • Works effectively with multiple projects and departments
  • All other duties as assigned