Senior Android Engineer

Full-Time Westlake, OH

Embody the Android ecosystem to scale and deliver powerful and high performing apps

Assurant Labs has cultivated a fast-paced, Agile development environment where creativity and teamwork are paramount.

You are someone who prefers to communicate through code. You love to create and have a strong desire to learn. You have strong opinions yet know how to implement them; you are humble yet confident. In fact, you’re the first to pass along the latest headache busting library from Square to your colleagues just minutes after sending a link to a mind clarifying blog post from Romain Guy. Two engineers discussing their ideas

You can speak to language best practices and are not afraid of anonymous inner-classes. You never overlook the saved instance state and have contemplated the tradeoffs between activities, fragments and views. You have knowledge of how a RESTful web service works, what makes it RESTful and how it can be accessed from Android. You are also diligent about meeting allocated budgets and can work within time constraints, but you will never sacrifice quality.

We are looking for you to join our growing team as a Senior Android Engineer. You have exceptional communication skills, the ability to manage multiple tasks efficiently, excellent judgment, and the ability to be productive on a cross-functional product team.

Responsibilities
  • Engaging in product development and architecting solutions
  • Taking into account overarching goals of the project and working autonomously after aligning with stakeholders
  • Consistent pairing with and mentoring of junior engineers on the team
  • Assisting more junior members as project plans change
  • Conducting design and code reviews
  • Reminding junior engineers the importance of architecting an Android app to maximize testability
  • Interacting with other engineers to learn and spread best practices
  • Designing, implementing, and maintaining applications
  • Ensuring availability, performance, and correctness of applications
  • Unit-testing code for robustness, including edge cases, usability and general reliability
  • Refactoring and improving maintainability of existing code base
  • Rapidly fixing bugs and solving problems
  • Making disciplined use of source control and bug tracking systems
  • Participating in resolving customer support issues as needed
Requirements
  • BS or MS in Computer Science, Computer Engineering or related fields preferred; equivalent professional experience will be considered
  • The ability to plan for ambiguity in a forward-thinking manner to ensure that future changes minimally impact development
  • An experienced command of Android UX/UI guidelines and best practices
  • A solid understanding of computer science principles
  • Experience with continuous integration and delivery tools (Jenkins, TeamCity, or GitLab)
  • Ability to write clean, testable, quality code
  • Experience consuming data from RESTful APIs, preferably with JSON
  • Understanding of security coding best practices
  • Understanding of code performance decisions based on career ladders
  • Willingness to participate in mentoring and skills transfer among team members
  • 4+ years of Java development experience on the Android platform
  • Experience practicing Agile development methodologies
  • Experience working with multiple programming languages, platforms, and frameworks
  • Ability to work independently to take on and complete larger architectural tasks
  • Ability to manage and prioritize many tasks at a time
  • Ability to handle ambiguity in tasks, using context to determine the best plan of action
  • Ability to push the envelope for performance and reliability
  • A disciplined approach to development, testing, and quality assurance
  • Ability to communicate thoughts, designs, ideas and specs in an unambiguous manner and adjust for the audience and context
  • The initiative to look for answers instead of waiting for them
  • Flexibility with changing job requirements as the company and team grows
Hopes
  • Already started obtaining an understanding of Kotlin
  • Practical experience with mobile application automation testing frameworks
  • At least one non-trivial Android app available for download
  • Experience with Git for version control
  • Multithreaded Application experience
  • Knowledge and experience with Object Oriented Design and implementation
  • Strong Object Oriented Programming knowledge
  • Proven ability to carry a feature from start to finish; including prototypes, design specifications, constructive coding, unit testing, and bug fixing
  • Ability to quickly and accurately perform troubleshooting and repair of existing applications

This position has been filled.