A collection of useful and insightful links found on the internet. This is basically a personal reference that also happens to be public
- Antirez on writing comments Taxonomy of comments, and how to write useful comments
- Writing maintainable code is a communication skill A very well put article about comments and communication
- The rule of three and a longer form take on it
- The law of least surprise
- YAGNI Don't add functionality until deemed necessary
- POSIX locks in Go/Python/Rust (by me 🤘) Example implementations of mutually-locking POSIX locks in different languages.
- General Orchestrator pattern
- Why duck typing is safe
- Don't mock what you don't own A great article about unit testing and mocking
- Mocks aren't stubs Taxonomy of test mocks/stubs and when to use them
- The C4 model for visualizing software architecture A framework for documenting software architecture
- 69 ways to mess up your deploy A reflexion on pitfalls in a Devops world
- OWASP Security guidelines A very digestible collection of articles on practical security.
- No YAML Some gotchas about YAML and why we should avoid to use it.
- GyShiDo The art of getting your shit done
- Sans-IO A collection of links to protocols implemented as bring-your-own-IO
- I'm a programmer, and I'm stupid a funny take on writing simple, understandable code
- What makes a great software engineer? some research about qualities great software engineers share
- Why I'm over GraphQL an opinion piece on why GRaphQL should generally be avoided.
In the middle of the AI craze, it's good to have a list of products that actually show promise.
- Reclaim Let AI organize your calendar
- Copilot Your AI peer programmer
- Should I solve it with AI? A great take on what to ask yourself before jumping on the AI bandwagon
A collection of language-specific links.
- Anyhow and Thiserror for error handling.
- Meuse A private crates registry with tons of features.
- Reshape provides 0-downtime schema migrations (see the blog post, too)
- Writing an OS in Rust a series of articles/tutorials on building a minimal (bootable) OS in Rust.
- Cargo bloat a nifty tool giving you the worst offenders in your build deps for build time/space.
- Idiomatic rust
- A gentle introduction to Rust great beginner-friendly tutorial, narrated (as opposed to reference-like)
- Cheats.rs a Rust cheatsheet
- Axum a Rust web framework
- Polars a Rust data framework/library that interfaces natively with the python ecosystem as well
- Maturin a Rust build system to trivially build Python extensions in Rust.
- Egui an outstanding immediate mode UI library
- remoc an amazing library to make interacting with remote rust programs a breeze
- Databend a modern alternative to snowflake, written in Rust
- Samply a CPU profiler written in Rust (and useful for Rust too)
- Pysequoia a python wrapper for GPG encryption around a Rust reimplementation
- Daquiri a RBAC library that's enforced at compile time
- Mockall a mock crate for Rust traits, to use in unit testing
- cargo-pgo a PGO implementation for cargo/Rust, and a couple of blog articles about it
- Hy a dialect of lisp that embeds in python
- Lark a parsing toolkit/DSL framework for python.
- Hypothesis fuzzing python programs, the smart way
- A list and comparison of Python package managers pip, pipenv, poetry, venv, virtualenv, pipx...
- Pre-commit A python package to make pre-commit hooks much easier to write/run
- Memray A pretty good memory profiler
- Scalene A high performance profiler
- Slipcover a near-zero overhead coverage tool for python
- Writing a weechat plugin in Python
- Pretend a library to write stubs easily
- Ruff a really fast linter written in Rust
- Streamlit an amazing data visualization library
- Rye a fast and correct python project manager
- alive-progress a set of nice-looking progress bars
- croniter a very hand python lib to manipulate/validate cron syntax
- How to write a Clojure application (by me 🤘) how to write a Clojure webapp with DB from scratch.
- Today in Clojure a simple news aggregator for the clojure world.
- The clojure cheatsheet for those times when you really can't remember what
mapcat
does - Clojure for the brave and true great beginner book, one of my favorite technical books ever
- Loopr a loop/reduction macro for clojure, by Aphyr
- Jank an LLVM-backed implemention of Clojure
- The zen of Go a pretty good article on some aspects of "idiomatic" Go.
- Maps and memory leaks some important highlights of go's memory management.
- Go vuln check A security scanner for your go dependencies
- Pending SRUs The list of SRUs currently in progress. Helpful to help validate/track status when waiting for a fix.
- Sponsorship queue The list of patches to packages by non-maintainers/non-developers awaiting a maintainer sponsorship to land.
- Upload queue
- The launchpad build farm
- Proposed migration excuses
- Merge-o-matic
- Transitions tracker
- Components mismatches
- Ubuntu Amazon EC2 AMI Finder
- Hadoop and Kerberos: The madness beyond the gate
- Materialize "materialized views" over streaming data sources such as kafka topics
- termshark when normal wireshark is too heavy, or you don't have a GUI
- fzf a command-line fuzzy finder
- spotifyd a spotify-compatible daemon (appears in your list of spotify devices)
- gh-prs View and interact with github PRs in the terminal
- barrier an open-source software KVM switch that works seamlessly across Mac, Windows and Linux.
- Never use git push --force never use --force, always --force-with-lease (or a "please" alias)
- libtree LDD as a tree!
- How to Deal with Difficult People on Software Projects
- Unlearning toxic behaviors in a code review culture
- On being a senior Engineer
- Communication in a remote setting Basecamp is 100% remote, some reflections about communicating in that setting.
- Remote communication guidelines another communications guide by a fully remote company, Shiphero
- Encouraging a culture of remote communication
- The rules of civil conversation
- Untools A repository of tools about communicating and other topics
- A Gentler, Better way to change minds A take on convincing people
- Shape-up basecamp's methodology for "project management"
- Contempt culture let's not make prorgamming languages into religions
My Mastodon (on hachyderm.io)