Software Engineering Team Leader

Finbourne Technology | London

Date listed

1 week ago

Employment Type

Full time

Salary

GB£90k - GB£120k

Job title:  Software Engineering Team Leader - Platform Engineering Team

Location: London, UK 

Salary: Competitive

The Platform Engineering Team at FINBOURNE is responsible for the proprietary data-storage and event-sourcing technologies which underpin many of LUSID’s features. These foundation components are heavily utilised by our feature development teams so it is essential they are highly available, scalable and easy-to-use.

As the Team Leader, you will manage the engineering team and provide hand-on technical leadership for the development of the components owned by the team.

Key responsibilities: 

Team Management

  • Lead a team of engineers
  • Be responsible for the performance and output of the team
  • Recruit and select new team members, and support with interviewing technical candidates across the Engineering Department.

Technical Contribution

  • Lead the design and implementation of new features
  • Contribute to wider system architecture
  • Be accountable for the quality of the code written by the team
  • Undertake design and code reviews
  • Research new ideas and prototype new tools and technologies


Planning and Delivery

  • Work with others in the company to help define, priroritise and schedule new features
  • Monitor development of progress and help resolve problems
  • Process Improvement
  • Contribute to and enhance our engineering practices
  • Develop KPIs to ensure the health of the system and the development process

Education

  • Share knowledge, experience and new ideas with the wider team
  • Provide technical mentoring for team members.

What skills, experience and qualifications we require: 

You’ll have a passion for technology and have comprehensive software engineering skills gained from several years’ experience designing and implementing complex hosted systems.

Prior line management experience is highly desirable, if not essential. You must be enthused by the prospect of managing a team.

You should be well organised, and have excellent communication skills, with the ability to discuss complex topics with both technical and non-technical audiences (including clients). It is essential that you can describe the trade-offs made in any design choice and learn to improve your design choices with feedback from the wider team.

Knowledge of Financial Services (or Asset Management specifically) would be beneficial, though not essential.

Advanced knowledge in the following areas is essential:

  • C# and .NET Core (or equivalent language, e.g.: C/C++, Java)
  • Large-scale complex systems
  • Automated testing and continuous integration/delivery
  • Relational databases

We use the following technologies, so expertise in any of these areas is also desirable:

  • Postgres
  • Functional programming
  • Writing high performance software
  • Distributed computing / scalable systems
  • AWS
  • Kubernetes + Docker
  • ElasticSearch
  • Redis
  • Kafka
  • Rabbit MQ
  • JIRA

In future, we are considering using the following, so knowledge in any of these areas would be beneficial:

  • Actor models, such as MS Orleans or Akka
  • Queue-oriented architectures
  • LSM stores (such as RocksDB)
  • Distributed systems engineering and any associated server-side technologies