Ann Arbor, Michigan, USA
2 days ago
Software Engineer II- Android Development

Company Description

Domino’s Pizza, which began in 1960 as a single store location in Ypsilanti, MI, has had a lot to celebrate lately: we’re a reshaped, reenergized brand of honesty, transparency and accountability – not to mention, great food! In the rise to becoming a true technology leader, the brand is now consistently one of the top five companies in online transactions and 65% of our sales in the U.S. are taken through digital channels. The brand continues to ‘deliver the dream’ to local business owners, 90% of which started as delivery drivers and pizza makers in our stores. That’s just the tip of the iceberg…or as we might say, one “slice” of the pie! If this sounds like a brand you’d like to be a part of, consider joining our team!

Job Description

A Software Engineer II- Android Developer is proficient with the most-often used features of the programming language, its core library, commonly used 3rd party libraries, and commonly used code management and build tooling.

Initially a Software Engineer II is expected to be able to develop a medium set of defined, inter-related modules, articulate why the code and application they are working on are designed the way they are, and be able to provide some instructive feedback to newer developers through code reviews and in-person Q&A.  As they progress, they should be able to implement smaller subsystems independently, begin to design small portions of the systems, and begin to understand the design principles and practices that cut across all the applications.

The goals of a Software Engineer II-Android Developer are:

Develop an understanding of why some libraries, frameworks, and tooling are designed the way they are: what tradeoffs were made? why might the developer have done that?  Through this work, develop an understanding of the practical use of design patterns.Begin to understand some of the externalities associated with running an application: performance, security, operations, monitoring, etc.Be able to troubleshoot application, infrastructure, and environment issues.

Or, more succinctly, the Software Engineer II- Android Developer is gaining the ability to determine why things are done in a particular way and apply that knowledge to new situations.

 

Development - 90%

Produces estimates for their assigned tasks given well defined business requirementsProduces quality code that meets internal and industry standardsPromotes reusability within the application they are developingWrites performant code according to industry standards and project/organizational KPIsUnderstands business concepts in their area of focusWrites clear documentation to ensure code is understandable to provide wider focus and understanding into design decisionsProvides input into designs for assigned tasksTranslates designs into code for their assigned tasksUnderstands build/deployment processes and can support moving their code and any other changes (ex: database) through these phases.Creates build/deployment artifacts as neededSupports production systems through troubleshooting/triaging issues and providing on-call support where needed

 

 

Mentoring - 10%

Participates in PR reviews with others on their teamProvides feedback by answering questions from newer developers

Qualifications5+ years overall development experience using an object oriented language  Proficient in KotlinDemonstrable proficiency with Android Studio  Demonstrable experience with Java and Jetpack ComposeDemonstrable experience consuming Restful JSON web services    Demonstrable experience with Agile development and unit testing.  Demonstrable experience with push notifications, location services.   Experience with various architecture patterns like MVC, MVVM, VIPER, or similar    Experience with accessibility frameworks  Experience with analytics frameworks such as Firebase, Adobe, or similar  Experience builds tools like Gradle and Fastlane   Knowledge of submitting and publishing applications through app store

General Qualifications 

Basic understanding of design methods/patterns such as DRY, SOLID, ReSTExcellent team player with good communication skills with both non-technical & technical co-workersHighly motivated and driven by a desire to solve difficult problems, and learn new technologyProficient in writing quality unit testsProficient with build and debug toolsExperience with profiling toolsExperience with continuous integration systems like Jenkins/GitHub and version control systems like GitExperience with development of internationalized software (multi-lingual, multi-currency, geographic, and locale awareness) Experience with agile practices and tools preferred (Jira or similar)Experience with database concepts (queries, data models)Understanding of development in a distributed system is preferredUnderstanding of basic networking concepts like http protocol and its usage is preferred

 

Additional Information

Benefits:
•    Paid Holidays and Vacation   
•    Medical, Dental & Vision benefits that start on the first day of employment
•    No-cost mental health support for employee and dependents
•    Childcare tuition discounts
•    No-cost fitness, nutrition, and wellness programs 
•    Fertility benefits
•    Adoption assistance
•    401k matching contributions   
•    15% off the purchase price of stock   
•    Company bonus   
 


 

Confirm your E-mail: Send Email