from/prod
← All companies

THE COMPANY INDEX TRACKED BLOG

Medium

Ideas, decisions, and lessons from the team.

medium.com (opens on the source site)LinkedIn
11Posts tracked
2 weeks agoLatest publication
0.5Posts / month over the last 12 months

Latest writing

11 of 11 posts

What We Built for Medium Editors This Year (and What I Broke) (opens on the source site)

A behind-the-scenes look at bulk declines, decline reasons, a content calendar, and one very bad hourA few months ago, we took an honest look at publications on Medium and asked if they were succeeding. Were users incentivized to create quality publications on Medium?We had the Boost Nomination Program, which was helpful for the cohort that was selected, but we didn’t have any signal that the BNP was motivating for other users. Were we getting higher quality articles as a result of BNP?So we asked ourselves “How can we reward good editors for their editorial work and make it clear how others…

Read at the source

How we think about text classification in the LLM era (opens on the source site)

Why we think LLMs can be useful and why we will not replace all of our models with themContextAt Medium, we have many Machine Learning models that we use to label stories automatically. These affect what stories we recommend to readers.Here’s some examples:a few of our text classification models. All diagrams and charts made by the authorSome Clarifications on our Machine Learning policyBefore we go deep on this project, I just wanted to clarify a few things about how we stand regarding AI in general.Medium has been training internal models with user and post data for a long time now. We…

Read at the source

How we built the new Table of Contents feature (opens on the source site)

How a feature goes from idea to prototype to shippedFor years, there’s been this really popular Chrome extension for adding a table of contents to your Medium stories. Props to Vinicius De Antoni for writing a popular chrome extension all those years go.The extension was so popular, we even wrote about it in our Medium Handbook.How to make a table of contents for your Medium storyThe fact that it was so popular was a signal to me. There was a decent size of our user base that wanted this feature. So, at first I set out to just copy it.The Chrome extension extends the popup menu we have in the…

Read at the source

Outcomes we want to see from AI at Medium Engineering (opens on the source site)

This was originally written and published by Christophe Spy (Director of Engineering, Medium) as an internal Medium Eng post.Desired outcomes (what “good” looks like)🙏🏻 These are the kinds of changes we want to see if AI is going well at Medium.Less drudgery, more leverageEngineers use AI to remove repetitive, low‑leverage work (e.g. tedious refactors, boilerplate, large test suites), not just to ship more tickets.We see examples like:“We took a part of the codebase that was basically untestable and, with AI, made it testable and added meaningful coverage in days instead of months.”“We…

Read at the source

How we improved image download sizes on Medium with just four characters (opens on the source site)

HTML images just got better, with the subtlest change to your codebasePhoto by Adi SuyatnoI know what you’re thinking.Scott, I landed on Medium on a small but not mobile-small display and the download chunk related to images in my home feed was like 7% smaller.First of all, thank you for noticing.Second, what if I told you that you too can improve your total asset download size by adding just four characters to your code base?Sounds too good to be true, right? Well, I’m here to tell you, it’s true… after I explain how we got here.The history of images on the webAs a web developer, you’ve…

Read at the source

Making AI Write Android Code Our Way: A Practical Guide to Agent Skills (opens on the source site)

Generated by DALL-ETurning knowledge into reusable AI agent instructions for a small, fast-moving team.We're a small Android team at Medium, just a handful of engineers maintaining and evolving the Medium Android app. Our codebase follows Clean Architecture with Kotlin, Jetpack Compose, Hilt, Apollo GraphQL, and a growing number of feature modules. Like most Android teams, we have strong opinions about how code should be structured: where ViewModels get their data, how analytics events flow, how feature flags are checked, what a "new screen" looks like from Fragment to preview function.The…

Read at the source

We’re Hiring a Principal Backend Engineer to Shape the Future of Medium (opens on the source site)

When I joined Medium, it was because I still believe in the internet as a place for ideas. Not noise, not outrage, but content that connects people through shared curiosity.Medium’s mission is to deepen understanding and spread ideas that matter. We’re building the best place for reading and writing online: A space that rewards clarity, authenticity, and craft over clickbait and engagement hacks.That vision only works if the technology beneath it is as thoughtful as the writing above it. That’s where you come in. Yes, you!Photo by Yannick Pulver on UnsplashThe RoleWe are starting the search…

Read at the source

Medium Android App — Migrating from Apollo Kotlin 3 to 4: Lessons Learned (opens on the source site)

Photo by Mario Verduzco on UnsplashMedium Android App — Migrating from Apollo Kotlin 3 to 4: Lessons LearnedIn this post, I’ll share my experience migrating the Medium Android app from Apollo Kotlin version 3 to version 4, including the challenges I encountered and how I solved them to improve our GraphQL implementation.Understanding Our Apollo Cache ImplementationBefore diving into the migration, it’s important to understand how we use Apollo’s cache in the Medium Android app. Our app relies heavily on Apollo’s normalized cache for several critical purposes:Performance Optimization: We use…

Read at the source

Engineering stories behind the Medium Daily Digest Algorithm: Part 2 (opens on the source site)

How we made our filtering 10x cheaper by removing our Bloom FiltersBloom Filters are great tools to make fast and cheap filtering. They also come with plenty of problems and can easily get expensive and cumbersome. We switched to user-based direct database queries, which made our filtering cheaper and easy to maintain. Here’s the full breakdown of that migration.Intro: This is a 4-part series breaking down improvements to the algorithm behind the Medium’s Daily Digest over the past year. When we started this work, the Digest was suboptimal — and since it’s a huge distribution surface,…

Read at the source

Engineering stories behind the Medium Daily Digest Algorithm: Part 1 (opens on the source site)

How we made our email story recommendations betterIn this Part 1, you’ll understand how we improved one of the main ways our users are exposed to our product and how that led to a massive 7% increase on the average reading time for the digest users.Intro: This is a 4-part series breaking down improvements to the algorithm behind the Medium’s Daily Digest over the past year. When we started this work, the Digest was suboptimal — and since it’s a huge distribution surface, reaching millions of readers every day, we started working on incremental improvements.By the end of these projects, the…

Read at the source

Engineering stories behind the Medium Daily Digest Algorithm: Part 4 (opens on the source site)

Cross-Digest diversificationIn this part 4, we’ll see how we went from investigating a few complaints from digest power users to improving our digest recommendations across the board.Intro: This is a 4-part series breaking down improvements to the algorithm behind the Medium’s Daily Digest over the past year. When we started this work, the Digest was suboptimal — and since it’s a huge distribution surface, reaching millions of readers every day, we started working on incremental improvements.By the end of these projects, the digest was 10% more likely to convert users to paying members, less…

Read at the source

Privacy choices

Reading never requires analytics. These choices last 90 days on this browser.

Essential sign-in and security storage always stays on. Read the privacy notice.