{"id":16379846,"url":"https://github.com/pante/reading-list","last_synced_at":"2026-04-22T15:30:18.757Z","repository":{"id":188964509,"uuid":"679180453","full_name":"Pante/reading-list","owner":"Pante","description":"A curated list of programming \u0026 software engineering articles, blogs \u0026 papers.","archived":false,"fork":false,"pushed_at":"2024-04-04T15:10:11.000Z","size":491,"stargazers_count":47,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-25T04:58:13.396Z","etag":null,"topics":["articles","reading-list"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Pante.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-16T09:17:08.000Z","updated_at":"2024-09-01T00:58:26.000Z","dependencies_parsed_at":"2023-08-17T17:35:32.006Z","dependency_job_id":"27d6df9a-864c-4adf-b7b9-e377bbaa7cbf","html_url":"https://github.com/Pante/reading-list","commit_stats":null,"previous_names":["pante/reading-list"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pante%2Freading-list","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pante%2Freading-list/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pante%2Freading-list/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pante%2Freading-list/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pante","download_url":"https://codeload.github.com/Pante/reading-list/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240031746,"owners_count":19737010,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["articles","reading-list"],"created_at":"2024-10-11T03:49:48.414Z","updated_at":"2026-04-22T15:30:18.706Z","avatar_url":"https://github.com/Pante.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pante's Reading List\n\nThis is a curated list of programming \u0026 software engineering articles that I've personally found to be interesting over the years. I hope it proves useful to others too.\n\nI periodically update this list. Please open an issue if any of the links are dead.\n\n\n## Sections\n* [Blogs](#blogs)\n  * [Companies](#companies)\n  * [Personal](#personal)\n* [Career](#career)\n* [Data Structures \u0026 Algorithms](#data-structures--algorithms)\n* [Data Design/Databases](#data-designdatabases)\n* [Deep dives/Performance/Retrospectives](#deep-divesperformanceretrospectives)\n* [Developer Experience/Tooling](#developer-experiencetooling)\n* [Distributed Systems/System Design](#distributed-systemssystem-design)\n* [Hardware/Low Level](#hardwarelow-level)\n* [History/News](#historynews)\n* [Humour/Rants/Satire](#humourrantssatire)\n* [Networking/Web](#networkingweb)\n* [Mobile Development](#mobile-development)\n* [Privacy \u0026 Security](#privacy--security)\n* [Programming Languages/Theory](#programming-languagestheory)\n  * [Functional Programming](#functional-programming)\n  * [Java/JVM](#javajvm)\n  * [Rust](#rust)\n  * [Theory](#theory)\n* [Software Engineering](#software-engineering)\n  * [Architecture/Design Patterns](#architecturedesign-patterns)\n  * [Code Studies](#code-studies)\n  * [Practices \u0026 Processes](#practices--processes)\n* [Uncategorized](#uncategorized)\n\n\n## Blogs\n\n### Companies\n* [Cloudflare's blog](https://blog.cloudflare.com)\n* [Discord's Blog](https://discord.com/blog/)\n* [Facebook's blog](https://engineering.fb.com)\n* [Github's Blog](https://github.blog/category/engineering/)\n* [Netflix Technology Blog](https://netflixtechblog.medium.com)\n* [Riot Game's Blog](https://technology.riotgames.com/)\n* [Shopify's Blog](https://shopify.engineering/)\n\n### Personal\n* [CodingHorror](https://blog.codinghorror.com)\n* [Joe Duffy's Blog](https://joeduffyblog.com)\n* [Joelonsoftware](https://www.joelonsoftware.com)\n* [Martin Fowler's blog](https://martinfowler.com)\n* [The Pragmatic Engineer's blog](https://blog.pragmaticengineer.com) (free) and [newsletter](https://blog.pragmaticengineer.com) (paid)\n* [Stephen Colebourne (creator of Joda Time)'s blog](https://blog.joda.org)\n* Steve Yegge's [blog](http://steve-yegge.blogspot.com) and [medium](https://steve-yegge.medium.com)\n* [stuffwithstuff](https://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function/)\n\n\n## Career\n* [10 hard-to-swallow truths they won't tell you about software engineer job](https://www.mensurdurakovic.com/hard-to-swallow-truths-they-wont-tell-you-about-software-engineer-job/)\n* [16x Engineer](https://16x.engineer)\n* [20 Questions a Software Engineer Should Ask When Joining a New Team](https://trstringer.com/20-questions-for-new-software-team/)\n* [8 Hard Truths I learned when I got laid off from my SWE job](https://www.stevenbuccini.com/8-hard-truths-on-getting-laid-off)\n* [A forty-year career](https://lethain.com/forty-year-career/)\n* [An Engineering Team where Everyone is a Leader](https://blog.pragmaticengineer.com/a-team-where-everyone-is-a-leader/)\n* [Becoming a go-to person gets you promoted. Here's how to do it as a software engineer.](https://read.highgrowthengineer.com/p/becoming-a-go-to-person-gets-you)\n* [Being Glue](https://noidea.dog/glue)\n* [Building trust as a software engineer](https://graphite.dev/blog/trust)\n* [Cruise Ships](https://blog.chriszacharias.com/cruise-ships)\n* [Engineering Ladders](http://www.engineeringladders.com)\n* [Falsehoods Junior Developers believe about becoming Senior](https://vadimkravcenko.com/shorts/falsehoods-junior-developers-believe-about-becoming-senior/)\n* [Hiring in Tech](https://kiranrao.in/blog/2021/08/14/hiring-in-tech/)\n* [How to land the manager-to-IC pivot](https://stackoverflow.blog/2023/09/13/how-to-land-the-manager-to-ic-pivot/?utm_campaign=the-overflow-newsletter\u0026utm_medium=email\u0026utm_source=iterable/)\n* [How to Lead a Project - as a Software Engineer](https://blog.pragmaticengineer.com/how-to-lead-a-project-in-software-development/)\n* [How to mentor software engineers](https://xdg.me/mentor-engineers/)\n* [Level Up](https://imwrightshardcode.com/2010/06/level-up/)\n* [Principal / Staff Engineer Resources](https://www.mayerdan.com/career/2022/01/04/principal-engineer-resources)\n* [Reddit Interview Problems: The Game of Life](https://alexgolec.dev/reddit-interview-problems-the-game-of-life/)\n* [Staff archetypes](https://staffeng.com/guides/staff-archetypes/)\n* [Software Engineer roadmap via books](https://medium.com/@iamjwr/software-engineer-roadmap-via-books-a6aabdc2589c)\n* [Tech Resume Advice](https://blog.huikang.dev/career/2022/10/17/resume-advice.html)\n* [The Two Healthbar Theory of Burnout](https://jdwyah.substack.com/p/the-two-healthbar-theory-of-burnout)\n* [The Two Tiers of Singapore's Tech Companies](http://elijames.org/the-two-tiers-of-singapores-tech-companies/)\n* [Things I've learned transitioning from engineer to engineering manager](https://blog.pragmaticengineer.com/things-ive-learned-transitioning-from-engineer-to-engineering-manager/)\n* [What a truly engaged engineer looks like](https://www.engineeringcalm.com/p/what-a-truly-engaged-engineer-looks)\n* [What does a CTO actually do?](https://vadimkravcenko.com/shorts/what-cto-does/)\n* [What I learned from Software Engineering at Google](https://swizec.com/blog/what-i-learned-from-software-engineering-at-google/)\n* [What is a Staff Engineer?](https://nishtahir.com/what-is-a-staff-engineer/)\n* [What we look for in a resume](https://huyenchip.com/2023/01/24/what-we-look-for-in-a-candidate.html)\n* [What’s going on with Google and Facebook?](https://interviewing.io/blog/google-facebook-hiring-freeze)\n* [What's it like as a Senior Engineer at Google?](https://www.zainrizvi.io/blog/whats-it-like-as-a-senior-engineer/)\n* [Why GitHub Won't Help You With Hiring](https://www.benfrederickson.com/github-wont-help-with-hiring/)\n* [Writing for Engineers](https://www.heinrichhartmann.com/posts/writing/)\n* [Your 2020 Guide for Surviving Interviewing as a Software Engineer](https://tracidini.medium.com/your-2020-guide-for-surviving-interviewing-as-a-software-engineer-8cc66cccdcbc)\n\n\n## Data Structures \u0026 Algorithms\n* [Analyzing New Unique Identifier Formats (UUIDv6, UUIDv7, and UUIDv8)](https://blog.devgenius.io/analyzing-new-unique-identifier-formats-uuidv6-uuidv7-and-uuidv8-d6cc5cd7391a)\n* [A primer on Roaring bitmaps: what they are and how they work](https://vikramoberoi.com/a-primer-on-roaring-bitmaps-what-they-are-and-how-they-work/)\n* [Beautiful Branchless Binary Search](https://probablydance.com/2023/04/27/beautiful-branchless-binary-search/)\n* [Concurrent Data Structure Design Walkthrough](https://questdb.io/blog/concurrent-lockfree-datastructure-design-walkthrough/)\n* Hierarchical Clearance-based Pathfinding\n    * [Part 1](https://harablog.wordpress.com/2009/01/29/clearance-based-pathfinding/)\n    * [Part 2](https://harablog.wordpress.com/2009/02/05/hierarchical-clearance-based-pathfinding/)\n    * [Part 3](https://harablog.wordpress.com/2009/02/12/clearance-based-pathfinding-with-probabilistic-roadmaps/)\n* [Parsing: The Solved Problem That Isn't](https://tratt.net/laurie/blog/2011/parsing_the_solved_problem_that_isnt.html)\n* [The Piece Table](https://darrenburns.net/posts/piece-table/)\n* [Unicode is harder than you think](https://mcilloni.ovh/2023/07/23/unicode-is-hard/)\n\n\n## Data Design/Databases\n* [A lesson in address storage](https://web.archive.org/web/20100124090037/http://www.endswithsaurus.com/2009/07/lesson-in-address-storage.html)\n* [Choose Postgres queue technology](https://adriano.fyi/posts/2023-09-24-choose-postgres-queue-technology/)\n* [Database Design For Audit Logging](https://vertabelo.com/blog/database-design-for-audit-logging/)\n* [Don't Do This](https://wiki.postgresql.org/wiki/Don%27t_Do_This)\n* [Hierarchies on Steroids #1: Convert an Adjacency List to Nested Sets](https://www.sqlservercentral.com/articles/hierarchies-on-steroids-1-convert-an-adjacency-list-to-nested-sets)\n* [How To Corrupt An SQLite Database File](https://www.sqlite.org/howtocorrupt.html)\n* [How we optimized PostgreSQL queries 100x](https://towardsdatascience.com/how-we-optimized-postgresql-queries-100x-ff52555eabe)\n* [In praise of PostgreSQL](https://drewdevault.com/2021/08/05/In-praise-of-Postgres.html)\n* [I'm All-In on Server-Side SQLite](https://fly.io/blog/all-in-on-sqlite-litestream/)\n* [Migrating a production database without any downtime](https://teamplify.com/blog/zero-downtime-DB-migrations/)\n* [Nine ways to shoot yourself in the foot with PostgreSQL](https://philbooth.me/blog/nine-ways-to-shoot-yourself-in-the-foot-with-postgresql)\n* [Relational Databases Aren’t Dinosaurs, They’re Sharks](https://www.simplethread.com/relational-databases-arent-dinosaurs-theyre-sharks/)\n* [Soft Deletion Probably Isn't Worth It](https://brandur.org/soft-deletion)\n* [The Inner Workings of Distributed Databases](https://questdb.io/blog/inner-workings-distributed-databases/)\n* [Towards Inserting One Billion Rows in SQLite Under A Minute](https://avi.im/blag/2021/fast-sqlite-inserts/)\n* [Transactional DDL in PostgreSQL: A Competitive Analysis](https://wiki.postgresql.org/wiki/Transactional_DDL_in_PostgreSQL:_A_Competitive_Analysis)\n* [Why You Should Never Use MongoDB](http://www.sarahmei.com/blog/2013/11/11/why-you-should-never-use-mongodb/)\n\n\n## Deep dives/Performance/Retrospectives\n* [4 Billion If Statements](https://andreasjhkarlsson.github.io/jekyll/update/2023/12/27/4-billion-if-statements.html)\n* [After 14 years in the industry, I still find programming difficult](https://www.piglei.com/articles/en-programming-is-still-hard-after-14-years/)\n* [Building a Date-Time Library: Timezones](https://medium.com/@matthiasngeo/the-problems-with-timezones-63c082c262f8) (Disclaimer: written by me)\n* [Burning money on paid ads for a dev tool – what we've learned](https://posthog.com/founders/dev-marketing-paid-ads)\n* [Discovering the Local Time Zone: Why It's a Hard Problem](https://web.archive.org/web/20130209072352/http://www.chronos-st.org/Discovering%20the%20Local%20Time%20Zone--Why%20It%27s%20a%20Hard%20Problem.html)\n* [Donald Knuth's thoughts on ChatGPT](https://cs.stanford.edu/~knuth/chatGPT20.txt)\n* [Down the ergonomic keyboard rabbit hole](https://blog.scottlogic.com/2020/10/09/ergo-rabbit-hole.html)\n* [Faster Chrome - Let The Compiler do the work](https://blog.chromium.org/2021/12/faster-chrome-let-the-compiler-do-the-work.html)\n* [From Laptop to Lambda: Outsourcing Everyday Jobs to Thousands of Transient Functional Containers](https://www.micahlerner.com/2021/07/24/from-laptop-to-lambda-outsourcing-everyday-jobs-to-thousands-of-transient-functional-containers.html)\n* [Goodbye, Twilio](https://blog.miguelgrinberg.com/post/goodbye-twilio)\n* [Here's a problem that *sounded* impossible...](https://web.mit.edu/jemorris/humor/500-miles)\n* [How I cut GTA Online loading times by 70%](https://nee.lv/2021/02/28/How-I-cut-GTA-Online-loading-times-by-70/)\n* [How They Bypass YouTube Video Download Throttling](https://blog.0x7d0.dev/history/how-they-bypass-youtube-video-download-throttling/)\n* [I built a garbage collector for a language that doesn't need one](https://claytonwramsey.github.io/2023/08/14/dumpster.html)\n* [I made JSON.parse() 2x faster](https://radex.io/react-native/json-parse/)\n* [Lessons learnt while trying to modernize some C code](https://dorinlazar.ro/220710-trying-to-modernize-goaccess.en/)\n* [Reflections on 10,000 Hours of Programming](https://matt-rickard.com/reflections-on-10-000-hours-of-programming)\n* [Saying Goodbye to the Best Gig I Ever Had](https://steve-yegge.medium.com/saying-goodbye-to-the-best-gig-i-ever-had-a33736833c1e)\n* [SIMD accelerated sorting in Java - how it works and why it was 3x faster](https://jbaker.io/2022/06/09/vectors-in-java/)\n* [The 100% Markdown Expedition](https://hacks.mozilla.org/2022/09/the-100-percent-markdown-expedition/)\n* [The Billion Row Challenge (1BRC) - Step-by-step from 71s to 1.7s](https://questdb.io/blog/billion-row-challenge-step-by-step/)\n* [The Hardest Program I've Ever Written](https://journal.stuffwithstuff.com/2015/09/08/the-hardest-program-ive-ever-written/#2)\n* [Two years for developing an MMO](https://raiding.zone/docs/posts/retrospective/#two-years-for-developing-an-mmo)\n* [Whose bug is this anyway?!?](https://www.codeofhonor.com/blog/whose-bug-is-this-anyway)\n* [Why Cities: Skylines 2 performs poorly](https://blog.paavo.me/cities-skylines-2-performance/)\n* [Why is processing a sorted array faster than processing an unsorted array](https://stackoverflow.com/questions/11227809/why-is-processing-a-sorted-array-faster-than-processing-an-unsorted-array)\n\n\n## Developer Experience/Tooling\n* [Automating a software company with GitHub Actions](https://posthog.com/blog/automating-a-software-company-with-github-actions)\n* [CI/CD/CF? — The DevOps toolchain’s “missing-link”](https://levelup.gitconnected.com/ci-cd-cf-the-devops-toolchains-missing-link-b5c88caf6282)\n* [Developer tools can be magic. Instead, they collect dust](https://www.pathsensitive.com/2021/03/developer-tools-can-be-magic-instead.html)\n* [DevEx: What Actually Drives Productivity](https://queue.acm.org/detail.cfm?id=3595878)\n* [From Blaze to Buck2 - A Brief History of Monorepo Build Systems](https://betterprogramming.pub/from-blaze-to-buck2-a-brief-history-of-modern-monorepo-build-systems-563becbcb987)\n* [History and future of Infrastructure as Code](https://www.endoflineblog.com/history-and-future-of-infrastructure-as-code)\n* [Semantic Versioning Will Not Save You](https://hynek.me/articles/semver-will-not-save-you/)\n* [Solving Hierarchical Tags using Nested Sets](https://blog.sapico.me/posts/hierarchical-tags-using-nested-sets/)\n* [Tools for better thinking](https://untools.co)\n* [What a good debugger can do](https://werat.dev/blog/what-a-good-debugger-can-do/)\n* [When to use Bazel](https://earthly.dev/blog/bazel-build/)\n\n\n## Distributed Systems/System Design\n* [10 Tips for Building Resilient Payment Systems](https://shopify.engineering/building-resilient-payment-systems)\n* [A Bluffers Guide to CRDTs in Riak](https://gist.github.com/russelldb/f92f44bdfb619e089a4d)\n* [A Tale of Two Dimensions](https://dominik-tornow.medium.com/a-tale-of-two-spectrums-df6035f4f0e1)\n* [An Interactive Intro to CRDTs](https://jakelazaroff.com/words/an-interactive-intro-to-crdts/)\n* [Applied Monotonicity: A Brief History of CRDTs in Riak](https://christophermeiklejohn.com/erlang/lasp/2019/03/08/monotonicity.html)\n* [Cache made consistent](https://engineering.fb.com/2022/06/08/core-data/cache-made-consistent/)\n* [Chain replication : how to build an effective KV-storage (part 1/2)](https://medium.com/coinmonks/chain-replication-how-to-build-an-effective-kv-storage-part-1-2-b0ce10d5afc3)\n* [Cola: a text CRDT for real-time collaborative editing](https://nomad.foo/blog/cola)\n* [Conflict-free Replicated Data Types](https://arxiv.org/pdf/1805.06358.pdf)\n* [CRDTs go brrr](https://josephg.com/blog/crdts-go-brrr/)\n* [Distributed Counter System Design](https://systemdesign.one/distributed-counter-system-design/)\n* [Garbage Collected CRDTs on the Web](http://uu.diva-portal.org/smash/get/diva2:1441174/FULLTEXT01.pdf)\n* [I'm All-In on Server-Side SQLite](https://fly.io/blog/all-in-on-sqlite-litestream/)\n* [Making CRDTs 98% More Efficient](https://jakelazaroff.com/words/making-crdts-98-percent-more-efficient/)\n* [Microservice Architecture Pattern: Saga](https://microservices.io/patterns/data/saga.html)\n* [Modern-Day Architecture Design Patterns for Software Professionals](https://betterprogramming.pub/modern-day-architecture-design-patterns-for-software-professionals-9056ee1ed977)\n* [Redis, Kafka or RabbitMQ: Which MicroServices Message Broker To Choose?](https://www.hillelwayne.com/post/influential-dead-languages/)\n* [Selected Sequence CRDTs](https://blog.r6l7.com/selected-sequence-crdts/)\n* [The Inner Workings of Distributed Databases](https://questdb.io/blog/inner-workings-distributed-databases/)\n* [The Seven Most Classic Patterns for Distributed Transactions](https://medium.com/@dongfuye/the-seven-most-classic-solutions-for-distributed-transaction-management-3f915f331e15)\n* [You Want Modules, Not Microservices](http://blogs.newardassociates.com/blog/2023/you-want-modules-not-microservices.html)\n\n\n## Hardware/Low Level\n* [Converting Integers to Floats Using Hyperfocus](https://blog.m-ou.se/floats/)\n* [Gallery of Processor Cache Effects](http://igoro.com/archive/gallery-of-processor-cache-effects/)\n* [GCC undefined behaviors are getting wild](http://blog.pkh.me/p/37-gcc-undefined-behaviors-are-getting-wild.html)\n* [GPU programming](https://enccs.github.io/gpu-programming/)\n* [GPS](https://ciechanow.ski/gps/)\n* [Handles are the better pointers](https://floooh.github.io/2018/06/17/handles-vs-pointers.html)\n* [How Doom Fire was Done](https://fabiensanglard.net/doom_fire_psx/)\n* [The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software](http://www.gotw.ca/publications/concurrency-ddj.htm)\n* [The legend of \"x86 CPUs decode instructions into RISC form internally\"](https://fanael.github.io/is-x86-risc-internally.html)\n* [Ubershaders: A Ridiculous Solution to an Impossible Problem](https://dolphin-emu.org/blog/2017/07/30/ubershaders/)\n* [WebAssembly's post-MVP future: A cartoon skill tree](https://hacks.mozilla.org/2018/10/webassemblys-post-mvp-future/)\n* [Why x86 Doesn’t Need to Die](https://chipsandcheese.com/2024/03/27/why-x86-doesnt-need-to-die/)\n\n\n## History/News\n* [A Conspiracy To Kill IE6](https://blog.chriszacharias.com/a-conspiracy-to-kill-ie6)\n* [Biggest Y Combinator Failed Startups](https://www.failory.com/blog/y-combinator-failures)\n* [Big Tech’s Biggest Bets (Or What It Takes to Build a Billion-User Platform)](https://www.matthewball.co/all/bigtechbiggestbets)\n* [Inside Elon Musk’s first meeting with Twitter employees](https://www.theverge.com/2022/11/10/23452196/elon-musk-twitter-employee-meeting-q-and-a)\n* [List of 2024 Leap Day Bugs](https://codeofmatt.com/list-of-2024-leap-day-bugs/)\n* Making Crash Bandicoot\n    * [Part 1](https://all-things-andy-gavin.com/2011/02/02/making-crash-bandicoot-part-1/)\n    * [Part 2](https://all-things-andy-gavin.com/2011/02/03/making-crash-bandicoot-part-2/)\n    * [Part 3](https://all-things-andy-gavin.com/2011/02/04/making-crash-bandicoot-part-3/)\n    * [Part 4](https://all-things-andy-gavin.com/2011/02/05/making-crash-bandicoot-part-4/)\n    * [Part 5](https://all-things-andy-gavin.com/2011/02/06/making-crash-bandicoot-part-5/)\n    * [Part 6](https://all-things-andy-gavin.com/2011/02/07/making-crash-bandicoot-part-6/)\n* [New Breakthrough Brings Matrix Multiplication Closer to Ideal](https://www.quantamagazine.org/new-breakthrough-brings-matrix-multiplication-closer-to-ideal-20240307/?utm_source=tldrnewsletter)\n* [Programming in 1987 Versus Today](https://ovid.github.io/blog/programming-in-1987-versus-today.html)\n* [Story: Redis and its creator antirez](https://blog.brachiosoft.com/en/posts/redis/)\n* [Stiff Asks, Great Programmers Answer](https://web.archive.org/web/20061124122032/http://www.stifflog.com/2006/10/16/stiff-asks-great-programmers-answer/)\n* [The Fall of Stack Overflow, Explained](https://newsletter.devmoh.co/p/the-fall-of-stack-overflow-explained?utm_medium=ios)\n* [The rise and fall of InVision](https://uxdesign.cc/the-rise-and-fall-of-invision-dc2d58c65534)\n* [The Saga of the Closure Compiler, and Why TypeScript Won](https://effectivetypescript.com/2023/09/27/closure-compiler/)\n* [The text file that runs the internet](https://www.theverge.com/24067997/robots-txt-ai-text-file-web-crawlers-spiders)\n* [The untold Story of SQLite With Richard Hipp](https://corecursive.com/066-sqlite-with-richard-hipp/)\n* [This is not your grandfather’s Perl](https://stackoverflow.blog/2022/09/08/this-is-not-your-grandfathers-perl/)\n* [Unladen Swallow Retrospective](https://qinsb.blogspot.com/2011/03/unladen-swallow-retrospective.html)\n* [What we can learn from “_why”, the long lost open source developer](https://github.com/readme/featured/why-the-lucky-stiff)\n* [What's worked in Computer Science: 1999 v. 2015](https://danluu.com/butler-lampson-1999/)\n* [Why Facebook doesn’t use Git](https://graphite.dev/blog/why-facebook-doesnt-use-git)\n\n\n## Humour/Rants/Satire\n* [A Collection of O'rly book Covers](https://boyter.org/2016/04/collection-orly-book-covers/)\n* [Dear Google Cloud: Your Deprecation Policy is Killing You](https://steve-yegge.medium.com/dear-google-cloud-your-deprecation-policy-is-killing-you-ee7525dc05dc)\n* [Expert Excuses for Not Writing Unit Tests](https://boyter.org/posts/expert-excuses-for-not-writing-unit-tests/)\n* [Golang is 𝘼𝙡𝙢𝙤𝙨𝙩 Perfect](https://www.lremes.com/posts/golang/)\n* [Golang is not a good language](https://xetera.dev/article/thoughts-on-go)\n* [Haskell Researchers Announce Discovery of Industry Programmer Who Gives a Shit](http://steve-yegge.blogspot.com/2010/12/haskell-researchers-announce-discovery.html?m=1)\n* [I Quit my Programmer Job to Become a Chicken](https://sebastiancarlos.com/how-i-quit-my-programmer-job-to-become-a-chicken-b733c20680b1)\n* [I ****ing hate Science](https://buttondown.email/hillelwayne/archive/i-ing-hate-science/)\n* [Introduction to Abject-Oriented Programming](https://web.archive.org/web/20131021215740/http://typicalprogrammer.com/abject-oriented/)\n* [Nothing has ever angered me more than The Google Play Team](https://danfitdegree.hashnode.dev/nothing-has-ever-angered-me-more-than-the-google-play-team)\n* [Open Source is Not About You](https://gist.github.com/richhickey/1563cddea1002958f96e7ba9519972d9)\n* [Manifesto for Half-Arsed Agile Software Development](https://www.halfarsedagilemanifesto.org)\n* [Re: clean up kernel_{read,write} \u0026 friends v2](https://lkml.org/lkml/2020/5/29/1038)\n* [React I Love You, But You're Bringing Me Down](https://marmelab.com/blog/2022/09/20/react-i-love-you.html)\n* [Reflecting on 18 years at Google](https://ln.hixie.ch/?start=1700627373\u0026count=1)\n* [The Future of discord.py](https://gist.github.com/Rapptz/4a2f62751b9600a31a0d3c78100287f1)\n* [The Javascript \"ecosystem\" is a hot mess and so is software development in general](https://nadh.in/blog/javascript-ecosystem-software-development-are-a-hot-mess/)\n* [The Tao of Programming](https://www.mit.edu/~xela/tao.html)\n* [This is my thinly veiled attempt to get you to use a library I wrote.](https://evinsellin.medium.com/this-is-my-thinly-veiled-attempt-to-get-you-to-use-a-library-i-wrote-9755dd0fa917)\n* [Weird architectures weren't supported to begin with](https://blog.yossarian.net/2021/02/28/Weird-architectures-werent-supported-to-begin-with)\n* [Why we at $FAMOUS_COMPANY Switched to $HYPED_TECHNOLOGY](https://saagarjha.com/blog/2020/05/10/why-we-at-famous-company-switched-to-hyped-technology/)\n\n\n## Networking/Web\n* [Best Practices for REST API Design](https://stackoverflow.blog/2020/03/02/best-practices-for-rest-api-design/)\n* [How Did We Get Here? - Dive into HTML5](http://diveinto.html5doctor.com/past.html)\n* [How Did REST Come To Mean The Opposite of REST?](https://htmx.org/essays/how-did-rest-come-to-mean-the-opposite-of-rest/)\n* [HTTP/2 and HTTP/3 explained](https://alexandrehtrb.github.io/posts/2024/03/http2-and-http3-explained/)\n* [Is WebAssembly the return of Java Applets \u0026 Flash?](https://steveklabnik.com/writing/is-webassembly-the-return-of-java-applets-flash)\n* [Temporal API is Awesome](https://taro.codes/posts/2023-08-23-temporal-api/)\n* [The HTTP QUERY Method](https://httpwg.org/http-extensions/draft-ietf-httpbis-safe-method-w-body.html)\n* [Understanding and implementing rate limiting in Node.js](https://blog.logrocket.com/rate-limiting-node-js/)\n* [Weird things engineers believe about Web development](https://birtles.blog/2024/01/06/weird-things-engineers-believe-about-development/)\n* [Where are IPv3 and IPv5?](https://wander.science/articles/ip-version/)\n* [Why is DNS still hard to learn?](https://jvns.ca/blog/2023/07/28/why-is-dns-still-hard-to-learn/)\n\n\n## Mobile Development\n* [Mobile is actually pretty hard.](https://jacobbartlett.substack.com/p/mobile-is-actually-pretty-hard)\n* [Playing haptics](https://developer.apple.com/design/human-interface-guidelines/playing-haptics)\n\n\n## Privacy \u0026 Security\n* [GPG And Me](https://moxie.org/2015/02/24/gpg-and-me.html)\n* [Memory Safe Languages in Android 13](https://security.googleblog.com/2022/12/memory-safe-languages-in-android-13.html?m=1)\n* [Secure by Design: Google’s Perspective on Memory Safety](https://security.googleblog.com/2024/03/secure-by-design-googles-perspective-on.html)\n* [The PGP Problem](https://latacora.micro.blog/2019/07/16/the-pgp-problem.html)\n* [Top Mental Health and Prayer Apps Fail Spectacularly at Privacy, Security](https://foundation.mozilla.org/en/blog/top-mental-health-and-prayer-apps-fail-spectacularly-at-privacy-security/)\n* [What’s the matter with PGP?](https://blog.cryptographyengineering.com/2014/08/13/whats-matter-with-pgp/)\n* [Zanzibar: Google’s Consistent, Global Authorization System](https://www.usenix.org/system/files/atc19-pang.pdf)\n\n\n## Programming Languages/Theory\n* [A response to \"Erlang - overhyped or underestimated\"](http://jlouisramblings.blogspot.com/2010/12/response-to-erlang-overhyped-or.html)\n* [A taste of Coq and correct code by construction](https://betterprogramming.pub/a-taste-of-coq-and-correct-code-by-construction-111bf74d3b98)\n* [Being Popular](http://paulgraham.com/popular.html)\n* [Blogging about Midori](https://joeduffyblog.com/2015/11/03/blogging-about-midori/)\n* [Crafting Interpreters](https://craftinginterpreters.com)\n* [C++ is the next C++](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2657r0.html)\n* [Does Go Have Subtyping?](https://journal.stuffwithstuff.com/2023/10/19/does-go-have-subtyping/)\n* [EXCEPTION HANDLING: A FALSE SENSE OF SECURITY](http://ptgmedia.pearsoncmg.com/images/020163371x/supplements/Exception_Handling_Article.html)\n* [Flattening ASTs (and Other Compiler Data Structures)](https://www.cs.cornell.edu/~asampson/blog/flattening.html)\n* [Generics can make your Go code slower](https://planetscale.com/blog/generics-can-make-your-go-code-slower)\n* [Go: the Good, the Bad and the Ugly](https://bluxte.net/musings/2018/04/10/go-good-bad-ugly/#the-good)\n* I want off Mr. Golang's Wild Ride\n    * [Original article](https://fasterthanli.me/articles/i-want-off-mr-golangs-wild-ride)\n    * [Lies we tell ourselves to keep using Golang](https://fasterthanli.me/articles/lies-we-tell-ourselves-to-keep-using-golang)\n    * [I won free load testing](https://fasterthanli.me/articles/i-won-free-load-testing)\n* [Make Invalid States Unrepresentable](https://www.awwsmm.com/blog/make-invalid-states-unrepresentable)\n* [My Reaction to Dr. Stroustrup’s Recent Memory Safety Comments](https://www.thecodedmessage.com/posts/stroustrup-response/)\n* [Old Neglected Theorems Are Still Theorems](https://existentialtype.wordpress.com/2014/03/20/old-neglected-theorems-are-still-theorems/)\n* [Revisiting Prechelt’s paper and follow-ups comparing Java, Lisp, C/C++ and scripting languages](https://renato.athaydes.com/posts/revisiting-prechelt-paper-comparing-languages.html)\n* [Should You Use Upper Bound Version Constraints?](https://iscinumpy.dev/post/bound-version-constraints/)\n* [So, You Want To Write Your Own Language?](https://digitalmars.com/articles/b89.html)\n* [Structured Concurrency Anniversary](https://elizarov.medium.com/structured-concurrency-anniversary-f2cc748b2401)\n* [The Heart of a Language Server](https://rust-analyzer.github.io//blog/2023/12/26/the-heart-of-a-language-server.html)\n* [The Non-Productive Programmer (NPP)](https://gerlacdt.github.io/posts/nonproductive-programmer/)\n* [V Language Review (2023)](https://n-skvortsov-1997.github.io/reviews/)\n* [Which Interpreters are Faster, AST or Bytecode?](https://stefan-marr.de/2023/10/ast-vs-bytecode-interpreters/)\n* [Why nullable types](https://medium.com/dartlang/why-nullable-types-7dd93c28c87a)\n\n### Functional Programming\n* [Advantages of Function Programming](https://typeable.io/blog/2021-02-26-fp-pros.html)\n* [Monads For The Rest Of Us](https://arialdomartini.github.io/monads-for-the-rest-of-us)\n* [Reducing bugs with tight types](https://gileschamberlin.com/2023/11/02/reducing-bugs-with-tight-types/)\n* [Why Functional Programming Matters](https://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.pdf)\n\n### Java/JVM\n* [Circumventing the JVM's bytecode verifier](https://anthony.som.codes/blog/2019-12-30-jvm-hackery-noverify/)\n* [Don’t call it a comeback: Why Java is still champ](https://github.com/readme/featured/java-programming-language)\n* [Finalizing the Foreign APIs](https://inside.java/2021/09/16/finalizing-the-foreign-apis/)\n* [GraalVM at Facebook](https://medium.com/graalvm/graalvm-at-facebook-af09338ac519)\n* [How To Do Logging In Java](https://www.marcobehler.com/guides/java-logging)\n* [Isolates and Compressed References: More Flexible and Efficient Memory Management via GraalVM](https://medium.com/graalvm/isolates-and-compressed-references-more-flexible-and-efficient-memory-management-for-graalvm-a044cc50b67e)\n* [I've promised myself never to use Gradle](https://www.andreinc.net/2022/04/01/ive-promised-myself-never-to-use-gradle)\n* [Overhead of Returning Optional Values in Java and Rust](https://pkolaczk.github.io/overhead-of-optional/)\n* [Java is Still Free](https://docs.google.com/document/d/1nFGazvrCvHMZJgFstlbzoHjpAVwv5DEdnaBr_5pKuHo/mobilebasic)\n* [Java Objects Inside Out](https://shipilev.net/jvm/objects-inside-out/#_jdks)\n* [JDK 17 G1/Parallel GC changes](https://tschatzl.github.io/2021/09/16/jdk17-g1-parallel-gc-changes.html)\n* [JVM Advent Calendar: A Beginner's Guide to Java Agents](https://dzone.com/articles/jvm-advent-calendar-a-beginners-guide-to-java-agen)\n* [JVM Anatomy Quarks](https://shipilev.net/jvm/anatomy-quarks/)\n* [JVM Internals](https://blog.jamesdbloom.com/JVMInternals.html)\n* [My final take on Gradle (vs. Maven)](https://blog.frankel.ch/final-take-gradle/)\n* [On the Performance of User-Mode Threads and Coroutine](https://inside.java/2020/08/07/loom-performance/)\n* [Phantom types in Java](http://gabrielsw.blogspot.com/2012/09/phantom-types-in-java.html)\n* [Pros and Cons for Using GraalVM Native-Images](https://dzone.com/articles/profiling-native-images-in-java)\n* State of Valhalla\n    * [2020 Part 1](https://cr.openjdk.org/~briangoetz/valhalla/sov/01-background.html)\n    * [2020 Part 2](https://cr.openjdk.org/~briangoetz/valhalla/sov/02-object-model.html)\n    * [2021 Part 1](https://openjdk.org/projects/valhalla/design-notes/state-of-valhalla/01-background)\n    * [2021 Part 2](https://openjdk.org/projects/valhalla/design-notes/state-of-valhalla/02-object-model)\n    * [2021 Part 3](https://openjdk.org/projects/valhalla/design-notes/state-of-valhalla/03-vm-model)\n* [String Tapas Redux](https://github.com/openjdk/amber-docs/blob/master/site/design-notes/templated-strings.md)\n* [Using Java's Project Loom to build more reliable distributed systems](https://jbaker.io/2022/05/09/project-loom-for-distributed-systems/)\n* [Virtual Threads: New Foundations for High-Scale Java Applications](https://www.infoq.com/articles/java-virtual-threads/)\n* [What About the Performance of Java 8 Lambdas](https://www.beyondjava.net/performance-java-8-lambdas)\n* [What is JEP-303 or reinventing `invokedynamic`](https://medium.com/@tagir_valeev/what-is-jep-303-or-reinventing-invokedynamic-4c43d84626eb)\n\n### Rust\n* [Asynchronous clean-up](https://without.boats/blog/asynchronous-clean-up/)\n* [C++ is faster and safer than Rust: benchmarked by Yandex](https://pvs-studio.com/en/blog/posts/0733/)\n* [Fearless Concurrency with Rust](https://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html)\n* [How Rust went from a side project to the world’s most-loved programming language](https://www.technologyreview.com/2023/02/14/1067869/rust-worlds-fastest-growing-programming-language/)\n* How to write really slow Rust code\n    * [Part 1](https://renato.athaydes.com/posts/how-to-write-slow-rust-code.html)\n    * [Part 2](https://renato.athaydes.com/posts/how-to-write-slow-rust-code-part-2.html)\n* [Rust has a small standard library (and that's ok)](https://blog.nindalf.com/posts/rust-stdlib/)\n* [The Future is Rusty](https://earthly.dev/blog/future-is-rusty/)\n* [The Rust I Wanted Had No Future](https://graydon2.dreamwidth.org/307291.html)\n* [This isn't the way to speed up Rust compile times](https://xeiaso.net/blog/serde-precompiled-stupid)\n* [Using Rust at a startup: A cautionary tale](https://mdwdotla.medium.com/using-rust-at-a-startup-a-cautionary-tale-42ab823d9454)\n* [What is Rust and why is it so popular?](https://stackoverflow.blog/2020/01/20/what-is-rust-and-why-is-it-so-popular/)\n\n### Theory\n* [15 Years of Concurrency](https://joeduffyblog.com/2016/11/30/15-years-of-concurrency/)\n* [Beautiful Concurrency](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/beautiful.pdf)\n* [Beyond Exception Handling: Conditions and Restarts](https://gigamonkeys.com/book/beyond-exception-handling-conditions-and-restarts.html)\n* [Challenging LR Parsing](https://rust-analyzer.github.io//blog/2020/09/16/challeging-LR-parsing.html)\n* [Compile-time and short-circuit evaluation](https://c3.handmade.network/blog/p/8773-compile-time_and_short-circuit_evaluation)\n* [Compiler Optimizations Are Hard Because They Forget](https://faultlore.com/blah/oops-that-was-important/)\n* [Considerations for programming language design: a rebuttal](https://medium.com/hackernoon/considerations-for-programming-language-design-a-rebuttal-5fb7ef2fd4ba)\n* [Invariants: A Better Debugger?](https://brooker.co.za/blog/2023/07/28/ds-testing.html)\n* [Literate programming: Knuth is doing it wrong](https://akkartik.name/post/literate-programming)\n* [Notes on structured concurrency, or: Go statement considered harmful](https://vorpus.org/blog/notes-on-structured-concurrency-or-go-statement-considered-harmful/#what-is-a-goto-statement-anyway)\n* [Meta-compilation](https://web.stanford.edu/class/archive/cs/cs295/cs295.1086/lectures/donohue-slides.pdf)\n* [Reducing boilerplate in finally tagless style](https://ro-che.info/articles/2016-02-03-finally-tagless-boilerplate)\n* [Programming Paradigms for Dummies: What Every Programmer Should Know](https://www.info.ucl.ac.be/~pvr/VanRoyChapter.pdf)\n* [Representing Heterogeneous Data](https://journal.stuffwithstuff.com/2023/08/04/representing-heterogeneous-data/)\n* [The Impoliteness of Overriding Methods](https://journal.stuffwithstuff.com/2012/12/19/the-impoliteness-of-overriding-methods/)\n* [The Problem with Threads](https://digitalassets.lib.berkeley.edu/techreports/ucb/text/EECS-2006-1.pdf)\n* [The Trouble with Checked Exceptions A Conversation with Anders Hejlsberg, Part II](https://www.artima.com/articles/the-trouble-with-checked-exceptions)\n* [What Color is Your Function?](https://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function/)\n* [Types vs Sets](https://lawrencecpaulson.github.io/2022/03/16/Types_vs_Sets.html)\n\n\n## Software Engineering\n* [Agile and the Long Crisis of Software](https://logicmag.io/clouds/agile-and-the-long-crisis-of-software/)\n* [Best Books For The Inquisitive Software Engineer](https://gerlacdt.github.io/posts/programming-books/)\n* [Bullshit Software Projects](https://earthly.dev/blog/bullshit-software-projects/)\n* [How I learned to turn Impostor Syndrome into an Advantage - The Impostor's Advantage](https://www.zainrizvi.io/blog/the-impostors-advantage/)\n* [Imaginary Problems Are the Root of Bad Software](https://cerebralab.com/Imaginary_Problems_Are_the_Root_of_Bad_Software)\n* [Magnitudes of exploration](https://lethain.com/magnitudes-of-exploration/)\n* [McKinsey Developer Productivity Review](https://dannorth.net/mckinsey-review/?utm_source=substack\u0026utm_medium=email)\n* [Measuring developer productivity? A response to McKinsey](https://newsletter.pragmaticengineer.com/p/measuring-developer-productivity)\n* [New grad vs Senior Developer](https://ericlippert.com/2020/03/27/new-grad-vs-senior-dev/)\n* [The care and feeding of software engineers (or, why engineers are grumpy)](https://humanwhocodes.com/blog/2012/06/12/the-care-and-feeding-of-software-engineers-or-why-engineers-are-grumpy/)\n* [The Differences Between a Junior, Mid-Level, and Senior Developer](https://betterprogramming.pub/the-differences-between-a-junior-mid-level-and-senior-developer-bb2cb2eb000d)\n* [The forgotten mistake that killed Japan’s software industry](https://www.disruptingjapan.com/the-forgotten-mistake-that-killed-japans-software-industry/)\n* [The Worst Programmer I know](https://dannorth.net/2023/09/02/the-worst-programmer/)\n* [What’s the difference between software engineering and computer science degrees?](https://stackoverflow.blog/2023/04/10/whats-the-difference-between-software-engineering-and-computer-science-degrees/)\n* [What Breaks Google?](https://research.google/pubs/what-breaks-google/)\n* [Why Twitter Didn’t Go Down: From a Real Twitter SRE](https://matthewtejo.substack.com/p/why-twitter-didnt-go-down-from-a)\n\n### Architecture/Design Patterns\n* [Big Ball of Mud](http://www.laputan.org/mud/mud.html)\n* [Collection Pipelines](https://martinfowler.com/articles/collection-pipeline/)\n* [Feature Toggles (aka Feature Flags)](https://martinfowler.com/articles/feature-toggles.html)\n* [Kernighan and Pike were right: Do one thing, and do it well](https://medium.com/source-and-buggy/do-one-thing-and-do-it-well-886b11a5d21)\n* [Scaling microservices with gRPC: part one](https://www.thoughtworks.com/en-sg/insights/blog/microservices/scaling-microservices-gRPC-part-one)\n* [When to *not* use SOLID principles](https://softwareengineering.stackexchange.com/questions/447532/when-to-not-use-solid-principles)\n* [Why I don’t buy “duplication is cheaper than the wrong abstraction”](https://www.codewithjason.com/duplication-cheaper-wrong-abstraction/)\n* [Write code that is easy to delete, not easy to extend.](https://programmingisterrible.com/post/139222674273/write-code-that-is-easy-to-delete-not-easy-to)\n\n### Case Studies\n* [Behind the scenes of Singapore’s nationwide ticket operating system for the National Day Parade](https://medium.com/open-government-products/behind-the-scenes-of-singapores-nationwide-ticket-operating-system-for-the-national-day-parade-3af0ae6e72ff)\n* [Cache made consistent](https://engineering.fb.com/2022/06/08/core-data/cache-made-consistent/)\n* [How Discord Supercharges Network Disks for Extreme Low Latency](https://discord.com/blog/how-discord-supercharges-network-disks-for-extreme-low-latency)\n* [How to shuffle songs](https://engineering.atspotify.com/2014/02/how-to-shuffle-songs/)\n* [How we store and process millions of orders daily](https://engineering.grab.com/how-we-store-millions-orders)\n* [Integrating Rust and C++ in Firefox](https://manishearth.github.io/blog/2021/02/22/integrating-rust-and-c-plus-plus-in-firefox/)\n* [Meta's serverless platform processes trillions of function calls a day](https://read.engineerscodex.com/p/meta-xfaas-serverless-functions-explained)\n* [Post-Incident Review on the Atlassian April 2022 outage](https://www.atlassian.com/engineering/post-incident-review-april-2022-outage)\n* [Ready for changes with Hexagonal Architecture](https://netflixtechblog.com/ready-for-changes-with-hexagonal-architecture-b315ec967749)\n* [Scaling GraphQL at PayPal](https://medium.com/paypal-tech/scaling-graphql-at-paypal-b5b5ac098810)\n* [Seeing through hardware counters: a journey to threefold performance increase](https://netflixtechblog.com/seeing-through-hardware-counters-a-journey-to-threefold-performance-increase-2721924a2822)\n* [Taming Go’s Memory Usage, or How We Avoided Rewriting Our Client in Rust](https://www.akitasoftware.com/blog-posts/taming-gos-memory-usage-or-how-we-avoided-rewriting-our-client-in-rust)\n* [TAO: The power of the graph](https://engineering.fb.com/2013/06/25/core-infra/tao-the-power-of-the-graph/)\n* [The Story of the PS2’s Backwards Compatibility From the Engineer Who Built It](https://freelansations.medium.com/the-story-of-the-ps2s-backwards-compatibility-from-the-engineer-who-built-it-ec39cf5a0353)\n* Uber's rewrite story (from different perspectives)\n    * [Uber's Crazy YOLO App Rewrite, From the Front Seat](https://blog.pragmaticengineer.com/uber-app-rewrite-yolo/)\n    * [McLaren Stanley's account](https://threadreaderapp.com/thread/1336890442768547845.html)\n* [UK air traffic control meltdown](https://jameshaydon.github.io/nats-fail/)\n* [Upgrading GitHub to Ruby](https://github.blog/2020-08-25-upgrading-github-to-ruby-2-7/)\n* [Why We Started Putting Unpopular Assets in Memory](https://blog.cloudflare.com/why-we-started-putting-unpopular-assets-in-memory/)\n\n### Practices \u0026 Processes\n* [10 Proven Techniques for More Effective Code Reviews](https://www.dainemawer.com/articles/ten-proven-techniques-for-more-effective-code-reviews)\n* [17 Mental Models, biases and fallacies that Software Developers should know](https://medium.com/@santiagobasulto/17-mental-models-biases-and-fallacies-for-software-developers-42f107bfcb84)\n* [3 tribes of programming](https://josephg.com/blog/3-tribes/)\n* [20 Things I’ve Learned in my 20 Years as a Software Engineer](https://www.simplethread.com/20-things-ive-learned-in-my-20-years-as-a-software-engineer/)\n* [A Generation Lost in the Bazaar](https://queue.acm.org/detail.cfm?id=2349257)\n* [A layman's guide to thinking like the self-aware smol brained](https://grugbrain.dev)\n* [Cargo Cult Software Engineering](https://stevemcconnell.com/articles/cargo-cult-software-engineering/)\n* [Choose Boring Technology](https://mcfunley.com/choose-boring-technology)\n* [Common Bugs in Writing](https://www.cs.columbia.edu/~hgs/etc/writing-bugs.html)\n* [Documentation unit tests](https://simonwillison.net/2018/Jul/28/documentation-unit-tests/)\n* [Empirically supported code review best practices](https://graphite.dev/blog/code-review-best-practices)\n* [Evidence Based Scheduling](https://www.joelonsoftware.com/2007/10/26/evidence-based-scheduling/)\n* [Famous Laws of Software Development](https://www.timsommer.be/famous-laws-of-software-development/)\n* [Five Worlds](https://www.joelonsoftware.com/2002/05/06/five-worlds/)\n* [Google's technical writing blog](https://developers.google.com/tech-writing/one/words)\n* [How does one get as close as possible to mastering software engineering?](https://archive.is/2021.08.23-182552/https://www.quora.com/How-does-one-get-as-close-as-possible-to-mastering-software-engineering/answer/Alan-Kay-11)\n* [How Google takes the pain out of code reviews, with 97% dev satisfaction](https://read.engineerscodex.com/p/how-google-takes-the-pain-out-of)\n* [How to Make Your Code Reviewer Fall in Love with You](https://mtlynch.io/code-review-love/)\n* [How to Thrive as an Average Programmer](https://betterprogramming.pub/how-to-thrive-as-an-average-programmer-1dd202540ac)\n* [Keeping code simple: moving fast by avoiding over-engineering](https://graphite.dev/blog/keeping-code-simple)\n* [Investing in Internal Documentation: A Brick-by-Brick Guide for Startups](https://review.firstround.com/investing-in-internal-documentation-a-brick-by-brick-guide-for-startups)\n* [Lessons from 6 software rewrite stories](https://medium.com/@herbcaudill/lessons-from-6-software-rewrite-stories-635e4c8f7c22)\n* [Pair Programming](https://collaboration.csc.ncsu.edu/laurie/Papers/ESE%20WilliamsPairProgramming_V2.pdf)\n* [Random Thoughts 15 Years into Software Engineering](https://roughlywritten.substack.com/p/random-thoughts-15-years-into-software)\n* [Software engineering practices](https://simonwillison.net/2022/Oct/1/software-engineering-practices/)\n* [The 10x Programmer Myth](https://www.simplethread.com/the-10x-programmer-myth/)\n* [The Power of Ten – Rules for Developing Safety Critical Code](http://spinroot.com/gerard/pdf/P10.pdf)\n* [The Pragmatic Engineer Test: 12 Questions on Engineering Culture](https://blog.pragmaticengineer.com/pragmatic-engineer-test/)\n* [The Joel Test: 12 Steps to Better Code](https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/)\n* [The Twelve-Factor App](https://12factor.net)\n* [Things they didn’t teach you about Software Engineering](https://vadimkravcenko.com/shorts/things-they-didnt-teach-you/)\n* [Top Five (Wrong) Reasons You Don’t Have Testers](https://www.joelonsoftware.com/2000/04/30/top-five-wrong-reasons-you-dont-have-testers/)\n* [What distinguishes great software engineers?](https://faculty.washington.edu/ajko/papers/Li2019WhatDistinguishesEngineers.pdf)\n* [What we talk about when we talk about impostor syndrome](https://stackoverflow.blog/2023/09/11/what-we-talk-about-when-we-talk-about-imposter-syndrome/?utm_campaign=the-overflow-newsletter\u0026utm_medium=email\u0026utm_source=iterable/)\n\n\n## Uncategorized\n* [10 Papers Every Developer Should Read (At Least Twice)](https://michaelfeathers.silvrback.com/10-papers-every-developer-should-read-at-least-twice)\n* [Falsehoods Programmer Believe About Addresses](https://www.mjt.me.uk/posts/falsehoods-programmers-believe-about-addresses/)\n* [Falsehoods Programmers Believe About Email](https://beesbuzz.biz/code/439-Falsehoods-programmers-believe-about-email)\n* [Falsehoods Programmers Believe About Names – With Examples](https://shinesolutions.com/2018/01/08/falsehoods-programmers-believe-about-names-with-examples/)\n* [Falsehoods programmers believe about time zones](https://www.zainrizvi.io/blog/falsehoods-programmers-believe-about-time-zones/)\n* [Godot binding system explained](https://gist.github.com/reduz/cb05fe96079e46785f08a79ec3b0ef21)\n* [Godot is not the new Unity - The anatomy of a Godot API call](https://sampruden.github.io/posts/godot-is-not-the-new-unity/)\n* [How To Ask Questions The Smart Way](http://www.catb.org/~esr/faqs/smart-questions.html)\n* [It takes a PhD to develop that](https://blog.royalsloth.eu/posts/it-takes-a-phd-to-develop-that/)\n* [It's probably time to stop recommending Clean Code](https://qntm.org/clean)\n* [Linguistic Antipatterns](https://www.linguistic-antipatterns.com/?tab=%22Confusable-methods%22)\n* [Marketing for maintainers: Promote your project to users and contributors](https://github.blog/2022-07-28-marketing-for-maintainers-how-to-promote-your-project-to-both-users-and-contributors/)\n* [Patterns in confusing explanations](https://jvns.ca/blog/confusing-explanations/)\n* [Please Don't Learn to Code](https://blog.codinghorror.com/please-dont-learn-to-code/)\n* [Programming Sucks](https://www.stilldrinking.org/programming-sucks)\n* [Prompt injection explained, with video, slides, and a transcript](https://simonwillison.net/2023/May/2/prompt-injection-explained/)\n* [Recommended Reading for Developers](https://medium.com/dartlang/why-nullable-types-7dd93c28c87a)\n* [Second Part: The SLOs Playbook](https://medium.com/tblx-insider/second-part-the-slos-playbook-edf995a89f90)\n* [Small Pleasures of Programming](https://terrycrowley.medium.com/small-pleasures-of-programming-ae4f50dde67a)\n* [Stop Optimizing for Tutorials](https://matduggan.com/why-are-containers-insecure-by-default/)\n* [Teach Yourself Programming in Ten Years](http://www.norvig.com/21-days.html)\n* [The Decline of Usability](https://datagubbe.se/decusab/)\n* [The silent majority](https://vadimkravcenko.com/shorts/the-silent-majority/)\n* [The Two Generals Problem](https://haydenjames.io/the-two-generals-problem/)\n* [Timezones](https://stackoverflow.com/tags/timezone/info)\n* [Whatever happened to programming?](https://reprog.wordpress.com/2010/03/03/whatever-happened-to-programming/)\n* [Why the C Language Will Never Stop You from Making Mistakes](https://thephd.dev/your-c-compiler-and-standard-library-will-not-help-you)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpante%2Freading-list","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpante%2Freading-list","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpante%2Freading-list/lists"}