Community spotlight: Oliver Hill & Userfront multi-tenancy

Oliver Hill likes building systems. Userfront is how he keeps auth simple.

December 11, 2024
5 Min Read

Oliver Hill is the Head of Architecture at Test Machine, a reinforcement learning startup. Oliver’s work involves architecting systems and ensuring collaboration between the AI/ML and the engineering teams. Oliver has a background in machine learning and has previously worked on a variety of applications from large companies like Microsoft to small research companies. As he says, “I like building systems around ML models.”

Oliver is an engineering leader on the frontlines, who is involved with “some relations with other companies, a lot of architecting systems and making sure that the AI ML people and the engineering people are working well together and, you know, contributing to a common goal. So a lot of development. A lot of development, yeah.”

About Oliver Hill

Oliver completed his graduate degree in computer science and machine learning. For his master’s thesis, he characterized plant pollinator networks using machine learning. Oliver “used to work on identifying invasive species and drone imagery, which is really cool. And yeah, I really liked that.”

Before joining Test Machine, Oliver has experience building software applications and applying machine learning to problems. He has worked at a range of organizations: from large companies like Microsoft to small research companies. He also led a technical effort on a timber tracking system in Africa for government use.

In Oliver’s words

Oliver remembers his ambivalence when first learning about the cryptosphere and blockchain technology:

You hear about it in the news a lot. It can be sort of polarizing, just because there are very different perceptions of it and different people involved, different voices surround it. So I was hesitant at first. But the more I looked into it, the more it became clear it was a different paradigm of computing, at the software engineering level. There’s a lot of really interesting stuff going on. My boss said, “You should really take a look into this. There’s some interesting stuff going on. We could do some cool work here.”
It starts with YouTube videos. Now, most of my time now is spent digging through the low level blockchain, node technologies. Sort of organically: if you want to build a system around something, you start learning about it.

Why Oliver chose Userfront

Oliver chose Userfront because of its workflow efficiency. When it came to setting up a service for authentication and authorization, he did not want to set up a service himself:

It takes a lot of work. I’ve done it several times before. It’s always really complicated. And I spend so much time focusing on that and not on the problem that I’m supposed to be focusing on.

He had tried other solutions in the past, but found them to be overly complex, especially for a small team. When he came across Userfront, he found it to be a more straightforward and manageable solution.

I went through a bunch of different companies, all the big ones, Okta, Auth0—I don’t even know how they’re related anymore. Very confusing. But yeah, I went through three or four different applications. We genuinely tried the first one, which I think was Auth0. That was so complicated. First you’re like, okay, we’re going to use this. Looks good. Then, you start looking at the docs and you’re like, nah, never mind. We’re a small team: two full time engineers and three AI people. We just don’t have time.
We went through three or four of these. Then Userfront: The API was super simple. All of the things you expect to be there are there. And there wasn’t a bunch of like enterprise level jargon around it. So that was cool.

Multi-tenancy for team-oriented experiences

Imagine using deep reinforcement learning to find, simulate, and fix attacks against your product interfaces. Test Machine does this for blockchain smart contracts in distributed computing environments. Test Machine’s AI platform improves the security of blockchain technology by identifying vulnerabilities, providing solutions to fix them, and continuously testing for potential exploits. Oliver breaks it down:

We’re trying to get the reinforcement learning agents to attack these smart contracts. There is a set of actions that you can take to interact with the smart contract. And then we’ve got feedback signals that the agent can interpret and modify its behavior with. We are deeply involved in the challenge of all those actions. What are those signals coming back? How should the agent react to those? What sort of data do we want to look at there?

Anyone can register with Test Machine to get ScoutScan: Smart Contract Vulnerability Detection. Test Machine has additional products: Sentinel analysis and vulnerability fixes, and Predator, which exploit contracts in a simulated environment.

Each product requires its own user experience and access architecture. Test Machine needed a secure and efficient way to manage different access scenarios for their different experiences. And every user needs a dashboard, right? 

Initially, Oliver thought that Userfront would mainly serve as the user auth table in their database, handling the basics of identity management. He thought his team would still hold on to all of the authorization, such as which organizational units a user is in or what products they can access. Over time, however, they have moved towards a model where Userfront owns more of the data and handles more of each dashboard access. 

Userfront’s tenancy architecture allows for the creation of new tenants in Userfront and the assignment of users to those tenants. Userfront’s flexible multi-tenancy architecture:

  • Eases the process of setting up authentication and authorization
  • Streamlines the process of managing user access for each experience
  • Allows the team to focus on their core offerings rather than on managing user access

Test Machine’s backend (currently Go, Node, and Python) is a diverse and changing tech stack. That’s the case for many startups, but especially for MLOps right now. Oliver’s small engineering team found Userfront to be easy to integrate with their various backend technologies.

Mind-melding with Userfront

Because Oliver chose from the start to go with Userfront instead of rolling his own auth, he didn’t have to worry about migration. But integration was smooth, in no small part because Userfront anticipated Test Machine’s needs:

The sort of complicated use case for us is in the platform, which is written in Node Typescript. It’s an internal dashboard. We’re checking to make sure someone’s in the right tenant and do the auth. We’re not doing super complicated authorization schemes there.
But last time we were going through the Userfront code, we were trying to slowly do this platform upgrade. We just kept thinking: “Okay, we want to do this—”

For example, one special feature Oliver wanted was the tenant names listed in the authorization payload, so they could be verified without doing a separate request.

—It would be great if Userfront did this.” And then I would message Tyler. And he’d say, “Oh yeah. That’s under a feature flag right now. Here you go, you can use it.” And that was, I mean, awesome. It was just hilarious to see that our ideas were corresponding so closely with y’all’s ideas.
I was like, what the hell is this? Do you have access to my slack? The guy’s a wizard.

Other than an uncanny sense that Userfront knows what you’re thinking, Oliver has:

…never had any issues with Userfront. Like, no issues with our data, no issues with uptime. I think the most surprising thing when it comes to software is when it just isn’t breaking on you constantly.

Insights for other developers

Oliver recommends choosing a solution that doesn’t take too much of your time:

I’m all about trying to not waste my time. And honestly, I feel Userfront is part of that. Keep it simple. Cool advice for myself—I don’t adhere to that.

Next steps

Multi-tenancy and a sixth-sense for the features you’ll need aren’t the only benefits Userfront has to offer. Keep in touch:

  • Keep up to date with Userfront, including these community spotlights, by following us on Twitter & LinkedIn.

Have you written about Userfront? Published a blog post or shared a code example lately? Let us know and we may feature you in an upcoming Community Spotlight.

Subscribe to the newsletter

Receive the latest posts to your inbox.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

By subscribing, you agree to our Privacy Policy.

Modernize Your Sign-On

Experience smarter enterprise sign-on tools & reporting.