Compare commits

..

10 Commits

Author SHA1 Message Date
Charles-Axel Dein
fb746374ee Add genAI section 2026-04-01 23:05:56 -04:00
Charles-Axel Dein
e5f58679a4 Add fonts 2026-03-31 23:29:48 -04:00
Charles-Axel Dein
2208b01ab7 Add agentic coding section 2026-03-31 09:00:02 -04:00
Charles-Axel Dein
51b357617a Add errors and optimization articles 2026-03-22 20:37:02 -04:00
Charles-Axel Dein
1e2768d74a Add error and simplicity articles 2026-03-04 13:57:36 -08:00
Charles-Axel Dein
7ed526c486 Add decision tree article 2026-03-02 14:41:08 -05:00
Tiago monteiro
3cc2198a6b Update README.md 2026-02-28 16:23:11 -05:00
Charles-Axel Dein
15fd99f584 Add Google SRE 2026-02-08 18:17:24 -05:00
Charles-Axel Dein
c87bc0f3a5 Add typescript-book 2026-01-11 19:11:59 -05:00
Charles-Axel Dein
2f3be06682 Add publishing your work 2026-01-09 08:40:21 -05:00
2 changed files with 62 additions and 7 deletions

View File

@@ -15,6 +15,7 @@
- [Courses](#courses)
- [Topics](#topics)
- [Accounting](#accounting)
- [Agentic coding](#agentic-coding)
- [Algorithm and data structures](#algorithm-and-data-structures)
- [API design & development](#api-design--development)
- [Attitude, habits, mindset](#attitude-habits-mindset)
@@ -41,6 +42,7 @@
- [Continuous Integration (CI)](#continuous-integration-ci)
- [Data analysis & data science](#data-analysis--data-science)
- [Databases](#databases)
- [Internals](#internals)
- [NoSQL](#nosql)
- [Postgres](#postgres)
- [Data formats](#data-formats)
@@ -61,8 +63,10 @@
- [Engineering management](#engineering-management)
- [Exercises](#exercises)
- [Experimentation](#experimentation)
- [Fonts](#fonts)
- [Functional programming (FP)](#functional-programming-fp)
- [Games development](#games-development)
- [Generative AI](#generative-ai)
- [Graphics](#graphics)
- [Hardware](#hardware)
- [HTTP](#http)
@@ -353,10 +357,14 @@ There are some free books available, including:
- [Engineers Do Not Get To Make Startup Mistakes When They Build Ledgers](https://news.alvaroduran.com/p/engineers-do-not-get-to-make-startup)
### Agentic coding
- [Anatomy of the .claude/ Folder](https://blog.dailydoseofds.com/p/anatomy-of-the-claude-folder)
### Algorithm and data structures
- Read the [CLRS](https://mitpress.mit.edu/books/introduction-algorithms). You can watch and download the course on [OCW](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/) - there are newer courses as well.
- Or [The Algorithm Design Manual](https://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202?ie=UTF8&qid=1297127794&ref_=sr_1_1&sr=8-1)
- Or [The Algorithm Design Manual](https://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202?ie=UTF8&qid=1297127794&ref_=sr_1_1&sr=8-1) (Skiena)
- Try out some algorithms on [Project Euler](https://projecteuler.net/)
- [CS 61B Spring 2023](https://sp23.datastructur.es/)
@@ -364,7 +372,7 @@ Other resources:
- [Algorithms](http://jeffe.cs.illinois.edu/teaching/algorithms/), Jeff Erickson
Let's be honest: algorithms can be a pretty dry topic. [This quora question](https://www.quora.com/Is-there-a-book-that-teaches-algorithms-data-structures-and-other-computer-science-basics-in-a-fun-way) lists some funnier learning alternative, including:
Here are some useful & interesting algo & DS visualizations:
- [Grokking Algorithms](https://www.amazon.com/dp/1617292230/ref=cm_sw_su_dp)
- [Essential Algorithms](https://www.amazon.com/Essential-Algorithms-Practical-Approach-Computer/dp/1118612108?ie=UTF8&*Version*=1&*entries*=0)
@@ -375,6 +383,7 @@ Let's be honest: algorithms can be a pretty dry topic. [This quora question](htt
- [B-trees and database indexes](https://planetscale.com/blog/btrees-and-database-indexes)
- [Big O visualizations](https://samwho.dev/big-o/)
- [Algorithm explained like Ikea instructions](https://idea-instructions.com/)
- [Decision Trees](https://mlu-explain.github.io/decision-tree/)
Example implementations:
@@ -615,6 +624,7 @@ Biases don't only apply to hiring. For instance, the fundamental attribution bia
- Examples: building relationships before you need them, understanding the incentives, managing up effectively, creating win-win situation, being visible.
- "The alternative to good politics isnt no politics. Its bad politics winning by default. Its the loud person whos wrong getting their way because the quiet person whos right wont speak up."
- [21 Lessons from 14 Years at Google](https://addyo.substack.com/p/21-lessons-from-14-years-at-google)
- [Publishing your work increases your luck](https://github.com/readme/guides/publishing-your-work)
About senior engineers:
@@ -749,20 +759,24 @@ See also the SQL section.
- [A plain English introduction to CAP Theorem](http://ksat.me/a-plain-english-introduction-to-cap-theorem)
- [PACELC theorem](https://en.wikipedia.org/wiki/PACELC_theorem): "in case of network partitioning (P) in a distributed computer system, one has to choose between availability (A) and consistency (C) (as per the CAP theorem), but else (E), even when the system is running normally in the absence of partitions, one has to choose between latency (L) and consistency (C)."
- [Zero downtime database migrations](https://blog.rainforestqa.com/2014-06-27-zero-downtime-database-migrations/) (code examples are using Rails but this works great for any programming language)
- [Algorithms Behind Modern Storage Systems](https://queue.acm.org/detail.cfm?id=3220266), ACM Queue
- [Let's Build a Simple Database](https://cstack.github.io/db_tutorial/)
- [Readings in Database Systems, 5th Edition](http://www.redbook.io/)
- [Comparing database types: how database types evolved to meet different needs](https://dataguide.prisma.io/intro/comparing-database-types)
- [How does a relational database work](http://coding-geek.com/how-databases-work/)
- [Use the index, Luke](https://use-the-index-luke.com/)
- [Course introduction — MySQL for Developers](https://planetscale.com/learn/courses/mysql-for-developers/introduction/course-introduction), PlanetScale
- [How Query Engines Work](https://howqueryengineswork.com/00-introduction.html)
- [Why you should probably be using SQLite | Epic Web Dev](https://www.epicweb.dev/why-you-should-probably-be-using-sqlite)
Scaling databases:
- [How Figma's Databases Team Lived to Tell the Scale](https://www.figma.com/blog/how-figmas-databases-team-lived-to-tell-the-scale/): interesting story about sharding
#### Internals
- [How Query Engines Work](https://howqueryengineswork.com/00-introduction.html)
- [Let's Build a Simple Database](https://cstack.github.io/db_tutorial/)
- [Algorithms Behind Modern Storage Systems](https://queue.acm.org/detail.cfm?id=3220266), ACM Queue
- [sorted string tables (SST) from first principles](https://www.bitsxpages.com/p/sorted-string-tables-sst-from-first)
#### NoSQL
- [NOSQL Patterns](http://horicky.blogspot.nl/2009/11/nosql-patterns.html)
@@ -779,10 +793,15 @@ Scaling databases:
- [Transaction Isolation in Postgres, explained](https://www.thenile.dev/blog/transaction-isolation-postgres)
- [PostgreSQL exercises](https://pgexercises.com/)
- [Postgres operations cheat sheet](https://wiki.postgresql.org/wiki/Operations_cheat_sheet)
- [Just use Postgres](https://mccue.dev/pages/8-16-24-just-use-postgres)
- [Postgres is Enough](https://gist.github.com/cpursley/c8fb81fe8a7e5df038158bdfe0f06dbb)
- [Postgres: don't Do This](https://wiki.postgresql.org/wiki/Don't_Do_This)
- [PostgreSQL and UUID as primary key](https://maciejwalkowiak.com/blog/postgres-uuid-primary-key/)
- [Postgres lock explained](https://postgreslocksexplained.com/)
"Just use postgres":
- [Just use Postgres](https://mccue.dev/pages/8-16-24-just-use-postgres)
- [Postgres is Enough](https://gist.github.com/cpursley/c8fb81fe8a7e5df038158bdfe0f06dbb)
- [Its 2026, Just Use Postgres](https://www.tigerdata.com/blog/its-2026-just-use-postgres)
### Data formats
@@ -797,6 +816,7 @@ Scaling databases:
- [A love letter to the CSV format](https://github.com/medialab/xan/blob/master/docs/LOVE_LETTER.md)
- [Falsehoods Programmers Believe About Aviation](https://flightaware.engineering/falsehoods-programmers-believe-about-aviation/)
- [Schemas - Schema.org](https://schema.org/docs/schemas.html)
- [ZIP Code First](https://zipcodefirst.com/)
### Data science/data engineering
@@ -950,6 +970,10 @@ Articles:
- Predictable: does what you expect
- Idiomatic: feels natural
- Domain-based: the solution domain models the problem domain in language and structure
- [Nobody Gets Promoted for Simplicity](https://terriblesoftware.org/2026/03/03/nobody-gets-promoted-for-simplicity/)
> “Simplicity is a great virtue, but it requires hard work to achieve and education to appreciate. And to make matters worse, complexity sells better.”
> — Edsger Dijkstra
> You can use an eraser on the drafting table or a sledge hammer on the construction site. (Frank Lloyd Wright)
@@ -1143,6 +1167,10 @@ Practice:
- [8 annoying A/B testing mistakes every engineer should know](https://posthog.com/blog/ab-testing-mistakes)
### Fonts
- [GitHub Monaspace Case Study](https://lettermatic.com/custom/monaspace-case-study)
### Functional programming (FP)
- [Goodbye, Object Oriented Programming](https://medium.com/@cscalfani/goodbye-object-oriented-programming-a59cda4c0e53#.39ax09e4k)
@@ -1170,6 +1198,10 @@ Practice:
- [Introduction · Joys of Small Game Development](https://abagames.github.io/joys-of-small-game-development-en/)
### Generative AI
- [Don't Let AI Write For You](https://alexhwoods.com/dont-let-ai-write-for-you/)
### Graphics
- [Text Rendering Hates You](https://faultlore.com/blah/text-hates-you/)
@@ -1296,6 +1328,7 @@ Note: this is about you as an interviewee, **not** as an interviewer. To check o
- [Preparing for the Systems Design and Coding Interview](https://blog.pragmaticengineer.com/preparing-for-the-systems-design-and-coding-interviews/), Gergely Orosz
- [What I Learned from Doing 60+ Technical Interviews in 30 Days](https://meekg33k.dev/what-i-learned-from-doing-60-technical-interviews-in-30-days)
- [System Design Interview Guide for Senior Engineers](https://interviewing.io/guides/system-design-interview), interviewing.io
- [noamseg/interview-coach-skill](https://github.com/noamseg/interview-coach-skill): a Claude Code-based interview coach
Questions you should ask:
@@ -1482,6 +1515,7 @@ Richard Feynman's Learning Strategy:
- [Transformers from Scratch](https://e2eml.school/transformers.html)
- [A Gentle Introduction to Graph Neural Networks](https://distill.pub/2021/gnn-intro/)
- [The Math Behind Artificial Intelligence](https://www.freecodecamp.org/news/the-math-behind-artificial-intelligence-book) - Tiago Monteiro. Covers linear algebra, calculus, probability, and optimization theory in the context of AI and machine learning.
### Math
@@ -1527,6 +1561,8 @@ _See also: [Site Reliability Engineering (SRE)](#site-reliability-engineering-sr
- Write clearly
- [Errors, Errors Everywhere: How We Centralized and Structured Error Handling](https://olivernguyen.io/w/namespace.error/) (for Go, but useful for any languages)
- For inspiration: [Handle Errors - Graph API](https://developers.facebook.com/docs/graph-api/guides/error-handling#receiving-errorcodes)
- [The Error Model](https://joeduffyblog.com/2016/02/07/the-error-model/), Joe Duffy, 2016.
- [The Product-Minded Engineer: The importance of good errors and warnings](https://newsletter.pragmaticengineer.com/p/the-product-minded-engineer?publication_id=458709&r=4qowh)
#### Metrics
@@ -1606,6 +1642,16 @@ _See also: [Site Reliability Engineering (SRE)](#site-reliability-engineering-sr
- [Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust](https://benhoyt.com/writings/count-words/): a great way to learn about measuring performance.
- [The Mathematical Hacker](https://www.evanmiller.org/mathematical-hacker.html)
- [Four Kinds of Optimisation](https://tratt.net/laurie/blog/2023/four_kinds_of_optimisation.html)
- [Rob Pike's 5 Rules of Programming](https://www.cs.unc.edu/~stotts/COMP590-059-f24/robsrules.html)
- You can't tell where a program is going to spend its time.
- Measure first.
- If n is small, don't get fancy.
- Fancy algo are buggier.
- Data structures, not algo, are central to programming.
> Premature optimization is the root of all evil.
>
> Donald Knuth
### Personal knowledge management (PKM)
@@ -2031,6 +2077,14 @@ Books:
- 📖 [Building Microservices](https://www.amazon.com/Building-Microservices-Designing-Fine-Grained-Systems/dp/1491950358), Sam Newman (quite complete discussion of microservices)
- 📖 [Designing Data-Intensive Applications](https://dataintensive.net/)
- 📖 [Building Secure and Reliable Systems](https://google.github.io/building-secure-and-reliable-systems/raw/toc.html), Google, (free online). Very complete book.
- Design for security & reliability
- Design tradeoffs
- Design for least privilege
- Design for understandability
- Design for a changing landscape
- Design for resilience
- Design for recovery
Articles:

View File

@@ -62,3 +62,4 @@ Image from https://github.com/kamranahmedse/developer-roadmap
- [leonardomso/33-js-concepts](https://github.com/leonardomso/33-js-concepts): 33 JavaScript concepts every developer should know.
- [The Modern JavaScript Tutorial](https://javascript.info/)
- [A slightly sarcastic history of frontend](https://app.daily.dev/posts/a-slightly-sarcastic-history-of-frontend-1ohcpd7uq)
- [gibbok/typescript-book: The Concise TypeScript Book: A Concise Guide to Effective Development in TypeScript. Free and Open Source.](https://github.com/gibbok/typescript-book)