Programmer Weekly - Programmer Weekly - Issue 220

View this email in your browser

Programmer Weekly

Welcome to issue 220 of Programmer Weekly. Let's get straight to the links this week.
Quote of the Week 

“It is far easier to design a class to be thread-safe than to retrofit it for thread safety later.” ― Brian Goetz


Reading List

Build your own SQLite, Part 2: Scanning large tables
In the previous post, we discovered the SQLite file format and implemented a toy version of the .tables command, allowing us to display the list of tables in a database. But our implementation has a jarring limitation: it assumes that all the data fits into the first page of the file. In this post, we'll discover how SQLite represents tables that are too large to fit into a single page, this will make our .tables command more useful, but also lay the groundwork for our query engine.

How we run migrations across 2,800 microservices
Monzo describes their approach to running centrally-driven migrations across their 2,800 microservices, focusing on maintaining up-to-date and consistent libraries with low-effort upgrades. Their strategy involves careful planning, wrapping old and new libraries, automated updates, mass deployments, and controlled rollouts using configuration, all supported by foundational technological choices like a monorepo and consistent technologies.

I sped up serde_json strings by 20%
The article details the author's efforts to optimize string parsing in serde_json, a popular Rust JSON library. Through techniques like using SIMD-within-a-register (SWAR) and careful algorithm design, they achieved significant performance improvements, particularly for longer strings and certain JSON structures.

Understanding pgvector's HNSW Index Storage in Postgres
In this article, we'll explore how pgvector works under the hood, focusing on how the HNSW index is stored in Postgres.

Migrating Mess With DNS to use PowerDNS
Julia Evans describes her process of migrating Mess With DNS, a DNS learning playground, to use PowerDNS instead of a custom DNS implementation. She details various challenges faced during the migration, including intercepting DNS queries, designing a new API, managing frontend state, and improving error messages, while also upgrading the frontend framework and switching to SQLite for the database.

How we built Townie – an app that generates fullstack apps
Townie has been completed redesigned in the past couple weeks. It’s seriously good at writing fullstack apps. This is the post about how I prototyped this new version of Townie a couple weeks ago.

Create an internal CLI 
This article explores creating an internal command-line interface (CLI) for a company using the Just tool. It emphasizes the importance of the CLI being user-friendly, easy to contribute to, and discoverable by users.

Implementing React From Scratch
This post details the author's process of implementing React from scratch, covering core concepts like rendering, state management, and reconciliation. It explains the implementation of key features such as useState, conditional rendering, efficient DOM updates, and various hooks, providing insights into React's internal workings and design decisions.

Continuous reinvention: A brief history of block storage at AWS
The article details the evolution of AWS's Elastic Block Store (EBS) over more than a decade, chronicling its transformation from a simple block storage service using shared hard drives to a massive network storage system capable of delivering over 140 trillion daily operations. It highlights key challenges faced, including performance optimization, noisy neighbor problems, and the shift to SSDs, while emphasizing the importance of continuous improvement, comprehensive instrumentation, and organizational adaptability in driving EBS's development.

Shifting E2E Testing Left at Uber
In this post, we describe how we built a system that gates every code and configuration change to our core backend systems (1,000+ services). We have several thousand E2E tests that have an average pass rate of 90%+ per attempt. Imagine each of these tests going through a real E2E user flow, like going through an Uber Eats group order. We do all this fast enough to run on every diff before it gets landed.


Watch and Listen

Uncomplex: Modern Hardware for Better Software
John O'Hara discusses how recent hardware & software advances can help founders and CTOs succeed.

Automate Everything: How One Manifest Powers Your Entire DevOps Pipeline
The video demonstrates how to create an internal developer platform using Crossplane, GitHub, and Argo CD to automate repository creation, CI pipelines, and infrastructure provisioning. It shows how to set up a system where developers can create new projects with a single manifest, automating everything from repository setup to database provisioning, all managed through GitOps.


Interesting Projects, Tools and Libraries

InstantDB
A client-side database that makes it easy to build real-time and collaborative apps like Notion or Figma.

ChartDB
Free and Open-source database diagrams editor, visualize and design your DB with a single query. 

funcy
Simplify writing TypeScript AWS lambda APIs and functions with inferred strong typing and declarative best practices out of the box.

MiniJinja
MiniJinja is a powerful but minimal dependency template engine for Rust compatible with Jinja/Jinja2.

ruroco
ruroco is a tool that lets you execute commands on a server by sending UDP packets.

