Moneyfarm logo Moneyfarm

Lead Frontend Engineer

Creata il 10-07-2018
Location London

Descrizione

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.
Role
Any fool can write code that a computer can understand. Good programmers write code that humans can understand. Martin Fowler (1999)
You build it, you run it. Werner Vogels (2006)
You are primarily a software engineer that happens to have specialised on the frontend. You take pride in the fact that you own the entire software lifecycle.
You've welcomed the evolution in language, build tools and frameworks that have made frontend development more disciplined and productive. You have used your extensive experience with these technologies to build elegant, user focused, maintainable web applications.
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 pragmatist. 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 and have step-back reflexes. You're able to fend off pressure and give yourself and others the necessary space to think.
You're able to turn zealotry into productive enthusiasm. You see in someone else's mistake a mentoring opportunity. You teach without patronising or overpowering. Pragmatism over idealism.
You always take the high road and can take criticism as easily as you suggest improvements to a design.
You are able to help guide conversation between product and technology and suggest improvements to a technical implementation while still remaining focused on business deliverables and the customer's best interests.
You will make mistakes. We'll pick you up. You will learn from them. You'll laugh a lot.
Responsibilities
  • Take ownership of the frontend codebase and guide its evolution and architecture.
  • Perform code reviews, openly share your knowledge and present learning opportunities for other members of the practice and team.
  • Ensure the architecture is documented and provide onboarding guidance for new developers.
  • Resolve any technical disputes and arguments in a rational, convincing and definitive way.
  • Make the strategic decisions required to build a cutting-edge and ridiculously maintainable platform.
  • Understand the delivery pipeline and keep it in good health. Work in an ops-minded way.
  • Maintain and evolve the current Design System based on React & Styled Components
  • Qualifications
  • At least 10 years of experience in software engineering and a BSc in Software Engineering or Computer Science or higher.
  • Fully understand the principles of software engineering: modularity, encapsulation, immutability, composition, OOP and FP.
  • Deep working knowledge of ES6, React, Node, Redux, responsive design and the JS memory model.
  • Know vanilla CSS and you have a clear opinion about its flavours, e.g. SASS, CSSinJS.
  • Experience using tools like Webpack and/or Parcel as well as tools like Gulp or Grunt.
  • Have worked with and debugged HTTP requests using Nginx, reverse proxies, HTTP authentication & headers.
  • Know how to design a clean REST API with the right HTTP verbs
  • Have a solid understanding of agile methodologies, their principles and their ceremonies.
  • Have an understanding of the principles of design, UI and user experience.
  • Preferred
  • Experience with Jest, Styled Components, AngularJS.
  • Comfortable with reading, writing and debugging other languages such as Scala, Java, Python and bash.
  • Understand microservices, GraphQL, integration patterns, Docker and S3.
  • Experience working on large scale customer facing systems, taking a senior role and overseeing the work of more than two developers.
  • POSIZIONE CHIUSA Candidati ora

    Video