Product & Tech Blog

search
expand_more
expand_more
Showing 12-24 of 111 results

Results for category: Software engineering close

DataSketches: The secret sauce behind population estimation

We built a service to estimate the number of website visitors reached by new audience segments in real time, for queries with any combination of user attributes. Here’s how we did it. By Manuel Weiss, with help from the ATE team Audience targeting and segments Schibsted’s Audience Targeting Engine (ATE)

Get your updates right, but don’t leave old files behind

Hand holding a mobile phone

During development you often update the deliverables with the latest version of your code. But don’t forget what you removed. Here is how you can do it with Make.

Transform data on the fly with Java Nashorn

How we use Java Nashorn to transform data on the fly We were asked to migrate data back and forth between two schema-incompatible systems. At the same time, their schemas were evolving. We decided not to waste our developer energy on writing disposable mapping tables in Excel. Instead, we provided our

A year of UI Testing with XCTest

If you ask around you’ll quickly realize that UI tests don’t have an enviable reputation in the iOS developer community. “Difficult to write”, “Slow”, “Hard to maintain”, “Don’t work” are complaints you hear a lot. While to some extent part of these are genuine, truth is that there’s no viable

Data Binding with Android Architecture Components Preview

In the talk Architecture Components – Solving the Lifecycle Problem from Google I/O 2017, Yigit Boyar talked about the new LiveData<T> class of the Architecture Components library. When talking about it it’s always coupled with the concept of the ViewModel. I’ve long been a fan of the MVVM pattern when

Continuous Deployment: Unleash your features gradually!

FINN.no is the largest online marketplace in Norway, and we take continuous deployment seriously. We are about one hundred developers deploying new code to production 978 times each week. That is 978 / 100 = 9.78 deployments to production per developer every week. In order to get to these numbers and

Async patterns on Android: Kotlin with coroutines

9 months ago I wrote about asynchronous programming patters in different languages covering C#, Javascript and Java. Lately I’ve been digging into Kotlin and specifically the Coroutines implementation in their 1.1 beta. This finally brings the async/await-pattern to Android – a pattern I grew learned to love when it was

Simplifying login with Google’s smart lock for passwords and Apple’s shared web credentials

To deliver a truly personalised experience across multiple devices we require our users to login. To get our users to login we need to create a seamless login experience. Users often forget their username or password or do not understand that they can use the same login credentials between the

Visual Search applied – the “Fashion-Cam”

Artificial intelligence features are slowly becoming industry standards in modern products and services in every niche. Now, they are being integrated into the willhaben Fashion-Cam.

Optionals in Java 8 and how to use them

A person writing on a computer

Since the release of Java 8, NullPointerExceptions have been pretty common. Before Java 8, your code was probably full of “if statements” to check if a variable was null. Still, it was impossible to catch every NullPointerException out there. With Java 8, Oracle attempted to solve this issue. They didn’t

Getting into business with Prometheus

FINN has moved towards an architecture of microservices and uses a number of technologies – Prometheus included – to identify and fix service outages.

Two-way data binding without RxJava

A computer on a desk

A couple of weeks ago, this article by Radosław Piekarz got some traction on /r/androiddev. While I am a fan of RxJava myself we use it extensively in our apps at VG.no, I feel this example was not the best use case for it. As others point out in the comment field, this