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

Recording: 'Data Storytelling: What Organizations Need to Know Going Into 2025'

Friday, November 22, 2024

Thank you for your interest in our latest webinar. As promised here is your recording of the event. View email in browser Recording Now Available Thank you for your interest in receiving a recording of

💻 Issue 437 - Introducing local Azure Service Bus Emulator

Thursday, November 21, 2024

This week's Awesome .NET Weekly Read this email on the Web The Awesome .NET Weekly Issue » 437 Release Date Nov 21, 2024 Your weekly report of the most popular .NET news, articles and projects

💎 Issue 444 - Why did people rub snow on frozen feet? (2017)

Thursday, November 21, 2024

This week's Awesome Ruby Newsletter Read this email on the Web The Awesome Ruby Newsletter Issue » 444 Release Date Nov 21, 2024 Your weekly report of the most popular Ruby news, articles and

💻 Issue 444 - JavaScript Dos and Donts

Thursday, November 21, 2024

This week's Awesome JavaScript Weekly Read this email on the Web The Awesome JavaScript Weekly Issue » 444 Release Date Nov 21, 2024 Your weekly report of the most popular JavaScript news, articles

📱 Issue 438 - Reverse Engineering iOS 18 Inactivity Reboot

Thursday, November 21, 2024

This week's Awesome iOS Weekly Read this email on the Web The Awesome iOS Weekly Issue » 438 Release Date Nov 21, 2024 Your weekly report of the most popular iOS news, articles and projects Popular

💻 Issue 362 - React Anti-Pattern: Stop Passing Setters Down the Components Tree

Thursday, November 21, 2024

This week's Awesome React Weekly Read this email on the Web The Awesome React Weekly Issue » 362 Release Date Nov 21, 2024 Your weekly report of the most popular React news, articles and projects

💻 Issue 444 - Building simple event-driven applications with Pub/Sub

Thursday, November 21, 2024

This week's Awesome Node.js Weekly Read this email on the Web The Awesome Node.js Weekly Issue » 444 Release Date Nov 21, 2024 Your weekly report of the most popular Node.js news, articles and

📱 Issue 441 - Shift Left Is the Tip of the Iceberg

Thursday, November 21, 2024

This week's Awesome Swift Weekly Read this email on the Web The Awesome Swift Weekly Issue » 441 Release Date Nov 21, 2024 Your weekly report of the most popular Swift news, articles and projects

💻 Issue 439 - Async/Await Is Real And Can Hurt You

Thursday, November 21, 2024

This week's Awesome Rust Weekly Read this email on the Web The Awesome Rust Weekly Issue » 439 Release Date Nov 21, 2024 Your weekly report of the most popular Rust news, articles and projects

📲 Why I Ditched Linux for Samsung DeX — Buy This Instead of a Gaming Headset

Thursday, November 21, 2024

Also: Taking Instagram Stories to the Next Level, and More! How-To Geek Logo November 21, 2024 Did You Know Thurl Ravenscroft was both the voice behind the Christmas song "You're a Mean One,