Martin Kleppmann
Designing Data-Intensive Applications is hands down the book that has helped my career progress the most. It covers fundamentals topics about distributed systems that are crucial to know as you progress to a mid-level engineer and beyond. I've read it cover to cover multiple times and I often find myself referring back to it. If you're going to buy one book, this is the one.
Adam Wathan & Steve Schoger
I don't usually read books on design or user interfaces, but this is an exception. Refactoring UI is a book that written by the creators of TailwindCSS and it's as good as you'd expect it to be. Adam and Steve dive right into simple design principles and concepts that you can immediately take and apply to your own products. Don't miss out on it.
Remzi H. Arpaci-Dusseau & Andrea C. Arpaci-Dusseau
I never thought a technical book could be such a page-turner. The authors have managed to write this book in a way that makes it feel like a story: each chapter beatifully builds onto the previous chapterm, creating a fun journey from start to finish. And by the end of it you'll come out as a better engineer armed with essential knowledge on that little thing you use every single day: an operating system.
Alan A.A. Donovan & Brian W. Kernighan
Written by the legend Brian W. Kernighan himself, this book is as good as it gets when it comes to learning Go. This was my first introduction to the language and its what made me fall in love with it. It's full of code examples and exercises, as any good programming book should be, which will keep you engaged and practicing right till the end.
Michael Kerrisk
If you find yourself needing to learn about system calls, sockets, kernel space, or any other low-level concept, this book has you covered. This is the only book in the list that I haven't read cover to cover, and that's because I use it as a reference (and it's massive!). It deserves a spot on your bookshelf. When you need it, it'll come in handy. That's a promise.