Techreport blog

Engineering Insights & Guides

The best problem-solving writing in software engineering — databases, performance, security, frontend and distributed systems, in one feed.

11,670 articles
AI & ML — Experimenting with Machine Learning to Target In-App Messaging

Experimenting with Machine Learning to Target In-App Messaging

At Spotify, we use messaging to communicate with our listeners all over the world. Our Messaging team powers and creates delightful foreground and background communications across the Spotify experience, experimenting with and tailoring the perfect journey for each user across our platform. Today we are able to send messages through WhatsApp, SMS, email, push notifications, contextual in-line form

EDEuan Dowers, Senior ML Engineer·June 1, 2023AI & ML
SRE & Ops — Analyzing Volatile Memory on a Google Kubernetes Engine Node

Analyzing Volatile Memory on a Google Kubernetes Engine Node

TL:DR At Spotify, we run containerized workloads in production across our entire organization in five regions where our main production workloads are in Google Kubernetes Engine (GKE) on Google Cloud Platform (GCP). If we detect suspicious behavior in our workloads, we need to be able to quickly analyze it and determine if something malicious has happened. Today we leverage commercial solutions to

MHMarcus Hallberg, Security Engineer·June 1, 2023SRE & Ops
Frontend — How Oxy uses hooks for maximum extensibility

How Oxy uses hooks for maximum extensibility

Let's take a look from the perspective of an Oxy application developer, and then we can discuss the implementation of the framework and some of the interesting design decisions we made

WFWbartlett, FisherWbartlett, Fisher·May 26, 2023Frontend
Performance — Unbounded memory usage by TCP for receive buffers, and how we fixed it

Unbounded memory usage by TCP for receive buffers, and how we fixed it

We are constantly monitoring and optimizing the performance and resource utilization of our systems. Recently, we noticed that some of our TCP sessions were allocating more memory than expected. This blog post describes in detail the root cause of the problem and shows the test results of a solution

MFMike FreemonMike Freemon·May 25, 2023Performance
Security — Rooting with root cause: finding a variant of a Project Zero bug

Rooting with root cause: finding a variant of a Project Zero bug

In this blog, I’ll look at CVE-2022-46395, a variant of CVE-2022-36449 (Project Zero issue 2327), and use it to gain arbitrary kernel code execution and root privileges from the untrusted app domain on an Android phone that uses the Arm Mali GPU. I’ll also explain how root cause analysis of CVE-2022-36449 led to the discovery of CVE-2022-46395.

MYMan Yue MoMan Yue Mo·May 25, 2023Security
Performance — The Impact Of Agile Methodologies On Code Quality — Smashing Magazine

The Impact Of Agile Methodologies On Code Quality — Smashing Magazine

Say goodbye to traditional workflows and embrace Agile to unlock the power of high-quality code. Discover how Agile methodologies promote simplicity, modularization, readability, and continuous improvement, resulting in faster turnaround times, more responsive development processes, and ultimately, the creation of high-quality software that meets customer needs.

SOSarah Oke OkoloSarah Oke Okolo·May 25, 2023Performance
Design & UX — Dependency Composition

Dependency Composition

Based on frustrations with conventional framework-based dependency injection, I have adopted a composition strategy that utilizes partial application to inject context into modules. When combined with test-driven development as the design process and a focus on functions over classes, modules can be kept clear, clean, and mostly free of unintended coupling.

DSDaniel Somerfield·May 23, 2023Design & UX