Principal Software Engineer - Android

Development | Pune (IN)

Connecting the world to wellness

MINDBODY emerged from the simple idea that small business owners deserve the time to focus on what matters most: their customers. Our software has transformed that vision into the world's leading wellness services marketplace, linking hundreds of thousands of passionate health, wellness and beauty professionals to the millions of clients they serve.

MINDBODY is a cloud-based business management software for the wellness services industry.

We serve about 35 million consumers located in 130 countries & territories.

At MINDBODY, work-life balance takes on a new meaning for us. When your life goals & values align with the work you do every day, balance is second nature.

We help inspired business owners seamlessly succeed & individuals all over the globe lead healthier, happier lives with our technology.

Company Overview - https://company.mindbodyonline.com/

Follow our careers page here - https://mindbodyonline.com/careers

JOB SUMMARY:

Software Engineers work in the MINDBODY software development life cycle, including specification, design, and implementation and testing of new features and bug fixing. Software Engineers are responsible for their own code and bugs.

 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

WORK ENVIRONMENT AND PHYSICAL DEMANDS:

  • Dexterity of hands and fingers to operate a computer keyboard.
  • This position is mostly stationary and will be required to remain stationary for extended periods of time.
  • Specific vision abilities required by this position include close vision, color vision, and the ability to adjust focus.
  • The noise level in the work environment is usually moderately quiet