First things first — Why am I writing this article?
I had my first experience working on deploying a new machine learning model to a live production system two years ago when I joined a high profile project said to be game-changing for our business (no pressure!). We had a tight timeline and high expectations to positively impact key business metrics. As a technical program manager (TPM) I was responsible for driving the successful delivery of the research-ready model to production in the requested time frame and ensuring we realise the expected business impact. …
At Onfido we’re continually innovating and thinking about how we can improve important things like our communication, customer experience, processes and services. After all, one of our core values is ‘find a better way’ and Onfidoers practice this in their daily work. When Patrick Cahill from the Onfido legal team attended an Onfido University session ‘Introduction to Design Thinking’, hosted by the fantastic design team, it sparked a discussion about how in the legal team we could learn from this approach and adopt it in different ways in our interactions with customers, Onfidoers and external lawyers (to name a few).
2020 was not a normal year by any means. The world changed, and as the physical world stood still, the digital world accelerated. Our work, personal, and family lives all came crashing together — from figuring out virtual homeschooling to how to navigate the grocery store.
There’s a running joke that it was COVID rather than your CEO or CTO that led your company’s digital transformation this year, and we’ve certainly seen this reflected in the marketplace.
On average, digital offerings have leapfrogged seven years of progress in a matter of months. …
Exactly because we have to context switch so much between different repos, strict types help immensely with code discovery and safety. When the interface between two unrelated files is typed and you only need to change a single one, you no longer need to…
One day I stumbled onto a ticket from the website team that was open for several days. The ticket was for a simple change, to enable file compression.
The comments went back and forth. First we would try something, then we would ask someone else to test. Then they would come back and say it didn’t work. This repeated 3 or 4 times until everyone gave up.
I was confused, the request seemed easy to do. I decided to investigate, and that’s when I found The Beast.
To understand The Beast, you need to understand what would happen at the…
Great libraries are ones that are easy to consume. They must be easy to install and use. So how can we make Swift static libraries easy to install and consume?
The installation process depends on how we deliver our static library. There are 2 ways we can deliver a Swift static library:
This post will focus on the second case.
In this post we will learn:
Over the past few years, we’ve invested significant effort into building better research infrastructure for our team. Building on some terrific open source projects — particularly Kubeflow, an open source ML platform built on Kubernetes — we’ve built a multi-cloud research platform on AWS and Azure that has enabled our research team to both grow in size and ship faster.
When we started building this platform, we laid out a few core requirements:
Most apps that we build for iOS rely on some functionality developed and serviced by another provider. For example allowing you to login with Google.
Many apps also rely on data and functionality which is available outside the iOS operating system and on the internet. For example, in the case of a food delivery business we would require a list of restaurants open. Once the user selects the desired restaurant then the menu for such restaurant is required.
You could create a new app. When the restaurants screen is loaded, you call the server endpoint to fetch the list of…
In Figma, if you delete a component from a shared library, every instance of that component in any designs you’ve used it in will link to the last history point that the component existed.
This is great because your designs are very unlikely to break due to components being removed.
This is terrible because deleted components are completely invisible and really hard to detect in more complex designs.
I offer you today, not a solution… (the tools need to implement proper version management for that), but a strategy that may help ease some of the pain and confusion when deprecating…
TPM stands for Technical Program Management — As a function and role we drive the delivery of company objectives through the tech organisation. We do this by leading complex, multidisciplinary and cross functional initiatives.
The move to a microservice architecture for modern tech companies led to the increase in the prominence and popularity of program management expertise over the last 6–7 years. The benefit of this architecture is the increased speed of output and autonomy of teams within a domain. This, however, doesn’t stop an organisation’s leadership team from instigating strategic mandates. Consequently delivering these mandates successfully across distributed teams…
Stories from Engineering, Machine Learning, Product and Design at Onfido