Software Engineer

Full-time - Permanent
About Us

For many, the process of getting a mortgage is hellish; hellishly complicated, hellishly costly and hellishly outdated. At Habito, we’re changing that. We believe people shouldn’t have to go through hell to get a mortgage.

Since our launch in 2016, we have made it our mission to fundamentally change the way people finance their homes. Whether buying for the first time, remortgaging, moving house or buying as an investment, we have developed an award-winning service that puts our customers back in the driving seat, giving them greater control over their finances. We deliver industry-leading expert advice in real time, cutting edge AI-driven technology that gives them access to the best possible deals, plain English conversations and absolutely no fees whatsoever.

We’re enormously proud of what we’ve achieved. Together, our 100-strong team has built great things to bring this mission to life. We’ve won numerous industry awards for our innovation, our talent and our service.  And our enviable roster of backers is testament to that hard work and vision: to date, we have raised £27.5million in funding from some of the biggest names in venture capital and FinTech – Atomico, Ribbit Capital and Mosaic Ventures as well as the founders of Funding Circle and TransferWise.

Most importantly, we’ve helped more than 160,000 people get the mortgage they deserve. Our proudest achievement yet is the love we get from our customers, borne out by consistently excellent TrustPilot reviews from more than 1,500 happy homeowners.

But our work never stops. The landscape continues to evolve and, because we believe in financial products that put the customer’s interests first by design, we have ambitious plans to continue innovating, improving and disrupting in this space. As our business scales up, to extend beyond brokerage and insurance into becoming a mortgage marketplace, our focus on pioneering product and best-in-class delivery is greater than ever.

We offer a highly-autonomous working environment

Our engineers work in cross-functional crews alongside product owners, designers and other contributors. Crews typically comprise 7 to 8 people total (of which 5 to 6 are engineers) and are tasked with meeting an objective however they see fit. Where possible, we seek to give them the resources and support they need with a minimum of constraints (though we have some of course, such as what constitutes good architecture or appropriate testing).

You’ll be working in such a crew, helping to hit an objective with your teammates. As an engineer, your responsibilities may encompass (but not be limited to):

Extending, maintaining and ensuring the continued sustainability of our codebase, across a broad range of technologies (back-end, front-end, database, infrastructure).

Contributing to our culture of automated testing and specification, be it through well-designed strongly-typed interfaces, property testing or end-to-end integration and system tests.

Working closely with non-technical crew members to focus on building systems that directly serve our customers as much as possible.

We believe in learning and development

Our engineers come from a number of backgrounds. We have self-taught team members working with graduates from universities and bootcamps alike. Some of us have worked in large corporations while some of us have only ever known startups. A portion of the team consistently enjoy full-stack work, others prefer to specialise in certain areas. While your role and crew might see you targeting certain areas of work, we see this only as a specialism. You can expect to be exposed to many other parts of our codebase and to learn about and participate in its development if you want to. From weekly talks and reading groups to sponsored meet-ups and conference attendance, we want to help take our engineers to the next level.

We use lots of exciting technology

We’re big believers in functional programming and tenets commonly associated with it such as immutability, declarative specification and static typing and make heavy use of the following:

    • Haskell for our back-end application code and some of our infrastructure, using libraries and tools such as lens, conduit, and Servant.
    • PureScript for our front-end application code. To avoid reinventing too many wheels we make use of plenty of bindings to the rich ever-changing JavaScript landscape too; a selection includes React/preact, Redux and Storybook.
    • Hakyll and other generation tools for static site generation.
    • Bazel and Nix for hermetic, reproducible builds and package management.
    • PostgreSQL, event sourcing/CQRS and Elasticsearch for persistence and data management.
    • Docker and Kubernetes for running and deploying code in production.
    • AWS for our infrastructure.

You should apply if

    • You’re interested in understanding a complex industry and using that knowledge to build products that improve customers’ lives by supporting and enabling the massive financial decisions that accompany mortgages.
    • You’re keen to learn more about some of the technologies we use and concepts we believe in (functional programming, static type systems, event sourcing).
    • You are excited about the autonomy we’re trying to foster and you want a strong sense of ownership of you and your team’s work.
    • You have some experience with typed, functional programming (PureScript, Haskell, F#, Scala/Cats/Scalaz, Elm, TypeScript, Flow, ML)
The Benefits

Competitive salary & share options
Career development, coaching & training
Free catered lunches, snacks & team bonding
Free Healthcare & Life Assurance
Contributory pension scheme
Bi-weekly massages with Urban Massage
Unlimited Holiday
Cycle to Work Scheme