Senior Software Engineer (Android)

Milan or Cagliari
Engineering
Full-time
At Moneyfarm we use technology to make saving and investing for the future accessible to everyone in a simple and transparent way. We build software that augments and optimises our in-house financial advisory expertise to offer our customers the best use of their money.
We nurture a software development practice where every engineer is trusted with autonomy in their role to responsibly and continuously deliver quality software supported by a friendly and creative environment free from ownership handovers, gatekeepers or bureaucracy, that pushes you towards mastery in your craft.

You are primarily a software engineer that happens to have specialised in Android. You take pride in the fact that you own the entire software lifecycle.

You've seen a few generations of Kotlin/Java come and go while working on a variety of mobile apps and can discuss in some detail what worked and why.

You've studied some software engineering and are orientated towards doing things with a structured engineering approach.

While you welcome the technical freedom of greenfield developments you also enjoy the intricacies inherent in evolving existing software.

You're capable of appreciating the subtle impacts of different tech choices but ultimately you're a pragmatic.

You favour readability of code, instinctively rejecting excessive conciseness or artistry.

You naturally stay within the scope of a story.

You are biased to action: you prefer to deliver the good instead of arguing what perfection is.

You think critically and are happy to be proven wrong.

You're methodical in your hypothesis generation and testing loop.

You don't chase unicorns, have step-back reflexes.

You're able to fend off pressure and give yourself and others the necessary space to think.

You have some experience mentoring younger developers, teach without patronising or overpowering.

You are able to communicate the technical vision in an clear way, and correctly translate tech choices and their consequences into business terms.

You will make mistakes. We'll pick you up. You will learn from them. You'll laugh a lot.

Responsibilities

- Work with product owners to help drive our exceptional customer experience.
- Produce code of great quality with the right degree of test coverage. 
- Review code constructively, favouring the development of skills where possible. 
- Frequently share your programming expertise and disseminate important knowledge within the practice.
- Participate in technical discussions to help drive our platform forward.
- Keep abreast of technological developments in the industry and their relevance to the company. Openly and continuously share your knowledge.
- Liaising with stakeholders and product owners.

Requirements

- You have at least 4 years of experience in Android software engineering and a BSc in Engineering or Computer Science or higher degree.
- You feel at home when you develop in Kotlin and Java. You're familiar with other languages such as Python and shell scripting.
- You understand the main framework features used on Android and you are up-to-date with the latest ones.
- You have experience with Gradle, AndroidX and newer compatibility libraries.
- You are used to work with Git and to perform code reviews.
- Have a good understanding of agile methodologies and their principles.
- You have proved experience releasing Android apps on Google Play with both Apk and Android App Bundle.
- Have an understanding of the principles of design, UI and user experience.

Preferred

- You have some experience of iOS development with Swift.
- You have some experience releasing apps in other stores.
- You have experience with continuous delivery of mobile apps.
- You have experience working in distributed teams.