buffdb
Embedded storage built for multiplexing. Smart machines don't need to read JSON, they only need protocol buffers. The world's first MODMS (Machine-Oriented Database Management System), built to support RocksDB, SQLite, and DuckDB as backends. 

rnote
Sketch and take handwritten notes. 
 
Our Other Newsletters
Python Weekly - A free weekly newsletter featuring the best hand curated news, articles, tools and libraries, new releases, jobs etc related to Python.

Founder Weekly - A free weekly newsletter for entrepreneurs featuring best curated content, must read articles, how to guides, tips and tricks, resources, events and more.
Copyright © 2024 Programmer Weekly, All rights reserved.
You are receiving our weekly newsletter because you signed up at http://www.ProgrammerWeekly.com

Our mailing address is:
Programmer Weekly
Brooklyn
Brooklyn, NY 11228

Add us to your address book


Want to change how you receive these emails?
You can update your preferences or unsubscribe from this list.

Older messages

Programmer Weekly - Issue 219

Thursday, August 22, 2024

View this email in your browser Programmer Weekly Welcome to issue 219 of Programmer Weekly. Let's get straight to the links this week. Quote of the Week "Be careful to preserve the

Programmer Weekly - Issue 218

Tuesday, August 20, 2024

View this email in your browser Programmer Weekly Welcome to issue 218 of Programmer Weekly. Let's get straight to the links this week. Quote of the Week "Get out of the way of your developers

Programmer Weekly - Issue 217

Thursday, August 8, 2024

View this email in your browser Programmer Weekly Welcome to issue 217 of Programmer Weekly. Let's get straight to the links this week. Quote of the Week "Languages that try to disallow idiocy

Programmer Weekly - Issue 216

Thursday, August 1, 2024

View this email in your browser Programmer Weekly Welcome to issue 216 of Programmer Weekly. Let's get straight to the links this week. Quote of the Week “A complex system that works is invariably

Programmer Weekly - Issue 215

Thursday, July 25, 2024

View this email in your browser Programmer Weekly Welcome to issue 215 of Programmer Weekly. Let's get straight to the links this week. Quote of the Week "Profanity is the one language all

You Might Also Like

Import AI 399: 1,000 samples to make a reasoning model; DeepSeek proliferation; Apple's self-driving car simulator

Friday, February 14, 2025

What came before the golem? ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

Defining Your Paranoia Level: Navigating Change Without the Overkill

Friday, February 14, 2025

We've all been there: trying to learn something new, only to find our old habits holding us back. We discussed today how our gut feelings about solving problems can sometimes be our own worst enemy

5 ways AI can help with taxes 🪄

Friday, February 14, 2025

Remotely control an iPhone; 💸 50+ early Presidents' Day deals -- ZDNET ZDNET Tech Today - US February 10, 2025 5 ways AI can help you with your taxes (and what not to use it for) 5 ways AI can help

Recurring Automations + Secret Updates

Friday, February 14, 2025

Smarter automations, better templates, and hidden updates to explore 👀 ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

The First Provable AI-Proof Game: Introducing Butterfly Wings 4

Friday, February 14, 2025

Top Tech Content sent at Noon! Boost Your Article on HackerNoon for $159.99! Read this email in your browser How are you, @newsletterest1? undefined The Market Today #01 Instagram (Meta) 714.52 -0.32%

GCP Newsletter #437

Friday, February 14, 2025

Welcome to issue #437 February 10th, 2025 News BigQuery Cloud Marketplace Official Blog Partners BigQuery datasets now available on Google Cloud Marketplace - Google Cloud Marketplace now offers

Charted | The 1%'s Share of U.S. Wealth Over Time (1989-2024) 💰

Friday, February 14, 2025

Discover how the share of US wealth held by the top 1% has evolved from 1989 to 2024 in this infographic. View Online | Subscribe | Download Our App Download our app to see thousands of new charts from

The Great Social Media Diaspora & Tapestry is here

Friday, February 14, 2025

Apple introduces new app called 'Apple Invites', The Iconfactory launches Tapestry, beyond the traditional portfolio, and more in this week's issue of Creativerly. Creativerly The Great

Daily Coding Problem: Problem #1689 [Medium]

Friday, February 14, 2025

Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Google. Given a linked list, sort it in O(n log n) time and constant space. For example,

📧 Stop Conflating CQRS and MediatR

Friday, February 14, 2025

​ Stop Conflating CQRS and MediatR Read on: m​y website / Read time: 4 minutes The .NET Weekly is brought to you by: Step right up to the Generative AI Use Cases Repository! See how MongoDB powers your