Developer Resources
Planted 02022-05-31
- The Pragmatic Programmer (book)
- Clean Code (book)
- Beyond Clean Code
- The Cathedral and the Bazaar (book)
- The Linux Command Line
- On designing a more humane computer
- What is waste?
- Relevant xkcd
- Why Should I Care What Color the Bikeshed Is?
Choosing technology
- I’m Going To Scale My Foot Up Your Ass
- Scaling doesn’t scale
- Cargo Culting Practices
- Why Did So Many Startups Choose MongoDB?
- The road most traveled by
- Choose boring technology
- Using an outdated machine
- Gwern: Choosing Software
- Surely nobody would write a web service in C++
- The Reactive Manifesto
- Big Ball of Mud
- Cold-blooded software
- Yesterdays Technology Tomorrow
- Unix philosophy
- Questions for a new technology
- The API Churn/Security Trade-off
Misc
- RTFM (sic)
- Teach Yourself Programming in Ten Years
- How to Learn to Code
- The Silent Majority of Experts
- The Wrong Abstraction
- Worse Is Better
- AHA Programming
- The Rise of Worse is Better
- Software Engineering - The Soft Parts
- Git In Two Minutes
- Oh Shit, Git!?!
- The cost of convenience
- The Grug Brained Developer
- Death to Dependencies (video)
- Fire And Motion
- Strategy Letter II: Chicken and Egg Problems
- Embrace, extend, and extinguish
- No Silver Bullet
- The boring technology behind a one-person Internet company
- Why’s that company so big? I could do that in a weekend
- Google - Site Reliability Engineering (books)
- Jeff Atwood - Recommended Reading for Developers
- The Baked Data architectural pattern
- Simple bot detection methods
- Retry XMLHttpRequest Carefully
- The collapse of complex software
- Taco Bell Programming
- The Linux Programming Interface
- Build UNIX, not Uber
- Don’t call them users
- Design with materials, not features
- Software Engineering Research Questions
- How To Write Unmaintainable Code
- Maggie Appleton: Patterns
- OOPS! Learning From The Incident You Didn’t Have
- SWYX Launch Cheatsheet
- General guidance when working as a cloud engineer
- Names should be cute, not descriptive
- They’re rebuilding the Death Star of complexity
- Acts as Conference 2009 The Grand Unified Theory by Jim Weirich
- Cheng Lou - On the Spectrum of Abstraction at react-europe 2016
- Martin Fowler: BeckDesignRules
- 97 Things Every Programmer Should Know
- The Cloud Is Just Someone Else’s Computer
- In Defense of Not-Invented-Here Syndrome
- Embracing conways law
- SemVer
- CalVer
- ZeroVer: 0-based Versioning
- Good code is like a love letter to the next developer who will maintain it.
- visualising data structures and algorithms through animation
- Normalization of deviance
HTTP API Design
Moved to HTTP API
Database
- Designing Data-Intensive Applications (book)
- Build Your Own Database (book)
- Databases
- Learn PostgreSQL
- Postgres cheat sheet
- Databases: a thread by seldo
- Use the index luke: No offset
Deployment
Authentication
- Everything You Ever Wanted to Know About Authentication
- Everything You Ever Wanted to Know About Web Authentication in Node
- Applications
CMS
Object Storage
Misc
- Intro to GitHub for non-technical roles
- Serverless handbook (book)
- What’s a cache?
- HN: Readmes
- Raft: Understandable Distributed Consensus
- Networking books
- Everything Sysadmin books
- Bizarre and Unusual Uses of DNS
- Learning DNS in 10 years
- Teams should be an MVP feature!
- Object-Relational Mapping is the Vietnam of Computer Science
- Memory Allocation
- Destroy All Software screencasts
- What if Infrastructure as Code never existed - Adam Jacob (200% knowledge problem)
Web accessibility
- Accessible Development Checklist
- MagentaA11y accessibility checklist
- Best practices for inclusive textual websites
- Your Accessibility Claims Are Wrong, Unless…
- Better Form Design: One Thing Per Page
- Visually hidden content is a hack that needs to be resolved, not enshrined
- 16 little UI design rules
- Accessibility vs emojis
- W3C Placeholder research
Web
- Web development
- Internet standards
- The case for frameworks
- 10 Front-End Project Ideas
- Patterns.dev
- Getting Real
- web.dev: learn
- Web development: where are we, and where are we going?
- HTTP Archive
- Mozilla Developer Network (MDN) web docs
- Moby Dick Workout
- Dark mode
- Helpful 404s
- Specifying Spring ‘83
- The Consumer Authentication Strength Maturity Model
- Open UI
- Best practices for form design
- A Guide To Accessible Form Validation
- Adam Silver: Form design
- let’s talk about web components
- HTTP crash course
- Methods for designing and evaluating UIs
- The mother of all demo apps
- IndieWeb
- Hypermedia Systems
- Ryan Florence: Everything I Know About Client Side Routing
- Web Interface Guidelines
- WinterCG
- How Web Apps Ruined Developer Productivity
- Fast machines, slow machines
Programming
- Semantic Linefeeds
- Rosetta Code
- Basic computer games
- Tokenizer
- Critical Program Reading (1975) - 16mm Film
- A list of programming playgrounds
- What every programmer should know about memory
- Putting the “You” in CPU
- Let Over Lambda
- The Blub Paradox
JavaScript
- ECMAScript
- Exploring JavaScript
- JavaScript for impatient programmers
- Deep JavaScript
- Object vs map
- Practical Guide To Not Blocking The Event Loop
- React Aria dnd
TypeScript
- Typescript docs
- Cheatsheets for experienced React developers getting started with TypeScript
- Tackling TypeScript
- Exploring Advanced TypeScript Concepts - Guards, Utility Functions, and More (video)
- TypeScript tips and Tricks (video)
HTML
CSS
- caniuse
- CSS Specs
- Defensive CSS
- Every layout
- Devices.css: Modern devices crafted in pure CSS
- An Interactive Guide to Flexbox
- CSS Mesher
React
- React docs
- Getting Closure on React Hooks
- Epic React (course)
- The Joy of React (course)
- SWYX: Getting Closure on React Hooks
- usehooks-ts
- Understanding useMemo and useCallback
Issues
- How to create a Minimal, Reproducible Example
- HN: Technical writing
- how we write/review code in big tech companies
Error monitoring
Data science
Graphics
Security
- Starting an Application Security Career
- Security certification roadmap
- OWASP Cheat Sheet Series
- CWE View: Software Development
Algorithms
Sovereign cloud
Management
- Discipline doesn’t scale
- KRAZAM: Leadership Sync
- How to Be a Senior Leader
- awesome engineering team management
- Peopleware
- KPIs, Velocity, and Other Destructive Metrics
- Weekly sprint update template
- XKCD 1172: Workflow
- What Distinguishes Great Software Engineers?
- Conway’s Law
- Is Design Dead?
- The age of cargo cult Agile must end
- A Year of Scaling to a Multi-hundred Person Engineering Organization at Pleo
- Lethain: Who runs Engineering process?
- No Handoff: close the gap between product and engineering
- The Worst Programmer I Know
JS libraries
- Sigma JS: visualizing graphs of thousands of nodes and edges
- Highcharts: simply visualize
- MathJax: beautiful and accessible math in all browsers
- Howler: audio library for the modern web
- date-fns: modern JavaScript date utility library
- nutshell
- The Knight Lab
- Runkit
- Cosmos
- Sandpack (A code playground)
- Floating UI: optimally anchor a floating element next to another element
- TanStack Query: asynchronous state management
- tiptap: headless editor framework
- Observable Plot: visualize tabular data
- three.js: 3D library
- KaTex
- Madge: Create graphs from your CommonJS, AMD or ES6 module dependencies
Projects
- Decker
- Slow roads
- D2
- Lingon
- Coding curves
- Rive interactive graphics
- LosslessCut
- Perfect edition: web ebook template
- Drummer
- Notepad Calculator
- Typewriter
- Make bookmarklets
- Protomaps
- Phind
- works on oimo.io
What would a novice do wrong here?
An Easier Method for Extracting Tacit Knowledge
informal expertise extraction conversation yesterday, with a senior software engineer
- Experts attempt to predict the direction of change for their software requirements, and design accordingly
- Novices don’t realize the initial structure they chose was wrong and keep patching the mistaken design
- The senior engineer is aware of the tradeoffs. The novice engineers can’t even see them