Moneyfarm logo Moneyfarm

Technical Architect

Creata il 06-04-2018
Location London

Descrizione

At Moneyfarm we aim to be the preferred destination of everyone's spare money. We use software to make saving and investing accessible.
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.
Role
Talk is cheap. Show me the code. Linus Torvalds (2000)
You build it, you run it. Werner Vogels (2006)
You don't think of yourself as an architect. You don't believe in engineers who don't code. You do not enjoy drawing diagrams unless they're on a whiteboard supporting your explanations.
You are able to smell architectural problems from afar but you reserve your judgement until you've got hard evidence. You think critically and are happy to be proven wrong.
You have a natural concern for the often overlooked interfaces between areas of operation.
You are able to communicate the technical vision in an understandable and compelling way, while also accurately translating technical choices and their consequences into business terms when needed.
You are biased to action: you prefer to deliver the good instead of arguing what perfection is.
You discern between what will self-correct and what risks derailing, and employ your energy judiciously.
You will make mistakes. We'll pick you up. You will learn from them. You'll laugh a lot.
Responsibilities
Technical oversight of the entire architecture, from browser to database, from code to production.
Help define, communicate and assert the technical vision.
Understand all systems at least on a logical level; on deeper levels for the more critical ones.
Ensure PoCs and prototypes are carried out when needed, in a focussed and efficient manner.
Consult with teams for the design and implementation strategies for new pieces of work.
Apply course-correction interventions wherever needed, with fluid team membership.
Coach and mentor other engineers into caring about architectural and non-functional concerns. Review other engineers’ code.
Keep abreast of industry and technological developments and their relevance to the company. Openly and continuously share your knowledge.
Job qualifications
You have at least 10 years of experience in software engineering and a BSc in Engineering or Computer Science or higher degree.
You understand the principles of modularity, encapsulation, abstraction and hierarchy in your sleep.
You have full working knowledge of Scala, its paradigms and ecosystem (Akka is a plus). You understand how the JVM works. You are at ease with other languages, namely Python and ES6/7.
You have extensive experience with distributed systems and understand their constraints and pitfalls. You can argue knowledgeably for and against REST, RPC, event-sourced and other architectural styles in different contexts. You have extensive experience with microservices. Experience with Kafka is a plus.
Are familiar with all major types of testing tools and strategies, and their applicability. Scalatest, scalacheck, Cypress are pluses.
You have experience working with modern web applications and their main languages, build tools and frameworks. Webpack, React are pluses. You value a great user experience and understand how functional design principles can help achieve that.
Have extensive experience with AWS, immutable infrastructure and Docker, and configuration management tools such as Terraform. You understand the importance of, and implementation strategies for Continuous Delivery, preferably with Concourse.
POSIZIONE CHIUSA Candidati ora

Video