Us: Research & Development

Daniel Serrano
Onfido Product and Tech
3 min readApr 18, 2018

--

At Onfido, we’re proud of building new, exciting and world-changing tech. But to keep up with the pace of change, we need the best of the best working with us. Our research team is just that: pragmatic people focused on productionising the most promising ideas as quickly as possible.

Recently, I’ve been getting more and more involved with the research team. Not by participating in the development of algorithms, or actually implementing the hottest ones in our area of research (my team focuses on the facial similarity and ‘liveness’ solutions) — but instead, by iterating on the hard work of the research team. We help transform their ideas into machine learning models that can recognise similar faces, head movements and spoofing attempts (a photo of a screen, or photo of a photo, for instance) and deliver them to our customers.

By “helping”, I mean that we pick up almost productionable algorithms and make them run as microservices. They’re then integrated into our complex and growing pipeline of automatically processed checks.

Some of the tweaks we make can include: collecting metrics to understand the number of web workers that should be running in the Kubernetes pods we provision, defining an autoscaling strategy accordingly, pre-loading models to speed up the first incoming request in each web worker, and adding acceptance tests to give us a greater degree of confidence when deploying these services — among other improvements here and there.

In order to make this work, good communication among everyone in the team is paramount. For that reason, we have been adopting some processes and tools to achieve the much sought after ‘communication nirvana’. We think it’s been working very well so far:

Research and Engineering in the same team 🤗

Previously, engineering and research worked as two complementary but separate functions. We only overlapped each other a little bit until Onfido decided to include the Research function into cross-functional teams (which we already did for Testing).

Joint daily stand-ups ☕️

The working dynamics of researchers are totally different from engineers, particularly in regards to time to deliver. Keeping the whole team updated of the progress and decisions that have been made in daily stand-ups really helps. Research joins us every other day so we can chat about updates and discuss trade-offs.

Shared Scrum board 🎯

As an engineering team, we’re committed to finish a Sprint’s work every 2 weeks. Research now contributes to that work via a shared board, commiting to finishing (or at least contributing via exploratory tasks) whatever we’re currently working on productionising. It enables wider visibility and enhanced knowledge sharing.

Joint Slack channel 💬

Due to the growing need for better communication, a separate Slack channel was created to facilitate short, offline discussions that don’t require a full meeting. It’s also where we share achievements (and lots of emojis).

Onfido has an incredibly talented research team, whose algorithms improve the quality of what we and our clients deliver. This is still the beginning of what we expect to be a very fruitful and enjoyable symbiosis between Research and Development at Onfido.

--

--