Newsletter 34 – 01/2023

Featured

Building A Virtual Machine inside ChatGPT – This month many posts about ChatGPT was published, I don’t want to stress this topic even more, but this one is interesting.

From Zero to 50 Million Uploads per Day: Scaling Media at Canva – 50 Million uploads per day are huge, this post explains how Canva managed to handle It while dealing with MySQL reaching its limit, and migrating to another database.

How to make time for learning in tech – To be a great engineer is needed to continually invest in your knowledge, and keep studying over time is mandatory. Unfortunately, not all companies invest and give time to learn, and knowing some tricks to have this time is useful.

Hiring For Additivity“Echo Chambers” is a common problem for every company with some years of existence, this post talks about how Netflix hired “Additivity” to avoid this problem.

MISC

Visual Patterns to Improve Monitoring Dashboards – Knowledge of how to build good monitoring dashboards can help you in the future during a critical moment, some patterns and techniques from UX can be useful to build dashboards that really help.

A Gentler, Better Way to Change Minds – Arguing with someone who disagrees with you, is always hard, changing minds is even harder. The solution is to change the way that we present our values.

Tips for analyzing logs – Analyzing logs is a daily activity for almost all engineers, know how to search and analyze them is valuable, especially while searching for bugs or solving incidents.

Little Languages Are The Future Of Programming – A opinative post about little languages being the future of programming, today we have dozens of turning complete general purpose languages that are capable of doing anything if you code. But the future can be little languages that focus only on one task and do it with mastery, just like SQL.

Newsletter 33 – 12/2022

Featured

The hidden cost of complexity – Awesome post with a lot of nice short reflections about complexity. “We admire the complexity and avoid simplicity, while we should admire the simplicity and avoid complexity.”

What is a developer experience team? – DevEX is gaining space in many tech discussions, especially in mid-large companies. Knowing ways to start one of these teams from scratch, prioritize, and impact is always helpful.

How the clipboard works – Have you ever thought about how the clipboard actually Works? This post explains in a simple and intuitive way.

How Trying New Programming Languages Helped Me Grow as a Software Engineer – Learning new programming languages can always help you improve, learning different concepts, paradigms, patterns, and ways of solving problems.

MISC

Move faster, wait less: Improving code review time at Meta – The time that a code stands at the “code review stage” is crucial to improve the engineering team’s productivity and happiness. This post by Metas’s code review team, tells how they reduced this time.

Ruby concurrency is hard: how I became a Ruby on Rails contributor – A nice dive into a bug into a library (gem) that ended in fixing the same bug in many other gems!

The Real Problem with Go – A little “clickbait” title, but a fascinating discussion about how Go (and any other OSS) can improve not only the technical part but also the process of getting reviews and contributions merged.

(Re)building Threat Detection and Incident Response at LinkedIn – A interesting post talking about how a large company as Linkedin with over 850M customers, rebuilt its threat detection and incident response.

An Inside Look at MS-DOS – A old doc about how MS-DOS works, with tons of interesting things about file formats, memory allocation, FAT, and all these operations system stuff.

Newsletter 32 – 10/2022

Featured

How Wine works 101 – Do you know how wine works? Tip: It is not an emulator.

My Future with Elixir: set-theoretic types – Elixir announced that it will be developing/researching a set-theoric type system, in this post, José Valim talks about that.

Syntax Design – Syntax design is one (if not the most) important thing in one programming language, this post talks about some aspects of language syntaxes and interesting things.

On the Importance of Pull Request Discipline – Pull requests can be used as documentation and commit messages neither. It’s important to have the discipline of both writing good pull requests and commit messages. This gives good tips about how to get started on It.

Conway’s Law – Conway’s Law is a well-known príncipe of software engineering, and it’s always worth remembering and thinking about It.

Reducing Logging Cost by Two Orders of Magnitude using CLPCLP is a fresh new tool capable of compressing and making searches, especially on logs. As this tool is primarily focused on logs it takes advantage of many aspects of this data to do a better compression and search. Uber achieves a massive cost reduction using it and explains how in this post. Also, a better description of this tool can be read in this paper.

MISC

The Hundred-Year Programming Language – This post brings a nice reflection about what makes a language live, and what language strengths can make it live as the years go by. It makes you think about the future, and about which languages you’ll be programming 30 years from now.

Building a startup on Clojure – Building products in languages with tiny popularity is always fun Clojure is a fun language that you should give a try.

The disproportionate influence of early tech decisions – Early tech decisions can be seen in any company, especially the ones with more years of existence.

YAGNI exceptions – YAGNI is a principle that is important to always remember while developing, especially green field projects. BUT of course, some exceptions exist and this post brings a nice initial list.

Hunting memory spikes in the Erlang BEAM – BEAM has great tools to debug applications that run on It. This post explains how folks from New Relic used it for hunting memory spikes.

Make Meetings Work – Meetings are hard, and many people really don’t like them. Excellent tips can help you make meetings less boring.

Newsletter 31 – 09/2022

Featured

Memory Management in Python – Correctly understanding how languages work, and especially memory management is always useful. This post explains very easily some concepts of Python and how it manages its memory.

What is Python’s “self” Argument, Anyway? – Python self argument is on every Python programmer’s daywork, but have you ever wondered why it exists?

Why Racket? Why Lisp? – Racket is a LISP-family language, and unfortunately, as all LISPy languages, are not very popular. Yes, this is another post trying to explain why use LISP and what is so great in this family of languages.

MISC

The many problems with implementing Single Sign-On – Developing a singles sign-on feature on your product can be harder than you think. This kind of feature is essential in B2B and needs attention.

This is not your grandfather’s Perl – Perl has a great culture of maintaining backward compatibility between versions, and a script written in 1994 is still able to run in most recent versions, this culture leads to a false impression that Perl isn’t changing or releasing new features. This post shows up that Perl is changing and keeps releasing new things.

Monitoring our monitoring: how we validate our Prometheus alert rules – Cloudflare released pint a new and open source Prometheus rules lint/validator, It comes with a Nice set of checks and can be helpful.

Go runtime: 4 years later – Go runtime is always getting better and faster, many times silently. This post shows how much it has changed in the last 4 years.

Software I’m thankful for – Everybody has software (or some) that is grateful for its existence.

Newsletter 30 – 08/2022

Featured

Redis Explained – Nowadays Redis is almost mandatory for software engineers, this post is fantastic to understand it better. It explains Redis internals, deploy types, and many interesting distributed systems concepts.

WHY YOUR WEBSITE SHOULD BE UNDER 14KB IN SIZE – A website with under 14kb loads much faster than a website with 15KB, and the reason is on TCP specification.

Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust – Count words from a given input looks like a easy programming problem, but this post goes beyond and solves this problem in many programming languages not only in the easy way, but in the optimized way! Explaining why of these optimizations for each language. Fascinating!

MISC

How to interrogate unfamiliar code – Deal with unknown code is a task that scares many developers, how do you understand what’s going on? This post gives excellent tricks to understanding codebases.

How to Choose the Right Python Concurrency API – Choose which concurrency API has become common in a developer’s life, this post gives help choosing it in Python.

Easy memory-saving tricks in Go – Three easy memory savings tricks to start doing in Go, and start doing your premature optimizations.

How I Found a Go Issue on ARM that Crashed the Database Server – A simple and objective walkthrough on figuring out and reporting a issue on Go.