Issue #109
Setup base station on your own, learnings from a 45 years career in software, Wasmer - containerise anything, ~1000 line distributed KeyValue, deploying internet scale services and more ...
Hello Everyone!
I was busy on some personal project so couldn’t post new issues. I am here now, let’s get this thing rolling again!
If you like this newsletter please spread the word and share it with your friends who might be interested. I am counting on you. Happy new year!
A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away.
— Antoine de Saint-Exupery
Posts
What I’ve Learned in 45 Years in the Software Industry
Looking back on four decades in the software industry, I’m struck by how much has changed. I started my career with punch cards and I am ending in the era of cloud computing. Despite all this change, many principles that have helped me throughout my career haven’t changed and continue to be relevant. As I step away from the keyboard, I want to share six ideas I’ve learned from my career as a software engineer. - #bti360
A Consistent Core allows a large cluster to keep some data strongly consistent.
Maintain a smaller cluster providing stronger consistency to allow large data cluster to coordinate server activities without implementing quorum based algorithms. - #martinfowler #unmeshjoshi
Disaster Recovery for Multi-Region Kafka at Uber
In this article, we briefly highlighted the overall architecture of the multi-region Apache Kafka setup at Uber and different failover strategies across regions when disasters strike. - #uber #engineering
The Big Little Guide to Message Queues
A guide to the fundamental concepts that underlie message queues, and how they apply to popular queueing systems available today. - #sudhir #io
How to Avoid Cascading Failures in Distributed Systems
List of antipatterns to avoid if you want to reduce the risk of experiencing a cascading failure. - #infoq
System Design Interview Book Review: Finally, a Book for Getting Better at Architecting Systems
. . . to people who have yet to work at systems at scale. And it's also a welcome refresher to those who are familiar with some of these systems but would like to venture into various other types of large systems. - #pragmaticengineer
These design patterns are useful for building reliable, scalable, secure applications in the cloud.
Each pattern describes the problem that the pattern addresses, considerations for applying the pattern, and an example based on Microsoft Azure. - #microsoft #docs
By leveraging Wasm for software containerization, we create universal binaries that work anywhere without modification, including operating systems like Linux, macOS, Windows, and also web browsers. Wasm automatically sandboxes applications by default for secure execution, shielding the host environment from malicious code, bugs and vulnerabilities in the software it runs. - #medium
The Tech Stack of a One-Man SaaS
I try to leverage the tools I already know best, as I understand how they work, but even more importantly I understand in which cases they won't help me.
That’s why, in the same spirit as Jake Lazaroff’s Tools and Services I Use to Run My SaaS, I thought it’s now my turn to do a short write up of the technologies I’m using to run my startup. - #panelbear
Software is eating the world. But progress in software technology itself largely stalled around 1996. Here’s what we had then, in chronological order:
LISP, Algol, Basic, APL, Unix, C, SQL, Oracle, Smalltalk, Windows, C++, LabView, HyperCard, Mathematica, Haskell, WWW, Python, Mosaic, Java, JavaScript, Ruby, Flash, Postgress. - #alarmingdevelopment
minikeyvalue is a ~1000 line distributed key value store, with support for replication, multiple machines, and multiple drives per machine. Optimized for values between 1MB and 1GB. - #github
Can someone knowledgeable explain how are lisp REPLs different from Python / Ruby REPLs? What is the differentiating point of REPL driven development?
The answer is that there is a particular kind of programming in which you build a program by interacting with it as it runs, and there are certain languages and runtimes that are designed from the ground up to support that kind of programming. - #github #mikelevins
How to Stop Endless Discussions
This balance is achievable with an excellent process. I helped build this balanced process in an organization where we aimed to solve another problem - the lack of feedback. We introduced a process called Request For Comments (RFC). It is a common feedback mechanism in the software world presented by the Internet Society (ISOC) and used currently in the Rust language. - #candost
A short story about Lisp, technology, and human progress.
I’ve recently joined a company that for security reasons doesn’t allow their source code on laptops. Development happens strictly on workstations inside their private networks, with some using their text editor’s support for remote file editing and others running editors on those machines via SSH.
Adapting to this situation has indirectly led me into a bit of a rabbit hole, forcing me to acknowledge my core values, better understand the relation between progress and human flourishing, and ponder about the question: why technology? - #murilopereira
Peter Norvig's “pytudes” for Advent of Code 2020 - #github #norvig
Designing Engineering Organizations
How should you structure a larger engineering organization, one with dozens (or hundreds) of engineers? There are many tradeoffs to consider, and no single right answer. But, there are some structures that work better than others. - #jacobian
How Tail Call Optimization Works
Understanding the non-recursive case of TCO is actually a lot simpler, and if you understand the non-recursive case you realize that there's actually nothing special whatsoever about how TCO is applied to recursive functions. - #eklitzke
Twitter Thread
Paper
On Designing and Deploying Internet-Scale Services
Services that are operations friendly require little human intervention, and both detect and recover from all but the most obscure failures without administrative intervention. This paper summarizes the best practices accumulated over many years in scaling some of the largest services at MSN and Windows Live. - #mvdirona
Video
how to build distributed ground station network alone
#youtube