An illustration of leaves representing sustainability, next to an illustration of Bit the Raccoon.

Zeti is a UK-based start-up doing exciting work for sustainability in the transport sector by providing fleets of zero or ultra-low emission vehicles. They have the enviable mission of accelerating the shift to clean transport and doing their part in helping tackle the climate crisis.

We caught up with Daniel Bass, who told us about Zeti’s ZERO system, how they’re using Azure to reduce the carbon footprint for their clients and themselves, and what the future has in store for the transport industry.

Chris: Who are you, who are Zeti and what do you do?

A portrait photo of Dan Bass, CTO at ZetiDan: I’m Dan Bass, the co-founder and CTO of Zeti. My background is in software engineering and investment management, but I’ve also written a few apps and written two books on serverless architectures with Microsoft Azure. I also have a small blog that talks about serverless as well.

Zeti helps fleet operators convert to electric vehicles by making it as simple, easy and transparent as paying for any other utility. We’re really doing this to help solve the climate crisis, and with London in particular, the air pollution crisis. We offer a patent-pending form of finance called Pay-Per-Mile which is, instead of charging interest and having regular monthly payments like a normal car lease, customers get a cost-per-mile. Then, for every mile that their fleet drives, we charge them for those miles every month.

We’re currently focused on business consumers rather than individuals, but it’s proven really popular with our business customers. For one thing, we pool their utilisation. In normal leasing, each vehicle has a fixed limit on the number of miles it can run. In our model, if you have a really heavily-used vehicle, it just contributes to your bill through cost-per-mile. There’s no individual limits, which makes it a really attractive model. It also allows them to scale down their costs during quiet periods: for example, during COVID our fleet customers were able to park up their vehicles and reduce their operating costs significantly.

Chris: What is ZERO and what does it bring to your customers?

Dan: ZERO is basically the core of Zeti – it powers everything that we do. It does all sorts of things, with one example being the ability to track vehicles in real time using the telematics installed on the vehicles. I mentioned earlier that we do Pay-Per-Mile financing, but before the advent of telematics and 4G/5G, we would have to check every vehicle that we finance each month and look at its dashboard. That’s obviously impossible – fleet operators are very unhappy about not being able to use their vehicles, not to mention how difficult it’d be logistically.

Instead, we use telematics to automatically and transparently pull that data in real time, which is handled by ZERO. It does this for billing purposes, so it will generate bills monthly, send them to customers and collect payments over direct debit, which is an innovation itself. Again, businesses don’t tend to pay by direct debit and investment companies certainly aren’t used to being able to receive money via direct debit.

It also pulls quite sophisticated electric vehicle data, such as when vehicles are charging and battery health information, and this in turn can help us diagnose issues with vehicles. For fleet operators, we can proactively tell them that the battery in one of their vehicles is looking a bit weak. Maybe they’re charging it in a way that’s damaging – we can advise against it to give them a better range on the vehicle for the next two years.

ZERO also does a lot of reporting work, providing real time automated reporting to all of our investors. Zeti’s model is that we don’t lend our own money, we instead act as a partner to help fleet operators access investors who want to put money into, what we call in the investment management industry, ESG – environmental, social and governance. In this case we’re really focused on the environmental side of this with the climate crisis, and there’s a lot of investment money available to help tackle the climate crisis. As a side note, this is because people are demanding that their pensions and investments help tackle these issues.

ZERO gives a live view of how much carbon dioxide and nitrous oxide is being saved by these vehicles in real time at the tailpipe. So because of this, we can see these vehicles are driving through central London not emitting nitrous oxides, but if we hadn’t financed an electric vehicle it would instead be a diesel vehicle, which certainly would be.

In the private investment world, which I’ve worked in for a long time, the best you might expect would be a monthly spreadsheet. I’ve seen examples where someone would literally get an Excel spreadsheet every month that was reaching its cell limit, and that was their data load. That was on the better end of things, as you’d actually get lots of data rather than a PDF that just says everything’s fine. So having this level of real time transparency is really good for ZERO.

The fleet operators get that we’re creating a utility-like experience for them, but the good thing is that with these kinds of smart metering services, you can see exactly how much you’re using, you can see what happens when you change things, you can see the impact of changes immediately and you can also see predictions into the future of the fleet. That’s what the ZERO fleet operator portal does on top of showing them how much carbon dioxide they’re saving, which is something they can communicate back to their customers. So really, ZERO is the core of our operation that automates the entirety of our offering.

Chris: A lot of the ZERO platform is automated – how have you built this/what are the benefits?

Dan: The ZERO platform is entirely built on Microsoft Azure using serverless tech. The core billing and payments flow is built using durable functions on Linux function apps, all written in C#. The various portals and dashboards – anything we need to show to a user – these were built with Azure Static Web Apps, which are fantastic. We’ve also got conventional function apps for things like the telematics adapter that collects all the data from vehicles and then normalises it into a nice structure.

