Firefly Learning are a leading SaaS EdTech company, providing web and mobile-based learning platforms to UK state and independent schools. We now have over 400,000 students using the app in over 500 schools with ambitions to become a global leader in education technology. There are over 1.2 billion students in primary and secondary schools across the world, so we’ve got plenty of room to grow.
In late 2016 Firefly secured the largest ever Series A for a UK EdTech company at £4.6 million, taking their pick of investors impressed by how far they had taken the company alone. This cash influx allowed the business to grow to over 60 team members with offices in London and Australia.
We're on a mission to improve education for everyone and so far, are confident we're succeeding. Firefly products actively improve teacher, student and parent experience and communication, and we’re seeing daily active user numbers as high as 95%. With the use of technology, we are giving more time back to teachers to teach, enabling students to learn in ways that work best for them, whilst involving parents with their child’s learning every step of the way.
Tech-wise, Firefly runs primarily on .NET as well as iOS, Java and Kotlin for our mobile apps. Web projects are typically built with Web API and React with Redux, as well as a recent focus on improving our testing by increasing automation and implementing better processes. Driving towards a multi-tenant system with a more modern architecture is part of Firefly's future.
What is the purpose of this role?
You will be responsible for defining the software architectures and strategies across a diverse product set within the Firefly platform; including web, microservices, RESTful web APIs, mobile apps and AWS infrastructure, ensuring consistency by establishing a strategy for the selection of architecture components and co-ordinating design activities.
With a fresh technology approach, you will provide an internal consultancy for both the technology and business teams to help understand the ‘the art of the possible’ when it comes to business value and technology improvements. You love to be part of complex projects and thrive to be hands on when required to make decisions.
With good interpersonal skills, you will have the ability to build constructive relationships and influence, including relationships with heads of business, lead developers, operations and quality assurance.
What will you be accountable for?
Collaborating with the developers you will lead the development of architectures for our products in C# and designing and communicating coding patterns, to enable and guide the design and development of applications; working with developers to ensure consistency of coding practices amongst our development squads.
You will provide the direction for technology change and improvements, line managing and mentoring your team leads and making sure the solutions that are put in place align with business direction and technical objectives.
You will be able to introduce technologies, advise on selection of, plan and implement appropriate solutions that solve the technology challenges faced by the business and the team, with a strong focus on benefits realisation and value. You will also have direct input into the IT budget to ensure that business value is achieved through architectural initiatives.
You support the adoption of a continuous delivery focused environment, working with QA Automation Engineers and taking advantage of the services in AWS.
What experience do you require?
We’re looking for a Software Architect who is truly passionate about best practices and enjoys collaborating with a team of Software Engineers. You’ll also have:
- 3+ years of commercial experience in software architecture designing solutions for web applications and APIs in the Microsoft-stack with appreciation of “alt.net” tools and modern frameworks, and exposure to mobile app development.
- Proven experience of re-architecting big applications into smaller components including architectural styles of service orientation, microservice patterns or layered approaches.
- Proven experience in developing cloud-based SaaS software solutions and multi-tenancy approaches.
- A keen awareness of scalability, caching and running systems “at web scale”.
- Deep understanding of REST services, SOLID, design patterns and DDD.
- Experience with inter-process communication using APIs and messaging.
- Experience of SQL server and ORM systems (e.g. nHibernate, etc)
- Strong knowledge of software engineering paradigms (such as OO-A/D/P and functional programming).
- You will have good knowledge and understanding oAuth V2, encryption and hashing techniques., plus automated code integration practices.
- Experience working in a automated code integration practices, including CI/CD pipelines (e.g. Jenkins, TeamCity, Octopus deploy etc.). Experience of DevOps methods and implementation of solutions across cloud infrastructure.
- You will have knowledge of operations and web concepts; including an understanding AWS services (e.g. regions, availability zones, ec2, s3, cloud formation, cloud watch, RDS).
- Ability to advise on scope and options for continuous operational improvement.
- You understand the relationship between” bought” and “built” software.
- Proven experience in line managing software developers.
- You will be a leader who can identify strengths and weaknesses of team members and provide support when necessary.
- Communicating effectively, both formally and informally.
In return for everything that you can bring, we can offer you an exciting, challenging role in a growing technology-centric business that’s part of something bigger, with plenty of opportunities to learn – and of course enjoy it at the same time.
Firefly is a fun and rewarding place to work, with weekly team lunches, fruit buffet and a £1,000 personal training budget. Our employee benefits include cycle-to-work, travel loans, childcare vouchers, gym discounts, enhanced parental leave, 3% pension contributions and 25 days’ holiday + 3 additional days for Christmas shutdown!