Skip to main content
  • ChevronChevron
    F#'ening TotallyMoney's developm...

F#'ening TotallyMoney's development toolbox

F#! What started as an odd language choice for one small project 5 years ago, has grown to become a major part of our development toolbox at TotallyMoney.

In that time F#’s influence has expanded from a couple of curious coders, to 10 full time engineers, each of whom eagerly reach for F# as their first choice when constructing TotallyMoney.

As someone on the inside track it’s easy to see why it’s taken such a large amount of developer mindshare. F# offers an unparalleled combination of both safety, and access to a wide range of libraries. With F# we have our feet solidly planted on a pure functional ground, while we are free to grasp into a near endless dotnet ecosystem. When we deploy our code to production we sleep well in the knowledge that we’re not going to be awoken by an errant null exception. And should we need to integrate with a 3rd party vendor — well, at the end of the day it’s dotnet — one of the widest supported platforms out there.

Promoting autonomy. Removing barriers. Fostering sharing. I believe these are things are the reasons F# has grown at TotallyMoney. We really do want people to choose the tools that they feel will make them the most productive. Emphatically so. No pressure to choose what’s easy; or what’s the least risky. Yes, of course there’s a degree of evangelizing between the engineers, but there’s certainly no director on high dictating what people must use.

The best engineers we can be

Now good principles and a bit of luck gave F# a toehold, but I think what drove F# forward from a technical sense is that it empowers engineers to be the best engineers we can be. We are creators and builders. We want to build systems that are flexible. That are dependable. That are, dare I say it, elegant.

We come to F# having seen our previous creations crumble under the weight of hard to express domain logic and overcomplexity. Systems that strain to remain stable. Systems that falter against the ever changing landscape of technical change.

It’s absolutely hubris, but I feel that many of us engineers are looking to build things that we can point to and say: “Look on my works, ye Mighty, and despair!”. We want systems that will last the test of time. Systems that capture and express the problem domain with the least amount of fuss. We’d like to have a chat with a previous colleague, ask about a project we previously worked on, and hope they’ll say: “Oh yeah, that system. It’s still ticking along. People add to it and change it fairly often but it continues to do its job well”.

So yes we do take pride in our work. We choose F# not because of that pride, and not to show off. Instead we choose F# because we believe it enables us to be the best engineers we can be. For the systems we’re building F# really does hit a sweet spot in a way that’s difficult to replicate with other languages.

So while it’s not for everyone; by any measure F# has demonstrated its worth within TotallyMoney. Even after 5 years of using it we continue to learn and explore what F# is capable of, and how to get the most out of it. For all the benefits we’ve seen, at times it feels like we’ve only barely scratched the surface.

The team is currently on the lookout for an F# backend engineer. Visit the TotallyMoney careers page if you're interested in joining us on our mission to help everyone move their finances forward.

https://www.totallymoney.com/careers/



F#'ening TotallyMoney's development toolbox By Tristian Barrett, Engineering Manager

We're on a mission to help everyone move their finances forward and gain financial momentum.


TotallyMoney is an independent credit broker, not a lender. Our comparison service works with most leading lenders, covering the majority of the market. Though we may be paid a fee by lenders or brokers this never influences how our products are ranked.

We don't provide financial advice. Product information is obtained from independent sources and rates displayed may vary depending on your personal circumstances. While we make every effort to ensure that information is up to date, you should always confirm the terms of the offer with the product provider.

TotallyMoney is owned and operated by TotallyMoney Limited which is registered in England and Wales (Company Registration Number 06205695). TotallyMoney Limited is an Appointed Representative of TM Connect Limited, which is registered in England and Wales (Company Registration Number 06967012) and authorised and regulated by the Financial Conduct Authority in respect of consumer credit related activities (FCA FRN: 511936). Trading Address and Registered Office: Chapter House, 16 Brunswick Place, London N1 6DZ. Credit is available, subject to status, only to UK residents aged 18 or over.

We use cookies as described in our Cookie Policy. Continue browsing or click to accept.