How Airbnb built a Kubernetes sidecar to deliver dynamic configuration reliably at scale. By : Bo Teng , Cosmo Qiu , Siyuan Zhou , Ankur Soni , Xin Huang , Willis Harvey Introduction In our previous post , we explored Airbnb’s dynamic configuration system, Sitar, with a focus on service architecture and configuration change safety. Now for the harder question:…
#software development
48 posts
4 Jun
26 May
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 leverage Engineers use AI to remove repetitive, low‑leverage work (e.g. tedious refactors, boilerplate, large…
Authors: Auriane Bonmarchand , Carolina Tealdo & Minh-Quyên NGUYEN In our previous post , we explained the Engineering Program Manager role at Criteo at a high level: EPMs sit at the intersection of business ambition, technical reality, and execution, helping complex cross-team initiatives move from intent to delivery. But if you are considering this role, that high-level description is only…
22 Apr
Authors: Auriane Bonmarchand , Carolina Tealdo & Minh-Quyên NGUYEN At Criteo, Engineering Program Managers (EPMs) sit at the heart of our most complex, cross-team initiatives. We connect business ambition with technical reality, helping engineering teams ship impactful products at scale. In this article, three EPMs share what the role really looks like, why we love it, and how your career…
5 Mar
Kenza Boulisfane, Software Engineer at Thumbtack, works at the intersection of data, AI, and real business impact. In this Q&A, she shares how she’s building an AI-powered Marketing Analytics Agent designed to make complex marketing data accessible to everyone. She also reflects on team culture, technical challenges, and why diverse perspectives make engineering stronger. What are you currently working on?…
25 Aug 2025
Hard vs Soft Filtering and how this applies to Medium’s Recommendation System In this part 3 we’ll see how we modified one of our hard filtering rules and attempted to turn it into a machine learning based “soft filter”. Intro : This is a 4-part series breaking down improvements to the algorithm behind the Medium’s Daily Digest over the past…
20 Dec 2024
Forms are everywhere online, from signing up for newsletters to making purchases. But let’s be honest — nothing’s more frustrating than a form that’s hard to fill out or riddled with unclear error messages. In this post, we’ll dive into practical tips and tricks to make your form validation seamless, user-friendly, and maybe even enjoyable! We’ll walk through tips for…
2 Dec 2024
Conduct a technical migration within less than 6 months — Part 3 (final) based on Next.js migration, performed at JobTeaser What is this 3-parts article about: sharing my own experience with handling a technical migration 📖 some additional elements that I find relevant and could help (identified with 📖 emoji) but not personally tested What this presentation is NOT about:…
Conduct a technical migration within less than 6 months — Part 2 based on Next.js migration, performed at JobTeaser What is this 3-parts article about: sharing my own experience with handling a technical migration 📖 some additional elements that I find relevant and could help (identified with 📖 emoji) but not personally tested What this presentation is NOT about: technical…
Conduct a technical migration within less than 6 months — Part 1 based on Next.js migration, performed at JobTeaser What is this 3-parts article about: sharing my own experience with handling a technical migration 📖 some additional elements that I find relevant and could help (identified with 📖 emoji) but not personally tested What this presentation is NOT about: technical…
1 Oct 2024
The Two Billion Claps Bug TL;DR A user was able to exploit a race condition in our backend system to manipulate clap counts on posts. Users are supposed to only be able to clap between 0 and 50 times for a given post, but this hack allowed them to go outside those bounds (both above and below). Our fix leverages…
24 Jul 2023
AI language models, such as ChatGPT and Claude, empower anyone to create software. These models can intelligently understand problems, create solutions, and explain the solutions. But natural language isn’t always the best way to communicate with AI. If you need to keep track of complex data and define how you interact with that data in specific ways, SudoLang can help.…
6 Jul 2023
Get started with the Home Assistant WebSocket API In Part 1 of this series, we learned about the WebSocket protocol and how to set up our own WebSocket server in Node.js . Next, let’s explore how to use a public WebSocket API to access smart devices around a connected home. REST and WebSockets for a connected home When it comes…
28 Jun 2023
It’s not just developers who rely on APIs. DevOps engineers and data engineers also use APIs for many reasons, including to manage cloud infrastructure. For example, you can programmatically manage resources, configure services, and perform operations using APIs. Let’s review other reasons to use cloud APIs. Reasons to use cloud APIs In addition to providing a management console and SDKs,…
12 Jun 2023
Your First Steps with SudoLang If you want to build chat bots, games, or applications using AI models like ChatGPT, you’ve come to the right place. In this article, we’re going to dive into the basics of SudoLang, a powerful natural language pseudocode programming language designed to instruct advanced language models like OpenAI’s GPT-4, Anthropic’s Claude, and others. SudoLang was…
1 May 2023
Image by Eric Elliott using PromptCrafter and Midjourney SudoLang is a powerful natural language pseudocode programming language that makes it easier to instruct OpenAI’s GPT-4, Anthropic’s Claude, and other language models. For an overview of language features and benefits, check out The Art of Effortless Programming and Unit Testing ChatGPT Prompts: Introducing Riteway for SudoLang . To gain a better…
26 Apr 2023
Ready to take your engineering ship to Warp 9? (by Christopher Chiu-Tabet) Nowadays, everyone is examining how to increase efficiencies and cut costs to improve their bottom line. Although it may seem counterintuitive, engineering managers can help increase efficiencies by investing in tools for their engineering group that can help increase the team’s velocity and therefore increase efficiencies and the…
25 Apr 2023
Why Every Developer Should Learn ChatGPT and SudoLang I recently started using an AI Driven Development (AIDD) process that has many benefits: Increased development productivity 10x — 20x , allowing us to take on more projects, and more ambitious challenges that would previously have been too resource-intensive to tackle. Opened up our applications to magical features we could not have…
1 Apr 2023
Pseudocode is a fantastic way to sketch programs using informal, natural language, without worrying about specific syntax. It’s like sketching your thoughts before diving into the nitty-gritty of coding. It’s useful for brainstorming and communicating ideas with others. I have been using pseudocode to express ideas to Large Language Models (LLMs) since GPT-3 was announced in mid 2020. However, up…
13 Feb 2023
Storing Postman scripts within reusable components in an OpenAPI definition In programming, “hacking” has historically meant making something do what it wasn’t originally intended to do, like using a whistle from a cereal box prize to play the tone into a pay phone to get free long distance calls. Today, it also refers to finding an inelegant solution to a…
1 Feb 2023
And use Postman to send and receive messages across the WebSocket connection The WebSocket protocol provides a way to exchange data between a client and server over a persistent connection. The data can be passed in both directions with low latency and overhead, and without breaking the connection. This means the server can independently send data to the client without…
7 Jan 2023
Every time I hear about software maintenance as a distinct activity, I cringe. That’s because it is based on the outdated notion that first software is developed, then it is maintained. But that is not how software development works today. … Continue reading →
2 Dec 2022
Photo by Caleb Jones on Unsplash Being a software engineer is scary. We are surrounded by some of the world’s most talented, intelligent minds, solving complex problems with constantly evolving technology. As a new engineer, it’s easy to get overwhelmed by the intimidating skills of our brilliant peers and the ever-changing technology we are expected to master. I started my…
1 Nov 2022
My name is Avery Dunn and I am a rising master’s student at Washington University in St. Louis studying computer science. For the past 12 weeks, I have been a software engineering intern on the API & Platform pod of the Foundation team. I am an active Strava user and have been for approximately 3 years with my favorite activity…
9 Aug 2022
To Build (an SDK), or not to Build — that is the question! If you are building a SaaS product, you most likely also provide an API for your product. At some point, you will probably consider whether you should also provide your customers with an SDK for the API. In this article, I will list the advantages of supporting…
23 Feb 2022
That’s a bold statement I know, but let me explain exactly why I believe this is true, and why I’m so passionate about it. The BBC which is celebrating its centenary this year is like no other organisation in the world. Our job is simple, to ensure that it remains just as relevant in the future as it has been…
15 Feb 2022
Much like Sir David Attenborough I was not successful on my first application to the BBC , however I was not dissuaded and applied again! Fortunately, I was successful last year and have joined the BBC as Senior Product Manager — Children’s Apps. CBeebies Playtime Island app icon On my first day all the team were very welcoming and friendly,…
10 Feb 2022
Hackathons, innovation days, codefests — whatever you call them — have been a feature of the tech industry for the last 20 years, and one of the most powerful ideation tools at our disposal. The premise is simple, given a theme or problem space, the hackathon participants must self-organise into teams to explore ideas, write some code, and deliver a…
31 Jan 2022
Learn to JAM with scripts, mock servers, and the visualizer Jamstack originally referenced a web architecture composed of JAM: JavaScript, APIs, and Markup. Websites could be delivered statically, such as serving HTML from static hosting, while providing dynamic content and an interactive experience through JavaScript and APIs. “A modern web development architecture based on client-side JavaScript, reusable APIs, and prebuilt…
3 Sept 2021
3 Rules/Guidelines to Reduce Implementation Flaws When I hear the word “rule”, I think back to grade school. “Be quiet when the teacher is talking.” “No interrupting, you must raise your hand with a question.” But what makes this different than following a set of guidelines? There was always that one kid who never listened to the rules. In coding,…
20 Mar 2020
This articles describes the difference between how component invocation differs when using curlies {{...}}, angle brackets <...> or an (...) s-expression in Ember templates. Ember has three methods for invoking components and helpers in a template, either of the three can be used to invoke both classic and modern glimmer components. The “classic” syntax in the form that uses curly…
13 Dec 2018
Being Reviewed Putting your code up for peer review can be a scary proposition. You’ve artfully crafted this code over multiple hours and cups of coffee. Your precious, perfect baby is about to be exposed to the big, dark, scary world and torn to pieces by your coworkers. Okay, maybe I’m overstating things a bit. But code reviews can be…
26 Nov 2018
Self-Review Code reviews are an integral part of software engineering, and unless you work alone, are likely to be a regular part of your work life in building software products. Code reviews can occasionally be contentious, and about as fun as a root canal, but they don’t have to be! Over the course of this three-part blog series, I will…
19 Oct 2018
I can’t say that I was always fond of teaching. My first introduction to it was also my introduction to presenting. Many years ago, a small company I worked for held an annual conference on how to develop and work on its software platform. Having brought all the staff together, the CEO declared that everyone was expected to present. I…
6 Mar 2018
https://medium.com/media/eef39ea5e8f053ef3fc7a6a272b9e093/href My co-worker Fabs recently wrote an article about how he get’s work done , which inspired me to write down my recent learnings about my own productivity. In the last year, I discovered different aspects of work life had a differently strong influence on my ability to work. In discussions with varying friends of mine, it became clear to…
22 Dec 2017
A summary of my notes taken while reading Programming Phoenix. Ch.1 The layers of phoenix, the endpoint is where the HTTP connection contacts phoenix, from there it goes to the router which directs a request to the appropriate controller, passing through a series of pipelines. Pipelines chain functions together to handle tasks that span across multiple controllers, such as browser…
9 Oct 2017
In early 2015, I was working at an artificial intelligence startup. My team was planning to build a web application to connect to our neural network platform. The team as a whole had experience (on the AI–side) with Python, and the web team had a lot of experience using Django. We’d implemented a hybrid-app in Cordova using Backbone.js the previous…
19 Jul 2017
What is a slug? The term “slug” comes from the world of newspaper production. If you have ever created a simple “Blog” application you have already reinvented it. When you need to access any post at some URL you need to identify it somehow. The simplest idea is to identify them by id, but that does not seem too pretty.…
8 Jul 2017
Some time ago I was faced with a task of testing a bash script. At first I decided to use Python unit-tests, however, I was reluctant to bring external technologies to the project. Therefore I had to go with the testing framework written in the notorious bash. Overview of the existing solutions After googling available solutions, I was presented with…
12 Jun 2017
When npm@5 was just released this question was the first one I have googled. No doubts it comes to mind since new npm version introduced a lot of yarn’s features. In other words: should I still use yarn after installing npm@5? Yarn features Why do people use yarn in the first place? npm had some known issues. Well, we all…
24 May 2017
The ability to generate mock but valid data comes in handy in app development, where you need to work with databases. Filling in the database by hand is a time-consuming and tedious process, which can be done in three stages — gathering necessary information, post-processing the data and coding the data generator itself. It gets really complicated when you need…
14 May 2017
Phoenix Framework always has been awesome. But it was never as awesome as the new 1.3 release (which is rc1 right now actually). There are a lot of significant changes. Chris McCord made a great job writing a complete migrating guide . Inspired by it and by the talk Chris gave at the LonestarElixir this article will try to guide…
3 Aug 2015
I’ve seen many articles and discussions online discussing the merits of merge and rebase when integrating parallel branches into the main branch. It seems there are two camps arguing “which is better” when in reality, both have their own use cases. The task we need to accomplish is to determine which workflow is right for your project. This article will…
8 Jun 2014
Is software antifragile? I think so. I recently finished the book Antifragile – Things that Gain from Disorder by Nassim Nicholas Taleb. I liked it a lot, and I think the ideas in it are quite useful when examining various systems and … Continue reading →
13 Feb 2013
A few days ago I finished my bachelor thesis with the title Integrating Xtext in an existing Software development process. I developed a domain specific language with Xtext and some extensions for easily adding new generators as new Eclipse plug-ins. After finishing the thesis I added a Maven Tycho based build […] The post Build and deploy your Xtext DSL…
31 Aug 2012
Task for today was making the NuGet repository of TeamCity available in our local network. Sounds easier as it was as our TeamCity instance is available from the Internet but you can only access the rontend with valid domain credentials (LDAP/Active Directory authentication). Enabling the guest account feature in TeamCity would […] The post TeamCity: Make the NuGet repository available…
8 Aug 2010
Für mein aktuelles Projekt setze ich u.a. JPA/EclipseLink, Maven und Spring. Damit der Build-Prozess von Maven und das automatische Deployen in den Tomcat-Container von Eclipse funktioniert, musste ich ein paar Änderungen an der .settings/org.eclipse.wst.common.component durchführen: <?xml version="1.0" encoding="UTF-8"?> <project-modules id="moduleCoreId" project-version="1.5.0"> <wb-module deploy-name="YourProject"> <wb-resource deploy-path="/" source-path="/src/main/webap
22 Jul 2010
Da ich gegenwärtig an libopenranked von etqw-openranked arbeite und ich vermute, dass ich meine Erkenntnisse nach einiger Zeit wieder vergesse, gibt es hier die Kurzfassung. Damit bei einem Segmentation Fault eine Core-Dump erzeugt wird, muss ulimit -c unlimited aufgerufen. Damit wird festgelegt, dass der Core-Dump beliebig groß sein darf. Mit […] The post Debugging von C-Applikationen unter Linux appeared first…