Technical Learning Resources
Table of Contents
- 1. Distributed Systems
- 2. SysAdmin
- 3. Observability
- 4. Software Engineering
- 5. Understanding Computer Systems
- 6. Security
- 7. Networking
- 8. Peer to Peer
- 9. Documents and Spreadsheets
- 10. Bots, Archival and Web Scraping
- 11. Database & Data wrangling
- 12. Fun Stuff I want to learn someday
- 13. Kernel and Linux
- 14. BSD
- This list does not 1-1 relate to the syllabus
- I’ve categorized these links based on sensible topics they belong to.
- I do not intend to repeat links, in case links are repeated they should be cornered into one.
- No repeating links across syllabus.org as well
1. Distributed Systems
1.1. Reading lists
1.2. Blog-posts
- Carving The Scheduler Out Of Our Orchestrator · Fly
- GavinMendelGleason/manyworlds : A description of the relationship between databases, collaboration
- The end of a myth: Distributed transactions can scale
- Service mesh use cases (2020) | Hacker News
- Your computer is a distributed system
- No more DSLs: Implement and deploy a distributed system with a single program
- Avoiding fallback in distributed systems
- What is a CDN? How do CDNs work? | Hacker News
2. SysAdmin
2.1. Reading lists
2.2. Blog-posts
3. Observability
3.1. Blog-posts
- SRE
- [[https://oschvr.com/posts/what-id-like-as-sre/][Things I want as SRE/DevOps from Devs
- oschvr.com]]
- (no term)
- Getting Started with Server Health Checks | Better Stack Community
- Specifics
4. Software Engineering
4.1. Reading lists
- ossf/wg-best-practices-os-developers: The Best Practices for OSS
- gerasdf/InsecureProgramming: Insecure Programming by Example
- mtdvio/every-programmer-should-know
- geekodour/engblogposts
- danluu/debugging-stories
- kdeldycke/awesome-falsehood: 😱 Falsehoods Programmers Believe in
- jameslk/awesome-falsehoods
- hwayne/awesome-cold-showers
- mmcgrana/services-engineering
- lorin/awesome-limits: Examples of OS / system limits
- mfleming/performance-resources
4.2. Books
4.3. Blog-posts
- Practices
- Testing
- Security
- General
- Text Rendering Hates You - Faultlore
- Fast builds, secure builds. Choose two.
- Write Admin Tools From Day One
- Protocols, Not Platforms: A Technological Approach to Free Speech
- Writing The World’s Most Boring Quine
- Write good examples by starting with real code
- metablog: Glue: the Dark Matter of Software
- “That Won’t Work!” – The Personal Website of Ryan Flowers
- Two Different Views of What Decoupled Code Means | World of BS
- https://theoryof.predictable.software/articles/what-is-predictable-software/][What is Predictable Software?">Theory of Predictable Software]]
- “C is how the computer works” is a dangerous mindset for C programmers
- Comparing Compression « etbe - Russell Coker
- Making the best CLI
- How To Write Unmaintainable Code
- The programmer’s brain in the lands of exploration and production
- H.264 is magic: a technical walkthrough of a remarkable technology.
- Video Compression for Mere Mortals - Xe Iaso
- Performance
4.4. Tools
5. Understanding Computer Systems
5.1. Reading lists
5.2. Blog-posts
- ipc
- memory
- cpus
- A Survey of CPU Caches | Lukas Waymann
- Understanding Linux CPU stats | Scout APM Blog
- Myths Programmers Believe about CPU Caches – Software the Hard way
- Errata Security: How to teach endian
- Why do CPUs have multiple cache levels? | The ryg blog
- What does an idle CPU do? | Many But Finite
- The CPU Cost of Networking on a Host — David Ahern
- tracing
- process
- unicode
- The Absolute Minimum Every Software Developer Must Know About Unicode in 2023 (Still No Excuses!) @ tonsky.me
- Grapheme Clusters and Terminal Emulators | Lobsters
- Vaporwave and Unicode Analysis
- Pragmatic Unicode | Ned Batchelder
- Codepoints/awesome-codepoints: Awesome Code Points
- Not everything is UTF8
- The journey of a word: how text ends up on a page
- Programming with Unicode — Programming with Unicode
- What Every Programmer Absolutely, Positively Needs to Know About Encodings an…
- UTF16 vs UTF8
- Dark corners of Unicode / fuzzy notepad
- Unicode support. What does that actually mean? 😃 | Ben E. C. Boyter
- The Absolute Minimum Every Software Developer should know about unicode
- únicode is hard – Terence Eden’s Blog
- How Python does Unicode
- Everything you did not want to know about Unicode in Python 3
- UTF-8 and Unicode FAQ
- A Programmer’s Introduction to Unicode – Nathan Reed’s coding blog
- containers and virtualization
6. Security
6.1. Books
6.2. Reading lists
7. Networking
7.1. Blog-posts
- General
- DNS
- Guides
- Others
- Security
- Fun stuff
- Onprem vpn stuffz
- Distributing files via DNS | Frederic Cambus
- DNSFS. Store your files in others DNS resolver caches
- GitHub - aaronjanse/dns-over-wikipedia: Redirect `.idk` domains using Wikipedia
- James Routley | Let’s hand write DNS messages
- Storing ASCII art in the DNS | Frederic Cambus
- Rule 53: if you can think of it, someone’s done it in the DNS
- others
- Fun stuff
- Guides
8. Peer to Peer
9. Documents and Spreadsheets
9.1. Blog-posts
11. Database & Data wrangling
11.1. Reading list
11.2. Blog-posts
- Learnings
- Puzzling Postgres: a story of solving an unreproducible performance issue | b…
- Hierarchical Structures in PostgreSQL
- Reddit’s database has two tables | Kevin Burke
- Building data-centric apps with a reactive relational database
- Query Engines: Push vs. Pull
- 240 tables and no documentation? - by Alexey Makhotkin
- Opinions
- Bullshit Graph Database Performance Benchmarks | Max De Marzi
- Database as Code. Not only migrations | ProGramin’g thoughts
- The Database Ruins All Good Ideas
- Why You Should Never Use MongoDB « Sarah Mei
- Read from databases, write to APIs
- Some opinionated thoughts on SQL databases - Made of Bugs
- Against SQL
12. Fun Stuff I want to learn someday
13. Kernel and Linux
- Prepare the environment for developing Linux kernel with qemu. | by DaeSeok Y…
- GitHub - comfies/tldrlfs: Too Long; Didn’t Read Linux From Scratch
- LinuxKernelNewbies - Linux Kernel Newbies
- Linux Kernel Teaching — The Linux Kernel documentation
- Main Structure - LKCamp Documentation
- 18-SEP-2012: Writing Your First PAM Module
- C Internals
- RISC-V - Getting Started Guide — RISC-V - Getting Started Guide
- https://tldp.org/HOWTO/Assembly-HOWTO/