For us at Zeti, the benefits are kind of twofold with all of this automation. Firstly, without this automation, we couldn’t make as great a product. In the earlier example where we’d have to go and visiting vehicles to write down their mileages, we simply wouldn’t be able to deliver any kind of meaningful analysis. For investors we even provide a real time internal rate of return, so they can see exactly what percentage they’re making on their money. Real time stats and analysis would become, at best, once a month, probably once a quarter, if it wasn’t automated. It’s all this core automation that really powers being able to deliver value, otherwise you’d be bogged down in doing the basics.

Secondly it allows us to show that, fundamentally, that finance can be affordable. Our head of operations, Chelsea Dowling, has a saying which we’ve actually stuck on a wall here, and that’s “Make it tech’s problem”. It was originally tongue in cheek for whenever something unexpected came up, but it’s actually something that we really internalise at Zeti. Our objective as a company is not to just grow headcount for the sake of growing headcount, because that incurs costs and that cost eventually has to come from somewhere, right? The more efficient that we can make the company through automation, the less we have to charge and the quicker we can finance more electric vehicles. We want to put our time and resources into tackling the climate crisis and the air pollution crisis, rather than simply building a big team.

Chris: Are you using open source software?

Dan: C# itself is open source – we write the majority of our backends in C#. We also use TypeScript, which is another Microsoft open source language. I use Visual Studio Code for all of my development, which I find really effective.

There’s all sorts of open source components, too, such as Netlify CMS. We actually made a contribution to Netlify CMS to show people how they can use it on Azure, so it’s now in their documentation. We use Material UI, which is a framework for React. We also use a bit of Python and PySpark on the back-end for our large data analytics.

A screenshot of the ZERO software showing a map populated with Tesla cars, as well as showing stats for battery, carbon savings, speed and mileage of the user's fleet.
Real-time location and individual vehicle tracking for a fleet, including mileage, speed, battery and carbon savings.

Chris: You use a lot of Azure Static Web Apps with ZERO – why is this/why not alternatives like PaaS?

Dan: There’s a few reasons for it. Firstly, for me, it’s a lack of maintenance. As we’re only a small team at Zeti and I’m one of only three people on the tech side, we don’t have a lot of time to spare. We want to minimise the amount of time that we spend on operations, so that we can maximise the time spent delivering new features and delivering a fantastic product that makes our customers happy.

I’ve operated PaaS systems before and they’re fantastic. They reduce maintenance significantly, but they don’t reduce it down quite as low as Static Web Apps do. The reason for that is you still need to choose things like how many cores you want to use, how much memory do you need, what’s the IOPS? Having to worry about that is operations in itself, because you have to set up dashboards and you have to pay attention to them. It creates quite a lot of work and takes a lot of time away from delivering features, which is what you actually want to do. With a serverless approach, that is what Static Web Apps really embodies. It’s not truly no-OPS, that’s kind of an overused phrase I think, but it’s less-OPS, so we can focus on building a great experience.

The second one is on the scalability side of things. Generally whenever I build something, I build it as a client-side framework of some kind. Generally React with a serverless API is my favourite at the moment, which is helpful because it’s inherently very scalable as you do the separation right at the start. This is unlike some other programming paradigms, where you end up being fixed to a server full model which is then very difficult to scale.

With Static Web Apps for example, they delivered a feature recently which lets you deploy your front end globally. With no effort at all, I could click a toggle and all of a sudden my React app is being served by a global CDN, and my users in America suddenly got decreased latency, which we could measure. That kind of pre-built scalability is really helpful.

Finally, there’s the cost. As a startup, particularly in the early days, you really need to keep a really tight handle on your costs, particularly if you want to do things properly and have multiple environments that are exact copies of production. That can be very difficult for a startup – if production costs me £300 a month then I can’t replicate it exactly for dev and test as that will triple my bill! That’s how you have your first outage usually, when dev and test don’t behave the same as production.

Static Web Apps are great because they’re so cheap. They’re free for a very high level of usage, and I think it’s a minimal cost per month after that. The monthly costs can add up, so you aren’t going to be spinning them up endlessly, but realistically it’s very reasonable for the level of service you get. For a startup, that’s invaluable.

Chris: As a start-up it’s important to watch costs – how do you manage this, and why serverless?

Dan: I actually did a conversion of an app at one point from PaaS, from a traditional app service and SQL, to a storage account and table storage, which saved us 98% on the cost of it. I was astonished by this – I knew they were savings to be had by doing this, but I didn’t realise it’d be so much.

One of the things that I realised whilst I was analysing how that happened was that it’s all down to utilisation. When I say your first outage is generally due to your dev and test environments not matching up, then your second will be due to underallocation. An article about you hits the press and you don’t know it’s coming – everyone visits your website and they’re seeing 500 errors because of the tiny amount of CPU and cores that you’ve put on it to save money. It just gets overwhelmed, and then you have a crisis because now people might start to think your product doesn’t work.

