Why the titles are not subject names but some weird goals kind of thing?
I always had issues relating what I am studying to how I am going to use it. A foolish attempt to resolve this is to mention
the why of the syllabus
instead ofthe syllabus name(subject)
. Also itβs easier to tell the why then to assign a subject because the resources I have under them are somewhat unstructured.
Whenever I have a new information resource, I categorize it at entry. It can go under any one of these:
- This page,
/docs/updates/syllabi
- The full syllabus
- Dump file 1 Technical learning resources (need a better name no cap)
- Dump file 2 Engineering blogposts
- Dump file 3 anti_lib
I try my best to not repeat links across these pages. I have not setup any automated link checker for either duplication/backlinks/linkrots etc.
This is my syllabi created in October'22.
πΌ HB01: How businesses works #
Understand basic economics #
- The personal MBA (Book)
- Economics in One Lesson (Book)
- An-Introduction-to-Stock-Options-for-the-Tech-Entrepreneur-or-Startup-Employee
- Economics Γ©tudes: books, papers and coursesβ
- Supply & Demand: An interactive explainerβ
- The Guide to Stock Options Conversations | Hacker Newsβ
- Marginal Revolution Universityβ (Course)
- Financial Marketsβ (Course)
- Microeconomics: The Power of Marketsβ (Course)
- Innovation Systems for Science, Technology, Energyβ (Course)
Additional cherry for businesses #
- Understand how VCs workβ
- Venture Dealrβ
- Startup to exit: Lessons from a first-time founderβ
- Marketing to Minorities | Patrick McKenzie | BoS 2010β
- Strategy Letter V β Joel on Softwareβ
- Ask HN: Learning about fundraising as first-time tech founders | Hacker Newsβ
- The bubble has popped for unprofitable software companiesβ
- Working for a Dating Website (2015) | Hacker Newsβ
- /r/smallbzβ
Understand how to start #
- The Minimalist Entrepreneur (Book)
- MAKE Bootstrapper Handbook (Book)
- https://x.com/_swanand/status/1802609282380136563 (esop)
- Startup School: The First 100 Days - Stanford CS183F - Spring 2017 - YouTubeβ
- Startup Handbook by Julian Shapiroβ
- Patio11βs Greatest Hitsβ
- Start Small, Stay Smallβ
- Paul Buchheit at Startup School 08 - YouTubeβ
- Tyler tringas (StoreMapper): Micro Saas - YouTubeβ
- Bootstrapping Side Projects To Profit by Pieter Levelsβ
- David Heinemeier Hansson at Startup School 08 - YouTubeβ
π₯ HB02: Become more confident with problem solving #
Revisit the basics #
- [-] Grokking Algorithms (Book)
- How to solve it (Book)
- [-] Skienaβs Algorithmsβ (Course)
- GoDS (Go Data Structures)β
- Bitshifting Operationsβ (Course)
- Primegen Course
- Teaching, Playing, and Programming: Designing a Data Structureβ
Deal with long term fears #
- How to prove it (Book)
- Graphs
- Dynamic programming
- Optimization
- [-] Recursion
- Hash table & Bloom filters
- Immutable DS
π HB03: Get back at basic math #
Get introduced #
- Do basic school math for 7 days straight from KhanAcademy (Course)
- Why Math? (Book) : Basics Revisit
- Homepage for A Gentle Introduction to the Art of Mathematicsβ
- Notes on the Euler formula - Eli Benderskyβs websiteβ
- Pikuma: Fundamental Math for Game Developersβ
- Calculus Learning Guide β BetterExplainedβ
- Math β Susan Rigettiβ
- How to Read Mathematicsβ
- An Introduction to Number Theoryβ
- Number theory explained from first principlesβ
Resurface basic comp sci math #
Permutations and numbers #
Linear Algebra #
- Introduction to LA - GS (Book) | Graphical Notesβ
- Linear Algebraβ (Course)
- Algebra 1 | Math | Khan Academyβ
- Life Lesson from Stanford CS Prof John Ousterhout - YouTubeβ
- Essence of linear algebra - YouTubeβ (Course)
- LA done rightβ (Book)
π HB04: Get a grip over Web Development #
Get your HTTP basics right #
- [-] Basics
- How Did REST Come To Mean The Opposite of REST?β
- restful is a scam, but browsers are cool | Lobstersβ
- A New Definition of HTTPβ
- How HTTPS works - How HTTPS worksβ
- The state of HTTP in 2022β
- The HTTP crash course nobody asked for | Hacker Newsβ
- Use of HTTPS Resource Recordsβ
- Tracing HTTP Requests with tcpflow Β· Anantha Kumaranβ
- What Is a URL | Azeem Bande-Ali | Engineering Managerβ
- Introduction to HTTP Multipart | Hacker Newsβ
- Headers
- Caching
- SSE
- Cookies
- Usecases
React and Typescript way to mastery #
- Javascript
- JavaScript language overview - JavaScript | MDNβ
- Learn javascript in Y Minutesβ
- Modern Javascript: Everything you missed over the last 10 yearsβ
- Standard built-in objects - JavaScript | MDNβ
- [-] JavaScript Gardenβ
- Eloquent JavaScriptβ
- Understanding the Event Loop, Callbacks, Promises, and Async/Await in JSβ
- React
- State Management
- Client state
- Server state
- Typescript
Get a hold of web engineering #
- High Performance Browser Networkingβ (Book)
- The ultimate single-page appβ
- Load Testing: An Unorthodox Guideβ
- Engineering for Slow Internet | Hacker Newsβ
- The webβs clipboard, and how it stores data of different typesβ
- Optimizing images with the HTML picture tag | jfhrβ
- How many ways can you slice a URL and name the pieces? - Tantekβ
- Improving Performance with HTTP Streamingβ
- Video
- Devtools
- Browsers
- Web-workers
- Websockets
- The WebSocket Handbook | Hacker Newsβ
- Server-Sent Events, WebSockets, and HTTPβ
- Django 4.2 w async StreamingHttpResponse, SSE and PG LISTEN/NOTIFYβ
- I Wrote Websockets βFrom Scratchβ - YouTubeβ
- Websockets: The Powerful Protocolβ
- WebSockets for fun and profit - Stack Overflow Blogβ
- Implementerβs Guide to WebSockets - Cookie Engineerβs Web Logβ
- WebSockets: Shaping Real-time Communication | by Atakan Serbes | Oct, 2023 | Mediumβ
- Ask HN: How do you scale WebSocket? | Hacker Newsβ
- Woe be unto you for using a WebSocket | Hacker Newsβ
- Writing a toy WebSocket server from scratch | Hacker Newsβ
- Direct Sockets: Proposal for a future web platform API | Hacker Newsβ
- Show HN: DriftDB β an open source WebSocket backend for real-time appsβ
Time for Webassembly #
- The Go WebAssembly ABI at a Low Level - Xeβ
- WebAssembly and its platform targetsβ
- WASI Support in Go | Hacker Newsβ
- WebAssembly: A new development paradigm for the web - YouTubeβ
- The tug-of-war over server-side WebAssemblyβ
- Reaching the Unix Philosophyβs Logical Extreme with Webassembly - Xe Iasoβ
- www which wasm worksβ
- Understanding Wasm, Part 2: Whence Wasm - Chris Dickinsonβ
- Determinism is WebAssemblyβs hidden superpowerβ
- Performance of WebAssembly runtimes in 2023 | Frank DENIS random thoughts.β
- WebAssembly Text Code Samples | Hacker Newsβ
- The State of WebAssembly 2023β
- Adding Python support to Wasm Language Runtimesβ
- missing the point of webassembly | Lobstersβ
- Understanding every byte in a WASM module | Hacker Newsβ
- WASI 0.2.0 and Why It Matters | Hacker Newsβ
- FAAS in Go with WASM, WASI and Rust - Eli Benderskyβs websiteβ
- Check burntcarrot/wasmninjaβ
- A world to win: WebAssembly for the rest of us | Hacker Newsβ , Lobstersβ
- Tools
- Advanced
- Experiment
Other experiments with web that are worth #
Get your web security right #
- CS253 - Web Securityβ (Course)
- The Copenhagen Bookβ (Book)
- </> htmx ~ Web Security Basics (with htmx)β
- Everything You Ever Wanted to Know About Web Authenticationβ
- End-to-End Encryption in the Browser | Excalidraw Blogβ
- Certificates
- Aiken & Driscoll & Webbβ (Illustrated TLS and QUIC) π
- Why Certificate Lifecycle Automation Matters | Hacker Newsβ
- Introducing Sunlight, a CT implementation built for scalability, ease of operation, and reduced cost - Letβs Encryptβ
- We build X.509 chains so you donβt have to | Hacker Newsβ
- https://news.ycombinator.com/item?id=41106205
- Pwned Certificates on the Fediverse | Hacker Newsβ
- The Certificate Authority model does not work for LAN devices | Lobstersβ
- X CA managerβ
- Running oneβs own root Certificate Authority in 2023 | Hacker Newsβ
- HTTPS
- Mediocre Engineerβs guide to HTTPSβ
- TLS Certificateβ
- The ACME Protocol in Practice and Reality β Matt Holtβ
- The Embarrassing State of Enterprise ACME Supportβ
- Which Root Certificates should you trust? Find out with CertInfo - Raymii.orgβ
- Ask HN: Why SSL certs are not decentralized? | Hacker Newsβ
- Filling in the Knowledge Gap: HTTPS/TLS Certificates | Lobstersβ
- SSH over HTTPSβ
- The Difference Between Root Certificate Authorities, Intermediates, and Resellersβ
- Shortening the Letβs Encrypt chain of trust | Hacker Newsβ
- Understanding the Limitations of HTTPS β text/plainβ
- Easy HTTPS for your private networks | Hacker Newsβ
- HSTS preload adoption and challengesβ
- CSRF, CORS, and HTTP Security headers Demystifiedβ
- The fascinating world of HTTP Strict-Transport-Security | Ergomakeβ
- The browsers biggest TLS mistake | Lobstersβ
- Challenge Types - Letβs Encryptβ
- How CDNs Generate Certificates Β· Flyβ
- SSH PKI on top of Web PKI | Paulβs pageβ
- TLS
- What happens in a TLS handshake? | SSL handshake | Cloudflareβ
- Announcing Clipper: TLS-transparent HTTP debugging for native apps - jadeβs www siteβ
- MITMβing TLS/SSL for debugging purposesβ
- TLS overhead - netsekure rngβ
- Merkle Town: Explore the certificate transparency ecosystem | Hacker Newsβ
- SquareLemonm TLS Fingerprintingβ
- SNI
- Server Name Indication - Wikipediaβ
- Writing an SNI Proxy in 115 Lines of Goβ
- Things like green tunnel bypass SNI detection using things like http chunking etc.
- [-] CORS
- [-] Cache your CORS, for performance & profit | HTTP Toolkitβ
- Public CDNs Are Useless and Dangerous | HTTP Toolkitβ
- [-] A design philosophy for CORS middleware librariesβ
- Introduction to CORS for Go programmers - Eli Benderskyβs websiteβ
- CORS is such a mess. What are current best practices?β
- Figuring out the state of the art in CSRF protectionβ
- [-] CSRF
- [-] Cross-Site Request Forgery Preventionβ
- The State of CSRF Vulnerability in 2022 : netsecβ
- Exploring the SameSite cookie attribute for preventing CSRFβ
- What are CSRF tokens and how do they work?β
- CSRF, CORS, and HTTP Security headers Demystifiedβ
- I turned on CSP and all I got was this crappy lawsuit!β
π HB05: Computer graphics #
Basics of CG #
- A trip through the Graphics Pipeline 2011: Index | The ryg blogβ
- CS 4600 - Fall 2022 - Introduction to Computer Graphicsβ (Course)
- 3D Programming Fundamentals - YouTubeβ (Series)
- How do I become a graphics programmer?β
- The GJK Algorithm: A weird and beautiful way to do a simple thing | Hacker Newsβ
- CS 5610/6610 - Interactive Computer Graphicsβ (Course)
- The Book of Shadersβ (Book)
- LearnOpenGL - Introductionβ (Book)
- Animation and Interactivityβ
- https://mrl.cs.nyu.edu/~perlin/graphics/
Ray tracing #
WebGPU #
Easings #
ThreeJS #
- Three.js Tutorialsβ
- I wish I knew this before using React Three Fiberβ
- GitHub - pmndrs/drei: π₯ useful helpers for react-three-fiberβ
- React Three Fiber Cameraβs Explainedβ
- Build a 3D World in React with Three.js - {React Three Fiber Tutorial}β
- The magical world of Particles with React Three Fiber and Shadersβ
π HB06: Basic security knowledge upgrade #
Server, sessions and web #
OAuth and OIDC and Tokens #
- OAuth2
- OAuth.com - OAuth 2.0 Simplifiedβ (Book)
- A simple application of OAuth: Mastodonβs API - Dan Schnau dot comβ
- Sign in with GitHub in Go - Eli Benderskyβs websiteβ
- Google OAuth is broken (sort of) | Hacker Newsβ
- OAuth is Not User Authorizationβ
- Oh-Auth β Abusing OAuth to take over millions of accounts | Hacker Newsβ
- Why is OAuth still hard in 2023? | Hacker Newsβ
- OAuth 2 Simplified β’ Aaron Pareckiβ
- Does OAuth2 have a usability problem? (yes!)β
- An Introduction to OAuth 2 | DigitalOceanβ
- A Guide To OAuth 2.0 Grants - Alex Bilbieβ
- Understanding OAuth2 and OpenID Connectβ
- OIDC
- [-] Others
- [-] JWT
For personal knowledge #
Cryptography #
- CSCI-UA.9480: Introduction to Computer Securityβ (Course)
- An intensive introduction to cryptographyβ (Book)
- Cryptography 101 with Alfred Menezes β Video lectures, notes, and exercises in all areas of applied cryptographyβ
- Crypto 101β (Book)
- Practical Cryptography for Developersβ (Book)
- Cryptography | Computer science | Computing | Khan Academyβ (Course)
- Intuition for Cryptography | Azeem Bande-Ali | azeemba.comβ
- Going Bark: A Furryβs Guide to End-to-End Encryptionβ
- On the Word βNonceβ in Cryptography and the UK - Dhole Momentsβ
- https://gist.github.com/geekodour/fa5561f3873af9a3ff1e0675368e91a8
- How To Learn Cryptography as a Programmerβ
- Cryptography is not Magicβ
- [-] Passwords
π² HB07: Become functional #
Be at ease with Python #
- Fluent Python, the lizard bookβ (Book)
- Designing Pythonic library APIsβ
- Welcome! | practical-pythonβ
- Ten Python datetime pitfalls, and what libraries are (not) doing about it | Arie Bovenbergβ
- GitHub - dabeaz-course/python-mastery: Advanced Python Mastery (course by @dabeaz)β
- PEP 703 β Making the Global Interpreter Lock Optional in CPython | peps.python.orgβ π (Python GIL)
- Progress on no-GIL CPython [LWN.net]ββ
- How to create a Python package in 2022β
- Things Iβve learned about building CLI tools in Pythonβ
- How virtual environments workβ
- Thoughts on the Python packaging ecosystem | Pradyun Gedamβ
- Python Packages (Not well known but good)β
- Things Iβve learned about building CLI tools in Pythonβ
- zedr/clean-code-python: Clean Code concepts adapted for Pythonβ
- GitHub - satwikkansal/wtfpython: What the f*ck Python? π±β (Satwik all round A1 guy btw!)
- [-] Caching a lot of methods in Python - death and gravityβ
- [-] Python 3 Module of the Week β PyMOTW 3β
- Generator Tricks for Systems Programmersβ
- David Beazley - Python Concurrency From the Ground Up: LIVE! - PyCon 2015 - YouTubeβ
- https://github.com/dabeaz/blog/blob/main/2023/three-problems.md
- https://github.com/dabeaz/blog/blob/main/2023/different-refactoring.md
- David Beazley: Discovering Python - PyCon 2014 - YouTubeβ
- https://github.com/dabeaz/blog/blob/main/2021/barely-interface.md
- Namespaces and Scope in Python β Real Pythonβ
- A crash course in Python βcomprehensionsβ and βgeneratorsββ
- What new Python features are the most useful for you? | Hacker Newsβ
- Learn by reading code: Python standard library design decisions explainedβ
- Using python decorator with or without parentheses - Stack Overflowβ
- Data Classification: Does Python still have a need for class without dataclassβ
- The Hitchhikerβs Guide to Python! β The Hitchhikerβs Guide to Pythonβ
- Pythonβs βDisappointingβ Superpowers - lukeplant.me.ukβ
- Bo Bayles Annex - Yo, I heard you like decoratorsβ
Be at ease with shell scripting and my local system #
- Spend time reading manuals for tools that I use
- Get cheatsheets organized. Think shift from cheat to
org-mode+fzf+rg
- Setup some basic emacs snippets for shell scripting
Be building with Golang #
- [-] Basics
- [-] GitHub - teivah/100-go-mistakes: π 100 Go Mistakes and How to Avoid Themβ
- The absurd cost of finalizers in Go | Lobstersβ
- Go Enums Suckβ
- fixing the other go loop bugβ
- Writing secure Go code | Hacker Newsβ
- Debugging Go with stack traces (evanjones.ca)β
- How I write unit tests in Go | Hacker Newsβ
- Context Control in Go | Hacker Newsβ
- A practical introduction to PostgreSQL in Go (Golang)β
- Client-side pagination in Go (range-over function edition) - Vladimir Varankinβ
- Interfaces Are Not Meant for That | Lobstersβ
- How I write HTTP services in Go after 13 years | Hacker Newsβ π
- How Golang Handles HTTPβ
- Go internals: invariance and memory layout of slices - Eli Benderskyβs websiteβ
- Thanos coding style guideβ
- A Tour of Goβ
- Effective Go - The Go Programming Languageβ (Book)
- What is a Go function variable? | Lobstersβ
- Chrisβs Wiki blog/programming/GoFinalizerCostsNotesβ
- Frequently Asked Questions (FAQ) - The Go Programming Languageβ
- Whatβs the proper way to wrap errors in Go? - YouTubeβ
- a{low:high:max} in Golang β A Rare Slice Trick | Blog | build-your-own.orgβ
- Learn Go with Tests - Learn Go with testsβ (Course)
- Gopherfest 2015 | Go Proverbs with Rob Pike - YouTubeβ
- [-] More Basics
- Writing HTTP client middleware in Goβ
- A silly mistake that I made with io.TeeReaderβ
- Which Go router should I use? (with flowchart)β
- Structured logging in Go with slogβ
- How to Use //go:embed Β· The Ethically-Trained Programmerβ
- Interface Upgrades in Go (2014) | Hacker Newsβ
- Error handling in Go web apps shouldnβt be so awkward | Lobstersβ
- The Two Reasons I Prefer Passing Struct Pointers Around Β· Preslav Rachevβ
- [-] Concurrency (Not super go specific)
- introconcurrencyβ
- Solving Concurrency Bugs Using Schedules and Imagination | Ankush Menatβ
- The Little Book of Semaphores β Green Tea Pressβ (Book, mostly pseudo, python and little c)
- Tips for concurrent programming | Lobstersβ
- Preemption in Go: an introduction - Unskilledβ
- GopherCon Europe 2024: Raghav Roy - Using Formal Reasoning to Build Concurrent Go Systems - YouTubeβ
- Notes on structured concurrency, or: Go statement considered harmful β njs blogβ
- Concurrency Freaks: How to (not) invent concurrent algorithmsβ
- Time is not a synchronization primitive | Lobstersβ
- Concurrency in Goβ (Course)
- LearnConcurrency Β· golang/go Wiki Β· GitHubβ
- loong/go-concurrency-exercisesβ
- How itch.io uses Coroutines for non-blocking IO | Lobstersβ
- The Art of Concurrency in Goβ with thisβ
- File Locks on Linux | Hacker Newsβ
- Data related
π’ HB08: Server Admin and network troubleshooter #
Deploying systems #
- caching - Can one cache and secure a REST API with Cloudflare? - Stack Overflowβ π
- School Of SREβ (Book)
- [-] Infrastructure as Code, Patterns and Practices w Python and Terraform (Book)
- Where does my computer get the time from? | Hacker Newsβ (NTP)
- Terraform best practices for reliability at any scale - Substrateβ
- Can We Make Idiot-Proof Infrastructure pt1? | Lobstersβ
- Git from the Bottom Upβ (Book)
- https://github.com/jvns/nginx-playground/ (Read code, tiny app)
- Achieving High Availability with HAProxy and Keepalivedβ
- Sysadmin basics revisitβ
- 11 years of hosting a SaaS - Alex Ghiculescuβs Newsletterβ
- DevOps, SRE, and Platform Engineeringβ
- How I write backendsβ
- Building a serverless secured dead drop - Ayende @ Rahienβ
- Using Atomic Transactions to Power an Idempotent APIβ
- How I run my servers | Lobstersβ
- Django for Startup Foundersβ
- How Kinopio is Madeβ
- How Mozillaβs Rust dramatically improved our server-side performanceβ
- futurice/backend-best-practicesβ
- The secret inside One Million Checkboxes | Lobstersβ
- Cheap Infraβ
- [-] Arc Note: Datasette - Simon Willisonβ
- One process programming notes (with Go and SQLite)β
- Life after Heroku: Whatβs a dev to do? - Reaktorβ
- Deploying Containers using Nomad and Traefikβ
- (A few) Ops Lessons We All Learn The Hard Wayβ
Maintaining Services #
- Architecture Notesβ (Series)
- The Software Architecture of Paliaβ
- How Standard Ebooks serves millions of requests per month with a 2GB VPS; or, a paean to the classic web - Alex Cabalβ
- Introducing βDatabase Performance at Scaleβ- ScyllaDBβ (Book)
- A tale of three architectures - daverupert.comβ
- AWS Well-Architectedβ (AWS, Book/Workshop)
- Why I recommend Renovate over any other dependency update tools Β· Jamie Tanna | Software Engineerβ
- Reddit - Postmortemβ
- DSLs are a waste of time | Lobstersβ
- Gregory Szorcβs Digital Home | Modern CI is Too Complex and Misdirectedβ
- Delivering Value with Platform Engineering - Max Countrymanβ
- How to leverage Cloudflare Stream for high-availability and low-cost video streamingβ
- So, you want to deploy on the edge? - /dev/knillβ
- Debugging in production Β· jbd.devβ
- Cache invalidation really is one of the hardest problems in computer science β Surfing Complexityβ
- Debugging latency Β· jbd.devβ
- Why All My Servers Have an 8GB Empty Fileβ
- Ask HN: Is a self-MitM HTTPS proxy that injects API keys useful?β
- Understanding AWS Services for Modern Cloud Architectures - Bas codesβ
- Determine the number of threads to fire off in a machine w n coresβ
- Event Sourcing and Microservices β Unix Styleβ
- How to set an ideal thread pool sizeβ
- General guidance when working as a cloud engineerβ
- leandromoreira/cdn-up-and-runningβ
- Learn how to build a simple streaming platform based on the Real Time Messaging Protocolβ
- Dukaan vs Shopifyβ
- Retries
- [-] Rate limiting
- Load Balancing
- Load Balancing Animationsβ
- Introduction to modern network load balancing and proxyingβ
- HAProxy vs nginx: Why you should NEVER use nginx for load balancingβ
- Scaling a Web Service: Load Balancingβ
- How we manage individual user concurrencies with Nginx and Luaβ
- Scaling Puppeteer and Chrome Horizontallyβ
- Planning
- SLO
- Scalability
- Understand could costs
Containers #
- [-] Containers
- The podman manning (Book)
- [-] https://github.com/containers/podman/blob/main/docs/tutorials/performance.md
- Using ARG in a Dockerfile β beware the gotcha | Hacker Newsβ
- [-] Go, Containers, and the Linux Scheduler | Hacker Newsβ
- Troubleshooting containers - ikoβs logsβ
- Containers are chroot with a Marketing Budget - Earthly Blogβ
- Containers from first principlesβ
- Ramblings from Jessie: Setting the Record Straight: containers vs. Zonesβ
- How to Escape a Container | Hacker Newsβ
- Building healthier containers - kintoandarβ
- What even is a container: namespaces and cgroupsβ
- Learning Containers From The Bottom Upβ
- [-] Deep dives
- Liz
- [-] Docker
- [-] Production-ready Docker packaging for Python developersβ
- BuildKit in depth: Docker's build engine explained | Hacker Newsβ
- Computers Are Bad: Dockerβ
- Docker and the OCI container ecosystemβ
- Rails on Docker | Hacker Newsβ
- Crafting container images without Dockerfiles | Adolfo OchagavΓaβ
- Linux post-installation steps for Docker Engine | Docker Documentationβ
- Run the Docker daemon as a non-root user (Rootless mode) | Docker Documentationβ
- Docker security | Docker Documentationβ
- Securing Docker Containersβ
Kubernetes #
- jamiehannaford/what-happens-when-k8sβ
- Kubernetes and back - Why I donβt run distributed systems - davd.ioβ
- Bare-Metal Kubernetes, Part I: Talos on Hetzner | Hacker Newsβ
- Why Kubernetes needs an LTS | Lobstersβ
- Running Databases on Kubernetes | QuestDBβ
- Kubernetes is Not a Hosting Platform β Dan Palmerβ
- Upgrading Kubernetes - Methodology | Lobstersβ
- everything-useful-i-know-about-kubectlβ
Oops! Observability #
- [-] General
- SRE School: Health Checkingβ
- Six ways to shoot yourself in the foot with healthchecksβ
- SRE School: Instrumentationβ
- SRE School: No Haunted Forestsβ
- Techniques and numbers for estimating systemβs performance from first-principlesβ
- Observability replacing monitoring?β
- Ice and Fire: How to read icicle and flame graphsβ
- Monitoring tiny web services | Hacker Newsβ
- [-] Tactical
- βHow NOT to Measure Latencyβ by Gil Tene - YouTubeβ
- Building for Failure: Hidden dangers in Event-Driven Systems β Encore Blogβ
- librariesio/metrics: What to measure, how to measure it.β (this is not really about telemetry)
- Correlating Signals Efficiently in Modern Observabilityβ
- [-] Metrics For Your Web Applicationβs Dashboardsβ
- Monitoring is a Pain | Lobstersβ
- the two drivers of cardinality.β
- Current problems in the alerting spaceβ
- Advanced stuff
- [-] Prometheus
- A deep dive into logging ecosystem | Parseableβ
Oh CI/CD #
Network must be up! #
- General Networking
- Computer Networks: A Systems Approachβ (Book)
- Computer Networking : Principles, Protocols and Practiceβ
- vlan - Relation between Ethernet and 802.11 headersβ
- The Internet explained from first principlesβ
- Networks all the way down, part 2. | The ryg blogβ
- Bridging Networks Across VPS With Wireguard and VXLAN on FreeBSD - IT Notesβ
- Better IX network quality monitoringβ
- IP
- What happens when
- Tailscale
Whatβs up DNS? #
- [-] Why is DNS still hard to learn?β
- [-] (All) DNS Resource Recordsβ
- Using digβ
- Section 2 - Domain Namingβ (Chapter)
- What happens when you update your DNS?β
- DNS βpropagationβ is actually caches expiringβ
- Learning Center β NsLookup.ioβ (Nice Series, Read all of it)
- DNS for Rocket Scientistsβ (Book)
- Implementing
- Case studies
- Logs Told Us It Was DNS, It Looked like DNS, It Had to Be DNS, It Wasnβt DNSβ
- Intercepting t.co links using DNS rewrites | Lobstersβ
- Journeying into XDP: Fully-fledged DNS service augmentation | APNIC Blogβ
- DNS0: The European public DNS that makes your internet saferβ
- Replit - Why We Built Our Own DNS Infrastructureβ
- What I learned from making a DNS client in Rustβ
- Chromiumβs impact on root DNS traffic | APNIC Blogβ
- How does GeoDNS work?β
- Hardening unused (sub)domains | Hacker Newsβ
- .io domains considered harmful | Lobstersβ
- The death of a TLDβ
- The Sisyphean Task Of DNS Client Config on Linux Β· Tailscaleβ
- Deeper fax
- mDNS
π HB09: Remove database fear #
DB general knowledge #
- [-] Stanford intro to DB course (HDD/Course)
- [-] CMU 15-445/645 - Intro to Database Systems (Fall 2019)β (Course, Updated 2022!)
- Home - CS 186β (Course)
- Database Design for Google Calendar: a tutorial | Database Design Bookβ π
- Database design of Timelinizeβ
- On-site search design patterns for e-commerce: schema structure, data driven ranking & moreβ
- Database Fundamentalsβ
- Things I Wished More Developers Knew About Databasesβ
- How Modern SQL Databases Are Changing Web Developmentβ
- Relational Databases Explainedβ
- Why databases use ordered indexes but programming uses hash tablesβ
- [-] Demystifying Database Transcations | Dinesh Gowdaβ
- [-] Sketch of a Post-ORMβ
- What is the correct way to modelβ
- [-] Normalization
- [-] Primary Keys
SQL Basics #
- [-] Do you really need foreign keys? | Hacker Newsβ
- SQLBolt - Learn SQL - Introduction to SQLβ
- [-] Learn SQL with Datasette - Tutorialβ
- SQL Injection Prevention - OWASP Cheat Sheet Seriesβ
- https://github.com/remysucre/blog/blob/main/posts/sql-eq.md
- The Case of a Curious SQL Query β’ Buttondownβ
- Upsert in SQL | Hacker Newsβ
- What are some good resources to practice SQL? (Practice through exercises)β
- Python: Just Write SQL | Hacker Newsβ
- How To Generate SQL Statements with ChatGPT β Ben Fortaβ
- Grouping digits in SQL | Peter Eisentrautβ
- Ask HN: How do you test SQL? | Hacker Newsβ
- Learn SQL with Real Data using Dolt | DoltHub Blogβ
Context on DBs #
- Architecture of a Database System (Book)
- Readings in Database Systems (Book)
- Wide Column Store NoSQL vs SQL Data Modeling - YouTubeβ
- Scalable OLTP in the Cloud: Whatβs the BIG DEAL?β
- Database Migrationsβ
- A primer on Roaring bitmaps: what they are and how they workβ
- Mini-LSM Overview - LSM in a Weekβ
- What is a Query Optimizer for?β
- The growing pains of database architectureβ
- How Query Engines Work | Hacker Newsβ
- Database Performance at Scale: A Practical Guide | SpringerLinkβ (book)
- Things every developer absolutely, positively needs to know about database indexingβ
- How RocksDB works - Artem Krylysovβ
- [-] B-tree
- Representing Columns in Query Optimizers β’ Buttondownβ
- [-] Consistency Models
- Reading lists
Joins #
SQLite #
- SQLite for beginners - YouTubeβ
- Tracking SQLite Database Changes in Git | Lobstersβ
- Why SQLite? Why Now? π - Tantamanlandsβ
- SQLite the only database you will ever need in most casesβ
- SQLite: Past, Present, and Futureβ
- Why you should probably be using SQLite | Hacker Newsβ
- SQLiteβs Automatic Indexes | Hacker Newsβ
- SQLite Functions for Working with JSON | Hacker Newsβ
- [-] New trends in sqlite
- Deeper dives
- [-] Experiments
- Advanced usage
Postgres #
- The Art of PostgreSQL (Book)
- pg is enoughβ
- My notes on Gitlabβs Postgres schema design (2022) | Hacker Newsβ
- Identifying slow PostgreSQL queries | Sophia Willowsβ
- The business information serverβ
- How Postgres Triggers Can Simplify Your Backend Development | The Mythical Engineerβ
- Inside logical replication in PostgreSQL: How it worksβ
- PostgreSQL Internals: 3 Things to Know About UPDATE Statements | Patrickβs Engineering Blogβ
- Explaining The Postgres Memeβ
- An overview of distributed Postgres architectures | Hacker Newsβ
- Exploring a Postgres query plan | notes.eatonphil.comβ
- PostgreSQL Indexes Can Hurt You: Negative Effects and the Costs Involvedβ
- [-] PgBouncer is useful, important, and fraught with peril - JP Camaraβ
- Why people care about PostGIS and Postgres | Hacker Newsβ
- Brane Dump: PostgreSQL Encryption: The Available Optionsβ
- Building a Streaming Platform in Go for Postgres | Hacker Newsβ
- PG advisory locks in Go with built-in hashes | Lobstersβ
- βUPDATE Considered Harmfulβ by Jeremy Taylor - YouTubeβ
- Optimizing Postgresβs Autovacuum for High-Churn Tables | Temboβ
- Scaling Postgres to 1 Million Connections | Lobstersβ
- Getting Postgres logs in a GitHub Actionβ
- Understanding partitioning and sharding in Postgres and Citusβ
- Ways to shoot yourself in the foot with Postgres | Hacker Newsβ
- Indexing a column of a large postgres table | Lobstersβ
- Creating a search engine with PostgreSQL | Hacker Newsβ
- PostgreSQL at low level: stay curious! Β· Erthalionβs blogβ
- The part of Postgres we hate the most: MMVCβ
- HTTP vs. WebSockets: Which protocol for your Postgres queries at the Edge - Neonβ
- Postgres as queue | Hacker Newsβ
- Postgres operations (wiki has more stuff) / Backup etc.
- Iβve to make sections in notes about replication, migration, backup, recovery, other things that are more specific to handling the data in prostgres and moving it around when needed
- Introducing pgroll: zero-downtime, reversible, schema migrations for Postgres | Lobstersβ
- Postgres Incremental Backup | Hacker Newsβ
- Migrating from Supabaseβ
- Supabase Local Dev: migrations, branching, and observabilityβ
Too long Redis #
- Learn Redis the hard way (in production)β
- Redis Explainedβ
- Caching patterns - Database Caching Strategies Using Redisβ
- What are write-through and write-behind caching? | Redissonβ
- Four ways to shoot yourself in the foot with Redisβ
- Do You Need Redis? PostgreSQL Does Queuing, Locking, & Pub/Subβ
- Build Your Own Redis with C/C++ | Build Your Own Redis with C/C++β
- How to Boost Mastodon Server Performance with Redis - The New Stackβ
π HB10: Become pragmatic #
Gain old wisdom #
- The Pragmatic Programmer (Book)
- How to Design Programs, Second Editionβ (Book)
- Cognitive Load In Software Development | Lobstersβ
- Software Engineeringβs Greatest Hits - YouTubeβ
- Practices of Reliable Software Design | Lobstersβ
- paoramen - Fear of over-engineering has killed engineering altogetherβ
- A Sketch of the Biggest Idea in Software Architectureβ
- HugoMatilla/Refactoring-Summaryβ
- Things software developers should learn about learning | Hacker Newsβ
- Software Engineering at Googleβ (Book)
- Wisdom from computingβ
- Coding theory by Venkatesan Guruswami (Book)
- A guide on how to be a Programmerβ
- A Philosophy of Software Design | John Ousterhoutβ
- Can Great Programmers Be Taught? - John Ousterhout - Agile LnL - YouTubeβ
- Clever vs Insightful Code β’ Hillel Wayneβ
Advice by other people #
- My Approach to Building Large Technical Projects β Mitchell Hashimotoβ
- Code review
- TigerStyle!
- My Heroku values Β· GitHubβ
- Systems design 2: What we hope we know - apenwarrβ
- Good performance is not just big O - Julio Merino (jmmv.dev)β
- Why Domain-Driven Design?β
- In defense of simple architecturesβ
- Always Measure One Level Deeperβ
- DDD
- Crash course on Domain-Driven Designβ
- A Daily Practice of Empirical Software Design - Kent Beck - DDD Europe 2023 - YouTubeβ
- Practical DOD β’ 2021 β’ Conference Guide β’ Handmade Seattleβ (Data Oriented Design) (different from the other DOD)
- The Definition of Senior: A Look at the expectations for Software Engineersβ
- My Principles for Building Softwareβ
- Nat Friedmanβ
- Learnings from 5 years of tech startup code auditsβ
- Things I Learnt from a Senior Software Engineer | Neil Kakkarβ
- Synchronization is bad for scaleβ
- Stop your (business rules) engines! - Ad Hocβ
- My guiding principles after 20 years of programmingβ
- Mike Actonβs Expectations of Professional Software Engineersβ
- The Hardest thing about Engineering is Requirementsβ
- How to Debug β Embedded in Academiaβ
- Write code that is easy to deleteβ
- Code Doesnβt Happen to Youβ
Testing shit #
Learn more about API design #
General API #
- API Design Patternsβ (Book)
- Nibble Stew: Plain C API design, the real world Kobayashi Maru testβ
- No Abstractions: our API design principle | Hacker Newsβ
- The importance of verifying webhook signatures | Snykβ
- Guidelines for writing useful libraries | Kislay Vermaβ
- Finding and fixing eventual consistency with Stripe events | Lobstersβ
- What If I Donβt Actually Like My Users?β
- The Design of Everyday APIs β roguelynnβ
- How Do I Make This Hard to Misuse?β
- How To Design A Good API and Why it Matters - YouTubeβ
- API Improvement Proposalsβ
Web API design #
- GraphQL vs. REST - Speaker Deckβ
- Advice for Operating a Public-Facing API - joshua steinβ
- The Elements of APIs (2021) | Hacker Newsβ
- How to (and how not to) design REST APIs | Lobstersβ
- How to (and how not to) design REST APIs | Lobsters 2β
- API Versioning Has No βRight Wayββ
- How to design better APIsβ
- Secrets to Great API Design | Nylasβ
- RFC7807 - Problem Details for HTTP APIs | Paulβs pageβ π
- API Best Practices for crafting superior APIs | Atakan Serbes | Mediumβ
- Webhooks
- Feature Flags
- Pagination
- Extraction
πΊ HB11: Languages and how they are made #
Experiment with Rust #
Experiment with Elixr #
Remove fear of compilers #
- Demitry Udemy Courses (Course)
- Why Split Lexing and Parsing Into Two Separate Phases? | Lobstersβ
- Distinguishing an Interpreter from a Compiler | Lobstersβ
- Writing a Compiler is Surprisingly Easy (part 1) | Hacker Newsβ
- On Learning Compilers and Creating Programming Languages | Lobstersβ
- Anders Hejlsberg on Modern Compiler Construction - YouTubeβ
- Lexical Scanning in Go - Rob Pike - YouTubeβ
- Why Take a Compiler Course? β Embedded in Academiaβ
- Why Learn Compilersβ
- Write a compiler with David Beazley | Cracking The Codeβ
- Why we need to know LR and recursive descent parsing techniquesβ
- How to Compile Your Languageβ
- Mapping High Level Constructs to LLVM IR β Mapping High Level Constructs to LLVM IR documentationβ
No really, PLT fr #
- A Gentle Intro to PLTβ
- CAS 761: Generative Programmingβ
- Cuis Smalltalk and the History of Computingβs Future (with Juan Vuletich) - YouTubeβ
- A Tour of the Lisps | Hacker Newsβ
- 2017 ACM PPoPP Keynote: Itβs Time for a New Old Language - YouTubeβ
- BNF and EBNF: What are they and how do they work?β
- The Mathematicianβs Weapon | An Introduction to Category Theory, Abstraction and Algebra | #SoME3 - YouTubeβ
- How should I read type system notation? - Programming Language Design and Implementation Stack Exchangeβ
- [1409.2378] Design Guidelines for Domain Specific Languagesβ
- Programming Languages, Part A,B,C (Course)
- CIS352β by Kristopher Micinski
No time for Functional programming #
DIY projects #
- Learn C β’ Build Your Own Lispβ (Book)
- An Introduction to Parser Combinators - Varun Rameshβs Blogβ
- Tiarkβs Notebook - Just write the fucking parserβ
- Crafting Interpretersβ (Book) See malavbhavsar/rloxβ for section 1
- Building a high performance JSON parser | Hacker Newsβ
- Writing An Interpreter In Go | Thorsten Ballβ (Book)
- Writing A Compiler In Go | Thorsten Ballβ (Book)
- Writing a simple JSON parser | notes.eatonphil.comβ
- Evaluating Algebraic Expressions using Parser Combinators - Varun Rameshβs Blogβ
π¦ HB12: Comfortable w Distributed Systems #
General Dist Sys #
- [-] Courses
- [-] 6.824: Distributed Systems(2020)β (Course)
- [-] Distributed Systems lecture series - YouTubeβ (Course, MK)
- https://www.scs.stanford.edu/22sp-cs244b/labs/project.html (good project ideas in dist sys)
- [-] Distributed Systems 3rd edition (Book, 2017)
- Distributed systems for fun and profitβ (Book, Good for casual reading, might print)
- Hints for Distributed Systems Designβ π
- βHopelessness and Confidence in Distributed Systems Designββ
- Putting Our Thinking CAP On: Taking a Look at the CAP Theorem | Bo Ingramβ
- CAP Theorem β FoundationDB 7.1β
- Consistent hashing
- Clocks
- Lamport clocks | Lobstersβ
- Lamport Clocks | Hacker Newsβ
- Clocks and Causality - Ordering Events in Distributed Systemsβ
- On Time, clock and ordering paper - cijuβ
- Itβs About Time! - Marcβs Blogβ
- Who invented vector clocks? - decomposition β alβ
- Living without atomic clocks: Where CockroachDB and Spanner divergeβ
- Itβs About Time! - Marcβs Blogβ
- Lamport
- Consensus
- Paxos Algorithmβ (2 lectures & materials by LL the great) π
- Garage, our self-hosted distributed object storage solution | Hacker Newsβ (Read the discussion around raft)
- Raft Viz presentationβ
- Raft is (Equivalent to) Paxos, VRβ
- The Raft Consensus Algorithm (2015) | Hacker Newsβ
- Implementing a distributed key-value store on top of implementing Raft in Goβ
- Students' Guide to Raft - Jon Gjengsetβ
- Raft does not Guarantee Liveness in the face of Network Faults (2020) | Lobstersβ
- How OmniPaxos handles partial connectivityβ
- Implementing Raft: Part 0 - Introduction - Eli Benderskyβs websiteβ
Designing better systems #
- Globally Distributed Postgres Β· Flyβ
- Software Architecture Design for Busy Developersβ
- [-] 50 years later, is two-phase locking the best we can do? | Hacker Newsβ
- GUIDs Are Not The Only Answer - by Utsav Shahβ
- Breaking Changes in Distributed Systems | Azeem Bande-Ali | azeemba.comβ
- Designing Distributed SQL Engineβ
- A Foolish Consistency: Consul at Fly.io Β· The Fly Blogβ
- Avoiding fallback in distributed systems (2020) | Lobstersβ
- Systems design for advanced beginners | Robert Heatonβ
- AOSA(Volume 2): Scalable Web Archβ
- The Log: What every software engineer should know about real-time dataβ
- Message Queues
- Letβs Talk About Queues β’ Talks β’ Conference Guide β’ Handmade Seattleβ
- Investigating an Event Queue Hang: The Code Works Correctly Β· GitHubβ
- To Message Bus or Not: Distributed Systems Designβ
- IPC - Message Queues | Goodnessβs blogβ
- The Big Little Guide to Message Queues (2020) | Hacker Newsβ
- No sleep until we build the ideal pub/sub library in Go | Lobstersβ
- Simple event broker tries Tiger Style | Lobstersβ
- Modern Message Queue Services and Cloud Storage - Alibaba Cloud Communityβ
π HB13: Really wanna Systems #
A word of warning for self here, I am interested in this stuff but it seems like there are not too many directly applicable jobs or projects I can work on, so study these accordingly.
But this info in-directly will always be helpful for me in other areas.
Basics #
- spencertipping/shell-tutorialβ
- Getting Better at Linux With 10 Mini-Projectsβ (Make these with rust)
- Intercepting and modifying Linux system calls with ptrace | notes.eatonphil.comβ
- Adventures of Linux Userspace at Meta - media.ccc.deβ
- Greybeard Qualification - Linux Internals - YouTubeβ
- What Is Systems Programming, Really? (2018) | Hacker Newsβ
- A simple, arena-backed, generic dynamic array for Cβ
- Getting up in another processes memory - YouTubeβ
- Two kinds of threads pools, and why you need both | Lobstersβ
- Signals. I spent 2 years to understand this part. - YouTubeβ
- Linux Page Cache for SRE | Viacheslav Biriukovβ
- FD
Virtualization #
- vijay03/cs378-f19: Repo for CS 378β (Course)
- Sandboxing and Workload Isolation Β· Flyβ
- Emulator 101β
- Firecracker internals: Inside the technology powering AWS Lambda (2021)β
- How VT-x, KVM and QEMU Work Together β Binary Debtβ
- Clocks, Timers and Virtualization silly onions β Opinionated articlesβ
- KVM host in a few lines of codeβ
- Hypervisor Development in Rust Part 1 - memN0psβ
- dpw/kvm-hello-world: A minimal kvm exampleβ
- Write your Own Virtual Machineβ
Finally File-systems and Storage #
- http://www.nobius.org/dbg/practical-file-system-design.pdf (Book)
- Building and operating a pretty big storage system called S3 | All Things Distributedβ
- GitHub - gotoco/dummyfs: Simple Linux Filesystem designed for learning purposesβ
- Writing a file system from scratch in Rust Β· carlosgaldinoβ
- ext4 Data Structures and Algorithms β The Linux Kernel documentationβ
- A minimum complete tutorial of Linux ext4 file system (2017) | Hacker Newsβ
- Evan Jones
- Basics
- ZFS
Performance #
BPF & eBPF #
- XDP for Game Programmersβ
- bpfmanβ
- Videos
- lizrice/ebpf-beginnersβ
- eBPF - Introduction, Tutorials & Community Resourcesβ
- X-Ray vision for Linux systems | 0x.toolsβ
- BPF, eBPF, XDP and Bpfilterβ
- tcpdump only uses BPF, not eBPF. BPF is a simpler language that, among other β¦β (Good comment compares BPF and eBPF)
- Notes on BPF & eBPFβ
- Linux runtime security agent powered by eBPF | Hacker Newsβ
- A thorough introduction to eBPF {LWN.net}β
- BPF: whatβs good, whatβs coming, and whatβs needed {LWN.net}β
- eBPF and systems performance β OβReillyβ
- Why is the kernel community replacing iptables with BPF?β
Strace #
- The Definitive Guide to Linux System Calls | Packagecloud Blogβ
- Strace little bookβ
- strace Wow Much Syscallβ strace Wow Much Syscallβ
- How does strace work? | Packagecloud Blogβ
- Introduction to strace | The Road to Elysiumβ
- Debugging Software Deployments with strace β The Art of Machineryβ
- Why strace doesnβt work in Dockerβ
πΈ HB14: Scraping and Archival #
Become spiderman #
- [-] Web Scraping: Data for Everyone | Hacker Newsβ
- [-] Youtubeβs Anti-adblock and uBlock Origin - And a Dinosaurβ
- [-] The business of extracting knowledge from academic publications | Hacker Newsβ
- [-] webscraping-open-projectβ (solid outline)
- [-] lorien/awesome-web-scrapingβ (good pointers)
- [-] Learn Playwright & Puppeteer | Checklyβ
Become spiderman at scale #
- How to crawl a quarter billion webpages in 40 hours | DDIβ , also HN Threadβ
- Show HN: how I built the largest open database of Australian law | Hacker Newsβ
- Ask HN: Have you ever used anti detect browsers for web scraping?β
- Analysis of Bot Protection systemsβ
- How to choose the right proxy service for your bots and scrapingβ
- A Raspberry Pi as a decent residential proxy | wiringbitsβ
Archiving for the greater good #
- Getting Started - Digital Archivingβ
- WARC
- Web Pages Must Live Foreverβ
- Archiving URLs Β· Gwern.netβ
- How to archive your work digitally β The Creative Independentβ
- The business of extracting knowledge from academic publications | Hacker Newsβ
- Introduction | Archives, Ethics and the Law in Indiaβ
- iipc/awesome-web-archivingβ
Maintaining archives #
γ HB15: Working with data #
Probability and Statistics #
- [-] STATISTICS 101 Playlists β Brandon Foltzβ
- [-] Statistical Rethinking | Richard McElreathβ (Book + Course), Follow PyMC implementationβ
- [-] Stats Without Tears (Book)
- Probably Overthinking It: There is still only one testβ
- Common statistical tests are linear models (or: how to teach stats)β
- Seeing Theoryβ (Book)
- the_statistics_handbookβ
- Programmers Need To Learn Statistics Or I Will Kill Them Allβ
- StatQuest with Josh Starmer - YouTubeβ
- research!rsc: The Magic of Sampling, and its Limitationsβ
- Percentiles
Do the work with Data science #
- Data Science from Scratch, 2nd Edition (Book)
- Everyday Data Science (Book)
- Data Analysis for Business, Economics, and Policy - Gabors Data Analysisβ (Book)
- Effective Pandas (Book)
- The Polars vs pandas difference nobody is talking about | Labsβ
- SQL for data scientists in 100 queries | Hacker Newsβ
- Efficient Python Tricks and Tools for Data Scientistsβ (Book)
- Histograms for Probability Density Estimation: A Primer | Hacker Newsβ
- Goodbye, Data Science β r y x, rβ
- Exploratory data analysis for humanities data | Hacker Newsβ
- Most data work seems fundamentally worthless | Hacker Newsβ
- Why Business Data Science Irritates Me - by shakoβ
- How you average numbers mattersβ
- Exploratory data analysis for humanities data | Hacker Newsβ
- SQL for Analysis
- Pandas and Numpy
- Data Analysis with Pythonβ (Course)
- Articles: Speed up your data science and scientific computing codeβ
- Pandas Illustrated: The Definitive Visual Guide to Pandasβ
- pandas 2.0 and the Arrow revolution (part I)β
- Pandas Tutorials - YouTubeβ
- 101 NumPy Exercises for Data Analysis (Python) - ML+β
- Brandon Rhodes - Pandas From The Ground Upβ
- Pandas and Polars
- ML and Stats
- Machine Learning/Deep learning π
- Practical Deep Learning for Codersβ π
- MLC Compulation - Real MLOPS | Homeβ π
- 6.5940β
- DeepL Sys Lecturesβ
- Deep Learning @ VU | DLVUβ
- [2206.13446] Pen and Paper Exercises in Machine Learningβ
- Introduction β Spinning Up documentationβ
- [2106.10165] The Principles of Deep Learning Theoryβ
- Machine Learning in C (Episode 1) - YouTubeβ
- Neural Networks: Zero To Heroβ
- GPT in 60 Lines of NumPy | Jay Modyβ
- Neural Networks from Scratch in Python - YouTubeβ
- 3Blue1Brownβ
- Introduction - Hugging Face NLP Courseβ
- Embeddings
- What are embeddings?β
- Text embeddings reveal almost as much as text | Hacker Newsβ
- Tools to explore
- https://fasttext.cc/
- https://github.com/explosion/floret (fork of fasttext)
- Here comes the Muybridge camera moment but for text. Photoshop too (Interconnected)β
- Embeddings: What they are and why they matterβ
- 40 million embeddings to find who knows what on Hacker News | Wilson Linβ
- Embeddings are a good starting point for the AI curious app developer | Hacker Newsβ
- SAE what?
- PCA
Data processing #
- Data Engineering
- Data Team | The GitLab Handbookβ
- Learning Resources - Data Engineering Wikiβ (Wiki)
- Lessons Learned from Scaling to Multi-Terabyte Datasets β Build Great Thingsβ
- Designing Data-Intensive Applicationsβ (Book)
- How we improved push processing on GitHub - The GitHub Blogβ
- The uses and abuses of Cloud Data Warehousesβ
- Building a weather data warehouse part I: Loading a trillion rows of weather data into TimescaleDBβ
- Demystifying Text Data with the Unstructured Python Library | Hacker Newsβ
- cohost! - βhow (not) to write a pipelineββ
- Batch processing
- Stream Processing
- Streaming joins are hard | Hacker Newsβ
- ATProto for distributed systems engineers - AT Protocolβ
- Using Clickhouse to scale an events engine Β· getlago/lago Wiki Β· GitHubβ
- Streaming 101: The world beyond batch β OβReillyβ
- How do streaming APIs workβ
- Apache Flink: Batch as a Special Case of Streamingβ
- A Dash of Technology: The Essentials Behind Building a Streaming APIβ
- Why local state is a fundamental primitive in stream processing β OβReillyβ
- Case studies
- Parquet: more than just βTurbo CSVββ
- Analyzing multi-gigabyte JSON files locally | Lobstersβ
- Data diffs: Algorithms for explaining what changed in a datasetβ
- Stream Processing vs Real-time OLAP vs Streaming Databaseβ
- Notes on streaming large API responses | Hacker Newsβ
- A comparison of data processing frameworks β Kapernikovβ
- Comparison
- Others
Deploying stuff #
- L1
- L2
- Patterns for Building LLM-based Systems & Productsβ
- Ask HN: Fastest way to turn a Jupyter notebook into a website these days?β
- Building LLM applications for productionβ
- Creating a Cost-Effective and Chatbot with OpenAI, AWS, and Discordβ
- Infrastructure set-up & open-source scripts to train a 70B model from bare metal | Hacker Newsβ
- MLOps guideβ
- https://github.com/featurestoreorg/featurestore-benchmarks
- Chapter 10 Tools for Developing Pipelines | The Pragmatic Programmer for Machine Learningβ
- https://github.com/stas00/ml-engineering
- Free MLOps course from DataTalks.Clubβ
- MLOps is Mostly Data Engineering. β’ Kostas Heaven on Netβ
- Designing Machine Learning Products - Made With MLβ
- MLOps Basics {Week 10}: Summaryβ
LLMs in production #
- Your AI Product Needs Evals β Hamelβs Blogβ
- Takeaways from Mastering LLMs Course β Swaroop, The Dreamerβ
- What Weβve Learned From A Year of Building with LLMs β Applied LLMsβ
- Building A Generative AI Platformβ
- An Open Course on LLMs, Led by Practitioners β Hamelβs Blogβ
- Generating structured data with LLMs - Beyond Basics β’ rwilinski.aiβ
HB17: Analyze, Visualize and Plot! #
Learn to plot #
- Opening Files β An Introduction to VisiDataβ
- The Data Visualisation Catalogue: find the right method for your data | Hacker Newsβ
- GitHub - rougier/scientific-visualization-book: An open access book on scientific visualization using python and matplotlibβ
- Google Sheets - Full Course - YouTubeβ
- Communicating with Interactive Articlesβ
- Applied Plotting, Charting & Data Representation in Pythonβ (Course)
- Friends donβt let friends make bad graphs | Hacker Newsβ
- The definitive Python data visualization siteβ
- Observable 2.0 | Observableβ
- Using Gnuplot for ascii charts inside notebooks Β· GitHubβ
- Visualizing MBTA Dataβ
- Zoomable Circles, a Svelte component for hierarchical data | Hacker Newsβ
- Communicating with Interactive Articlesβ
Simulations #
Example case studies #
Random examples to reverse engineer from.
- A baffling scale transform on a chart of university course selection trendsβ
- About Timelines / Di | Observableβ
- Analysis of compensation, level, and experience details of 19k tech workersβ
- BuzzFeedNews/everything: An index of all our open-source dataβ
- A Random Sampling of Internet Service Prices around the Worldβ
HB18: Get creative w programming #
βIt often feels like βhackingβ to get result.β
Get started w it #
HB19: Hello Beep Boop HCI #
Get familiar #
- Ink & Switch β’ 2022 β’ Conference Guide β’ Handmade Seattleβ
- The future of programming: Research at CHI 2023 - Austin Z. Henleyβ π
- Tools, Computing and Research Labsβ π
- 7GUIsβ
- Implementing interactive languagesβ
- Hacker News folk wisdom on visual programming β drossbucketβ
- HCI-2022 Human Computer Interaction (2022-2023) - YouTubeβ
- mathisonian/awesome-visualization-researchβ
HB20: Understand P2P #
General P2P #
- Brown Uni Course (Backup Drive)
- Peer-to-Peer Protocols and Local Area Networksβ (Course)
- Show HN: This page exists only if someone is looking at it | Hacker Newsβ
- p2p papersβ
- Some designs for modern peer-to-peer networking | Lobstersβ
- How we achieved NAT traversal with vanilla WireGuardβ
- Show HN: TeaTime β distributed book library powered by SQLite, IPFS and GitHub | Hacker Newsβ (gud p2p application)
Torrent #
- A crappy course on torrents β fiatjafβ
- Whitepapers With Friends: How BitTorrent Really Worksβ
- WebTorrent Workshopβ
- How do BitTorrent magnet links work? - Stack Overflowβ
- Building a BitTorrent client from the ground up in Goβ
- BTFS: BitTorrent Filesystem | Hacker Newsβ
- Distributed bittorrent-like social network? | Lobstersβ
Alternative internet #
Protocols&Encoding #
- Binary Protocols - The Current State of Affairsβ
- ElixirConf 2016 - Implementing Binary Protocols with Elixirβ
- A Practical Postgres Protocol Primer - YouTubeβ
- Whatβs In A Bit β Designing, Using And Reverse-engineering Binary File Formatβ
- Capβn Proto: Introductionβ
- Capβn Proto 0.8: Streaming flow control, HTTP-over-RPC, fibers, etc | Lobstersβ
- Ange Albertini: Funky File Formats - YouTubeβ
Time for WebRTC #
- earlier it was browser based now available outside HN comment
- WebRTC For The Curiousβ (Book)
- Overlay networks based on WebRTC | Hacker Newsβ
- WebRTC, GStreamer and HTML5 - Part 1β
- Show HN: Bring phone calls into the browser (SIP-to-WebRTC) | Hacker Newsβ
- Replacing WebRTC: real-time latency with WebTransport and WebCodecs | Hacker Newsβ
- See https://www.youtube.com/@CommCon/streams (Live Section for β24 talks)
HB21: Geo and Maps #
Basics #
- Jay Foreman - YouTubeβ
- So You Want To Make A Map?β
- Misconceptionsβ
- Should web maps be centralized services?β
- State of the Map EU 2023 | Hacker Newsβ
- The Overture Maps Foundation: Marc Prioleau - MBM#43 - YouTubeβ
- Engineering Icons Tube Map | Hacker Newsβ
- Browsetech Digest: Felt is making browsers make maps [interview]ββ
Get mapping #
GPS #
HB22: Local First Stuff #
Basics #
- Architectures for Central Server Collaboration - Matthew Weidnerβ π
- A Map of Syncβ π
- A Local-First Case Study | Hacker Newsβ
- Data synchronization - Wikiwandβ
- The Web After Tomorrow @ tonsky.meβ
- Local, first, forever - CRDT filesync | Lobstersβ
- Local-first software: InkandSwitchβ
- Local-First Software is a Big Deal, Especially for the Webβ
- @adlrocha - What if we had Local-First Software?β
- Lo.Fi (Local First) Meetups - YouTubeβ
- Local-first software - Peter Van Hardenberg - YouTubeβ
- Introduction to local-first applications - YouTubeβ
- βJohannes Schickling: Why Local-First? (Local-First Meetup Berlin #1) - YouTubeβ
- Software possession for personal use | Hacker Newsβ
- Johannes Schickling β Local-first app development | App.js Conf 2023 - YouTubeβ
- Developing local-first software - ElectricSQLβ
- Holistic Local-First Software - Mauve Signweaver - YouTubeβ
- How to almost build an E2EE local-first app | zaynetroβ
Sync Server/Engine #
- Why is everybody talking about sync engines? | Lobstersβ
- Are Sync Engines The Future of Web Applications? - DEV Communityβ (Has notes about using w sveltekit as-well)
- An Object Sync Engine for Local-first Appsβ
- βBuilding a Sync Engine in Clojureβ by Stepan Parunashvili - YouTubeβ
- A Graph-Based Firebaseβ π
- SQLSync - Stop building databasesβ
- Architectures for Central Server Collaboration - Matthew Weidnerβ π
- Building an offline realtime sync engine Β· GitHubβ π
- Accidental database programming | Hacker Newsβ
- Rewriting the heart of our sync engine - Dropboxβ
- ElectricSQL - Local first SQL with Elixir by James Arthur | Lambda Days 2023 - YouTubeβ
- Browsertech Digest: Figma is a File Editorβ
- SQLite as a Collaborative & Multiplayer Application File Format - YouTubeβ (tantaman also has other nice videos related to this)
- Tuomas Artman: Real-time sync for web appsβ and Scaling the Linear Sync Engineβ
- Building data-centric apps with a reactive relational databaseβ
- AWS re:Invent 2019: Build data-driven mobile and web apps with AWS AppSync (MOB402) - YouTubeβ
- Closing The Gap Between Your Users And Their Dataβ
- In Search of a Local-First Database | Jared Forsyth.comβ
- Local-first sync for Postgres from the inventors of CRDTs - ElectricSQLβ
- Reverse engineering Linearβs sync magicβ
Game network engines #
- GDC Vault - I Shot You First: Networking the Gameplay of HALO: REACHβ
- Game Networking | Gaffer On Gamesβ π
- Fast-Paced Multiplayer: Sample Code and Live Demo - Gabriel Gambettaβ π
- Game Physics | Gaffer On Gamesβ
- Networked Physics | Gaffer On Gamesβ
- Fixing the Internet for Games | Gaffer On Gamesβ
- Why canβt I send UDP packets from a browser? | Gaffer On Gamesβ
- Showdown: High vs. Low Ping Player - YouTubeβ
- https://mas-bandwidth.com/what-is-lag/
- https://mas-bandwidth.com/writing-highly-scalable-backends-in-udp/
- https://mas-bandwidth.com/writing-scalable-backends-in-udp-the-solution/
- https://mas-bandwidth.com/creating-a-first-person-shooter-that-scales-to-millions-of-players/
- https://mas-bandwidth.com/choosing-the-right-network-model-for-your-multiplayer-game/
- https://mas-bandwidth.com/the-case-for-network-acceleration-for-multiplayer-games/
- https://mas-bandwidth.com/creating-a-matchmaker-for-your-multiplayer-game/
- Netcode
- Souce code review
CRDTs #
- Signals and Threads | State Machine Replication, and Why You Should Careβ
- A simple way to understand CRDTsβ
- GitHub - ergl/crdt-ml: CRDTs - Conflict-Free Replicated Data Types for OCamlβ π
- GitHub - siliconjungle/crdt-tutorials: A repository to teach the fundamentals of CRDTs.β
- Ditto stuff
- CRDTs Turned Inside Outβ
- Algorithm List - Made by Evanβ
- Causal Trees | Hacker Newsβ
- A Framework for Convergence: Creating CRDTs Without Specialized Knowledgeβ
- Trade-offs between Different CRDTsβ
- Introduction to CRDTs | Zxch3nβ
- John Mumm - A CRDT Primer: Defanging Order Theory - YouTubeβ
- Keep CALM and CRDT on {pdf} | Hacker Newsβ
- CRDTs are basically broken: the minute you look at them you sacrifice any guarantees. This paper proposes a principled βfixβ, but what you need is more than a CRDT.
- Paper explores a richer API than that of CRDTs, which guarantees both update and query are meaningful
- CRDTs are a buzzname for lattices storing state. Whats needed is to think latticewise (monotonically) about how you use state, not just store it.
- An interactive intro to CRDTs | Hacker Newsβ π
- You might not need a CRDT | Hacker Newsβ
- Building a collaborative text editor in Goβ
- A Gentle Introduction to CRDTs - vlcn.ioβ
- dotJS 2019 - James Long - CRDTs for Mortals - YouTubeβ
- Designing Data Structures for Collaborative Apps - Matthew Weidnerβ
- CRDT: Fractional Indexing | Hacker Newsβ
- cola: a text CRDT for real-time collaborative editingβ
- An introduction to state-based CRDTsβ
- CRDT Benchmarks | Hacker Newsβ
- CRDTs: The Hard Parts - YouTubeβ
- Text CRDTs - PLunch 22/02/24 - Google Slidesβ
- The Art of the Fugueβ
- Peritext: A CRDT for Rich-Text Collaborationβ
- Faster CRDTs (2021) | Hacker Newsβ
- from seph
HB24: Network Programming #
Network Programming wen #
- Basics
- Unix Network Programming V1 (Book)
- Beejβs Guide to Network Conceptsβ
- So you think you understand IP fragmentation? [LWN.net]ββ
- OSI and TCP IP Models - Best Explanation - YouTubeβ
- Network Programming Self-Studyβ π
- Endianness, and why I donβt like htons(3) and friends | Lobstersβ
- Two File Descriptors for Sockets | Hacker Newsβ
- epoll: The API that powers the modern internet (2022) | Hacker Newsβ
- Modern communication: socketsβ
- IPC - Unix Signals | Goodnessβs blogβ
- Sockets
- IP
- TCP
- Why you should understand (a little) about TCPβ
- Networking 101: Building Blocks of TCP - High Performance Browser Networking (OβReilly)β
- Why TCP needs 3 handshakes | Hacker Newsβ
- The quantum state of a TCP portβ
- Connect() β a new API for creating TCP sockets from Cloudflare Workersβ
- slow TCP connect on Windows | daniel.haxx.seβ
- 40 Milliseconds of latency that just would not go away | Hacker Newsβ
- Linux Networking: How The Kernel Handles A TCP Connection - YouTubeβ
- Unix Domain Sockets vs Loopback TCP Sockets (2014) | Hacker Newsβ
- Network Instrumentation and TCP File Descriptor Hijackingβ
- Bind before connect β Idea of the dayβ
- Itβs always TCP_NODELAY. Every damn time. - Marcβs Blogβ
- Why TCP Over TCP Is A Bad Ideaβ
- TCP is harder than it looksβ
- What developers should know about TCP | Hacker Newsβ
- Optimizing global message transit latency: a journey through TCP configuration | Hacker Newsβ
- The infamous falsehood article
- Falsehoods programmers believe about TCP | Hacker Newsβ
- Falsehoods programmers believe about TCP | Lobstersβ
- Answers the TCP packet or no question
- UDP
- Userspace/Custom stack
- Go & Networking
- Introduction | ΓMQ - The Guideβ
- Virtual networking 101: Bridging the gap to understanding TAPβ π
- I sent an Ethernet packet | Hacker Newsβ
π HB16: Some Art & Craft is nice #
- Learn MagicaVoxel
- Pixel Art resourcesβ
- Paper Engineering
- Making Pop-Up Cards for Beginners (A course by Julia Yus , Graphic Designer)
- Share β Julia Yusβ (Resources)
- Draw
- Guitar & Music
- Woodwork get tools and find a mentor
HB:23: Electronics & Hardware #
Electronics basics #
Micro-controller #
Radio & Wireless #
- Bluetooth
- Radio
Robotics #
Prototyping/Fab #
- Make It Yourself | Hacker Newsβ π
- Hacker Fab | Hacker Newsβ
- Building Prototypes Dan Gelbart part 1 of 18 Introduction - YouTubeβ
- HTMAA 2023β (How To Make (almost) Anything MIT) π