Reading for every junior developer
- Your Job Is Not to Write Code by Laura Klein
- Pair Programming Economics by Olaf Lewitz
- A tweet about DRY / Don’t Repeat Yourself by Sarah Mei
- Mistakes You Apparently Just Have to Make Yourself by Dan McKinley
- How to study for exams—A playlist of short YouTube videos explaining how we learn, and how you should go about revising
Statistics
- Same Stats, Different Graphs by Justin Matejka & George Fitzmaurice—on looking at distributions, why we need to plot the data & never trust statistics tables
Refactoring & Code Design
- One of the Best Bits of Programming Advice I ever Got (aka Don’t make objects that end with ‘er’) by Travis Griggs (Object Orientation specific)
- Code Smells
- Jim Weirich speaking about Connascence in ‘The Grand Unified Theory’
- Codemania 2015: Josh Robb - Connascence & Coupling—similar material, better production values
- The Connascence site
- Class-Responsibility-Collaboration mapping
- Ports-And-Adapters / Hexagonal Architecture
- Composition Over Inheritance in a single tweet by Yan Cui
- Composition vs. Inheritance: How to Choose? by Steven Lowe on the ThoughtWorks blog
- Uncle Bob’s page on The Principles of OOD / archived version with live links, including SOLID
- QWAN Code Smells and Refactoring Cue Cards
- The Art of Giving and Receiving Code Reviews (Gracefully) and a 30m presentation
Git skills
- Dangit, Git!?!—you screwed up… find help here
- Git Pretty—a flow chart to help you work out what to do when you have a git mess
- 🌳🚀 CS Visualized: Useful Git Commands is a great site with animations of various Git operations that really help you to see what is happening
Testing
- Test Desiderata—Kent Beck writing about desirable properties of tests
- Mocks Aren’t Stubs by Martin Fowler
Architecture
- REST / Hypermedia: How to GET a Cup of Coffee by Jim Webber, Savas Parastatidis, Ian Robinson
- The Twelve-Factor App on building cloud native applications
- The Cathedral and the Bazaar
- Decisions, decisions—a talk by Dan North about trade-offs, and distinguishing decisions that matter a lot more than others
- Things: how we think of them, what that means for building systems by Keith Braithwaite discusses two ways of interpreting the world, and how engineers tendencies to follow categorisation can conflict with other peoples tendency to apply inference
Culture
- An important post addressing peoples comfort attending large meetings ON SHOWING UP TO THE TABLE by Katherine Daniels (@beerops)
- Check the links in this tweet from Bridget Kromhaut if you think ‘guys’ is a gender neutral term
- Investigating the Potential for Miscommunication Using Emoji by Hannah Miller
- CAP Theorum for teams, or Tradeoffs in Coordination Among Teams
- What Are Your Pronouns? by Jay Nordlinger
- Pronoun Island
- Tweet about a fascinating documentary about unexpected impacts of ecological diversity
Continuous Delivery / Operations / Devops
- The Pushtrain by Dan McKinley—an excellent piece about the importance of managing the human side of continuous delivery, since tools are just part of the problem and culture is more significant
- Good design principles around Chef Cookbooks: Our Experiences with Chef: Cookbook and Attribute Design by Clinton Wolfe of OmniTI
- Database Migrations Done Right by Michael Brunton-Spall
- The OSI Model / Seven Layer Model of networking—every web developer should have a high level understanding of this
- An interesting article by John Allspaw—Etsy’s former CTO—about effective questioning in the context of incident post mortems called The Infinite Hows (as opposed to ‘The Five Whys’).
- Etsy’s awesome resource about running effective debriefs after incidents, building on blameless postmortems & focusing on the importance of learning. Code As Craft article by John Allspaw / Debriefing Facilitation Guide PDF
- CORS (cross-origin-resource-sharing) explained in one cartoon by Julia Evans
- A whole site explaing CORS
- How DNS Works
- How the Internet works: Submarine fibre, brains in jars, and coaxial cables
- Web Developer Checklist
- Bash scripting quirks & safety tips by Julia Evans
- Breaking Down Your Build: Architectural Patterns For A More Efficient Pipeline by Abraham Marin-Perez
Interesting Postmortems & War Stories
- Knightmare: A DevOps Cautionary Tale by Doug Seven… on what can go wrong when technical debt, deployments and the financial industry collide
- How and why the leap second affected Cloudflare DNS
- A Loud Sound Just Shut Down a Bank’s Data Center for 10 Hours by Andrada Fiscuțean
Collaboration and Leadership
- How great leaders inspire action—a TEDx talk by Simon Sinek about ‘Why, How, What’ (18 minutes)
- This is why you shouldn’t interrupt a programmer by Jason Heeris
- Countering the above I suggest engineers watch this fascinating documentary about insight, problem solving and rest affects your ability… watch about five minutes starting from 46:56. BBC HORIZON The Creative Brain. How Insight Works.
- Cynefin (ties in with learning approaches)
- Zach Holman’s speaking.io, a great resource with tips about public speaking.
- Working with Queue and Stack people by Marc Esher
- The Dilts Pyramid as a Coaching Tool by Liz Garnett (looking for a more technically appropriate resource I can link to on this)
- Situational Leadership Model
- The Most Dangerous Leadership Traps — and the 15-Minute Daily Practice That Will Save You
- Some useful tips on training yourself to be more empathetic: Stop Controling Your Reactions to Others’ Behavior by J. B. Rainsberger
- How to make a sandwich—Dan North talking about how to deliver feedback (if you think it’s ‘good news, bad news, good news’, you should watch this)
Engineering Books
- The Phoenix Project by Gene Kim (a must read to understand how Operations departments need to become more agile and more efficient)
- Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation by Jez Humble & David Farley
- Talking with Tech Leads: From Novices to Practitioners by Patrick Kua
Manchester
- TechNW—details of technical meetups in Manchester
- Hidden Manchester—my unhealthy obsession, and an article about it: Mapped: The whole of underground Manchester
Technical Resources
- ripgrep is around ten times faster than grep, and supports multi threaded processing
- Measure your network speed with fast.com
- Measure your performance with WebPageTest
- Record and share your terminal sessions, the right way: asciinema
- Static analysis for your shell scripts: ShellCheck
- Internet Archive Wayback Machine, for those pages that don’t exist in the present any more
- HTTP Archive tracks trends in how the web is built
- Sankeymatic generates Sankey Diagrams from code