Now, if there’s anything we can all agree on, it’s that 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…
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…
During Onfido’s recent API upgrade project we let the documentation drive the development cycle, leaving us with release ready docs before the final code changes were merged.
This was the first major upgrade to the Onfido API in almost 4 years. During that time the business pivoted from background checking to identity verification so the range of products we offer and their use cases changed a lot. Some of the features, terminology and concepts in the existing API (v2) were no longer relevant, and we were hearing through support tickets and client queries that customers sometimes found integrating with it…
Stories from Engineering, Machine Learning, Product and Design at Onfido