From then on people tend to massively over-allocate, so the utilisation rate of any given server full system is going to be maybe 5%, because you want to allocate for that peak and you never want everything to go down. You also want to have enough time during that peak to issue an alert and get everyone on board to double or triple the scale. But in the middle of the night, who’s on your app? Very few people. As such, utilisation rates in the single digits are not unreasonable.

With the serverless system, the utilisation rate is as close to 100% as possible at all times, because it flexes with how much people are actually using it. That’s where you get these big cost swings and that’s how we do cost management. Any time we’re incurring cost, it’s because we’ve got customers that we’re delivering value to. You obviously have to look at absolute cost, it’s very important, but there’s no ‘fat’ in there, so to speak.

One of the other things that plays into this is our environmental mission. We obviously can’t go around telling people to use zero emission vehicles because it’s better for the planet while burning 95% of all electricity that goes into our servers on nothing. So instead, if you’re serverless, your utilisation rate is very high, so you end up very economical with the electricity that you’re using. It’s a lot more efficient on that side as well.

Chris: How does Azure help with Zeti’s mission in reducing CO2 emissions?

Dan: The fundamental part is by providing a great platform to build on, that can get out of our way and let us deliver. Our business is not computing. We are a technology business, but it’s the deliverables that result from it. So it lets us focus on Zeti’s mission, as we don’t have to spend valuable time configuring settings. We can go and focus on getting another thousand zero emission vehicles on the road instead of diesels, or deliver another automated payment solution. All things which will help us encourage more investors to put money in, because they’ll trust the business more.

Microsoft themselves have a great environmental mission, such as the push to go carbon negative. Good environmental credentials are really important to us because when an investor comes to us looking to put money into vehicles, they also look at us to see that we’re credible on an environmental side as well. We can tell them that we’re using Microsoft as our cloud provider, and they can look through everything Microsoft is doing. They’re doing brilliant things in that regard, so it’s a partner that we can be proud of.

There’s also the credibility side – we’ve got to convince investors that have hundreds of millions of pounds to put that money through Zeti and into clean vehicles. We’re a startup, so it’s a conversation that has challenges. Using Microsoft services helps with this credibility, especially when they come to evaluate things like security. There’s a perception that startups don’t take security seriously. We do, obviously, but what we can also do is point them towards Microsoft Azure and its massive list of certifications.

Obviously they have to evaluate tech like ZERO on top of this, but what we don’t have to do is have someone visiting a warehouse somewhere in the South of England to evaluate whether we’ve got the right shift schedules, because that’s all handled by Azure. That helps our environmental mission by getting us over that conversation and closer to putting millions of pounds into clean vehicles, which is really important.

A screenshot of the ZERO software showing real-time carbon and NOx (air pollution) savings
Showing your fleet’s carbon dioxide and nitrous oxide savings in real-time.

Chris: For developers who are new to Azure Static Web Apps, do you have any advice or tips on how to get started and why they should give them a go?

Dan: To get started, Microsoft Docs is an excellent resource. They’ve got some really good starters for any front end framework that you might be used to, and you’ll find it particularly comfortable if you’re a front-end developer. The fact that you can go in and have your GitHub repo deployed to the cloud or merged in just a few clicks is great.

On the serverless API side, there’s a lot of great starters out there already. To be honest, I looked through a lot of documentation like that and it’s all I used – I don’t have any kind of inside track or anything like that! If there’s a particular person to call out it’d be Anthony Chu, a product manager at Microsoft that works on Azure Static Web Apps. He writes fantastic articles on how to do really funky stuff with them, for when you want to push them that bit further.

If you’re used to using something like ASP.NET, there’s a little bit of a learning curve, but if you’re used to using Blazor Server, you can deploy Blazor WebAssembly to Azure Static Web Apps and keep yourself in the C# world – you don’t have to venture into React and TypeScript like me!

One of the things that I often see is people thinking that Azure Static Web Apps are just for public websites. We use them for all of our secure portals, and in fact, the security is probably significantly better than a server full solution because there isn’t really a server for anyone to hack into. When you’re serving static files, they can’t really be messed with in the same way that you could on WordPress, for example.

Chris: What’s next for Zeti and ZERO?

Dan: Zeti has entered the US market, where we’re working on a number of pilot projects. Anyone who wants to convert their fleet to electric in the US, get in touch. We’re also looking at continental Europe, so again, if anyone wants to get in touch about that, I’d encourage them to do so. We’re also very open to partnerships for things to bundle with our financing, for example electric charging cards, and generally anything that will help us accelerate this green transition – please do get in touch.

For ZERO itself, we’re working on a range of things on our data side, such as a new fleet operator dashboard experience and live maps of all our vehicles. As we’re entering the US, ZERO has to support US taxes and claiming payments, as well as following US regulations.

It’s quite an exciting time really, with our international expansion and our vehicle expansion as well. We’ve recently taken on Teslas for the first time which is very exciting, and we’re looking at a series of other brands to integrate into ZERO too.

Learn more