Moneyfarm logo Moneyfarm

Senior Software Engineer I (Backend)

Creata il 17-07-2020
Location Rome


At Moneyfarm, diversity is the foundation of our competitive advantage. We value our employees for who they are – their backgrounds, experiences, talents, knowledge and individual differences make us better at what we do. Flexible working opportunities come as standard, but do let us know how we can accommodate your application further.
You are primarily a software engineer that happens to have specialised on the backend. You don't consider any part of the software lifecycle to be someone else's problem.
You find Scala to be a great tool and you can compare it to other languages and other programming paradigms. You know how to take advantage of Scala’s best qualities and when it’s best to use an alternative 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 task. You are biased to action: you prefer to deliver the good instead of continuously aiming for perfection to the detriment of the project.
You think critically and are happy to be proven wrong. You are methodical in your troubleshooting and debugging. When you find yourself stuck you take a step-back and re-analyse. You can balance pressure to deliver with the need to properly evaluate the consequences of a change and its impact on the system and customers.
You see in a mistake a learning opportunity. When you teach, you teach without patronising or overpowering.
You are able to communicate the technical vision in a clear way, and correctly translate tech choices and their consequences into business terms.
You’ll be working within a team building Moneyfarm’s core systems. As a Core Team member, amongst other things you will be working to extend our trading platform, billing systems and portfolio suggestion engine.
-Build an understanding of the Moneyfarm architecture as a whole, develop in alignment with it and contribute to plans for improvement.
-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.
-Take a proactive approach to solving platform and delivery pipeline issues. You will work with the platform team(s) at Moneyfarm to optimise our delivery process and platform stability.
-Contribute to a rational, informed and civil discussion when technical disputes arise. You should be able to help build consensus and bring technical discussions to a conclusion that works for both the business and the development team.
-Keep abreast of technological developments in the industry and their relevance to the company. Openly and continuously share your knowledge and apply it to improve the Moneyfarm systems and the lives of your colleagues.
-You have at least 5 years of commercial experience in software engineering and a BSc in Engineering or Computer Science (or similar).
-You have at least 1 year of commercial experience with Scala.
-You are familiar with at least another language such as Java, Go, Kotlin, Rust, TypeScript, ES6/7, Python, etc.
-You are experienced in designing and implementing data layers of applications. You have leveraged both relational and non-relational data stores and are confident when choosing an appropriate tool for the task at hand.
-You are comfortable writing complex queries in relational databases using SQL.
-You have experience scaling, designing and refactoring microservice architectures, and have been exposed to different message passing paradigms (synchronous over HTTP, gRPC, event based, etc.).
-You have good working knowledge of REST API principles, OpenAPI3 specifications and associated tooling.
-You ideally have worked in Agile teams, and understand the core principles of Agile.
-You embrace unit tests, integration tests, and acceptance tests and use them to make you a more effective developer.
-Ideally you have experience designing and running load tests.
-You have experience with AWS's offerings even if you have not had the opportunity to work with the tools directly.
-You understand the importance of Continuous Delivery, and you’re familiar with the tools that enable companies to continuously deliver value.
We are unable to provide Visa's or sponsorship for this role. You will need to have the right to work in the EU/Italy.