Staff Software Engineer - Android

Skills
Software DevelopmentBluetooth Low EnergyDesign SpecificationsDocumentationInterpersonalKotlinProgramming
Role

What the job involves

The main requirements, responsibilities and hiring steps.

Requirements

  • Excellent interpersonal and communication skills.
  • Ability to lead cross-team collaboration in the engineering organization.
  • Focus on execution and mentoring team members.
  • Commitment to trust and transparency within the working team.
  • Ability to write software requirements and translate into design and implementation.
  • Knowledge of basic Bluetooth Low Energy architecture and principles.
  • Bachelor's degree in computer sciences, Engineering or Mathematics or related field or equivalent combination of education and applicable job experience.
  • 8 years of software development experience.
  • 5 years of native Android app development experience.
  • 3 years developing in Kotlin.
  • Proven experience building consumer-facing native Android apps.
  • Experience with test-driven development and pair programming.

Nice to have

  • Interpersonal skills
  • Communication skills
  • Team collaboration
  • Mentoring
  • Trust and transparency
  • Continuous improvement
  • Software requirements writing
  • Design and implementation translation
  • Knowledge of Bluetooth Low Energy architecture
  • Knowledge of Bluetooth Low Energy principles

Day to day

  • Leverage cutting-edge technology in a highly regulated industry to deliver life-sustaining systems.
  • Own the design, development, and testing of multiple Android software features that support remote management of insulin therapy.
  • Drive the refinement and implementation of features that can be worked on by a small team of engineers.
  • Identify opportunities in software or processes, gain engineering alignment, and implement proposals.
  • Stay current with Android standards and new technologies.
  • Responsible for software design specifications, interface descriptions, and other software documentations.
  • Guide software validation by communicating software changes effectively and reviewing test regression selection.
  • Write testable, extensible code and consistently contribute unit tests.
  • Contribute to the training, mentoring, and development of junior team members.
  • Independently diagnose, replicate, and address bugs.