Software engineering
- Software has bugs. This is normal. DHH
- The simplest thing that could possibly work by DHH
- User-friendly system deliberately provides fewer features
- Locality of Behaviour (LoB)
- How Did REST Come To Mean The Opposite of REST?
- A better alternative to MPAs and SPAs
- SPA Alternative
- Hypermedia-Driven Applications
- What are questions?
- Holding a program in one’s head
- Don’t Solve Imaginary Problems
- Snowflake method for software projects
- Organizational Skills Beat Algorithmic Wizardry
- The Code Review Mindset
- Object-Oriented Programming: A Disaster Story
- Execution in the Kingdom of Nouns
- Best websites a programmer should visit
- What growth engineers can teach us about engineering
- How I build MVPs within 3 days
- Hunting for great names in programming
- How to actually ship software that actually works
- On Being A Senior Engineer
- The Shocking Secret About Static Types
- Make Large Scale Changes Incrementally with Branch By Abstraction
- Enabling Trunk Based Development with Deployment Pipelines
- Tell, Don’t Ask
- Designing Data-Driven Interfaces
- OSS. Why this is not still merged?
- How we structure our work and teams at Basecamp
- Full-stack development is alive and well. And for good reasons.
- Thoughts on Calypso, WordPress and JavaScript
- How to Improve as a Programmer
- How We Got Over Our Fear of SEO and Improved Conversions
- A Gentle Introduction to Data Structures: How Graphs Work
- Composition vs Inheritance
- Here’s Why Client-side Rendering Won
- Surge VS GitHub Pages: How to deploy a create-react-app project
- Read a lot of software, and write a lot of software
- How you can learn more by writing code than by reading it
- REST in Peace: Microservices vs monoliths in real-life examples
- Replacing React with Rails. Or, Use the Right Tools for the Job
- By building projects for 100 days straight you’ll make the coding your daily habit
- Why the founder of Rails automatically rejects 80% of Software Engineer applicants
- Journey to HTTP/2
- Why I’m Done Making Desktop Applications
- 12 Signs You’re Working in a Feature Factory
- We reverse engineered 16k apps, here’s what we found
- Why you should have your own Twitter bot, and how to build one in less than 30 minutes
- Create a Simple Twitter Bot with Node.js
- 8 Ways Twitter Bots Are Actually Helping Us
- The many, many ways that cryptographic software can fail
- How we got our 2-year-old repo trending on GitHub in just 48 hours
- Lossless Web Navigation with Trails
- An interview with the creator of Linux: “Successful projects are 99 percent perspiration, and one percent innovation”
- Horses for courses
- Introduction to Web Audio API
- My Text Editor Journey: Vim, Spacemacs, Atom and Sublime Text
- The 100% Correct Coding Style Guide
- How To Get Experience Working With Large Datasets
- Here’s How You Start Using Docker
- What it’s like to build and market a chatbot when you’re only 14 years old
- The Rule of Three
- Stopping the Death Spiral of Indecision
- Fewer and Faster
- NGINX rate-limiting in a nutshell
- How to make your Tic Tac Toe game unbeatable by using the minimax algorithm
- An essential guide to the serverless ecosystem (2017)
- Sharding & IDs at Instagram
- Spotting Feature Envy and Refactoring
- Refactoring from Good to Great by Ben (Ruby Conf 2012. Video 44m)
- Mastering Chrome Developer Tools: Next Level Front-End Development Techniques
- Why Static Site Generators Are The Next Big Thing
- Static Site Generators Reviewed: Jekyll, Middleman, Roots, Hugo
- Building a Static CMS (Contentful + Roots + Netlify)
- How we got 1,500 GitHub stars by mixing time-tested technology with a fresh UI
- The Absolute Minimum Every Software Developer Must Know About Unicode and Character Sets
- Five Factor Testing
- Vary: User-Agent header
- Installable Web Apps with the Web App Manifest
- How I Reduced my DB Server Load by 80% (Shneems)
- Rise of Functions as a Service: How PHP Set the “Serverless” Stage 20 Years Ago
- It’s ok to use JavaScript generated GUID in a browser?
- I wanted real time GitHub push notifications. So I built a Chrome extension
- A responsive screenshot comparison tool
- WTF is a Thread (by Schneems)
- Why would anyone choose Docker over fat binaries?
- My web app died from performance bankruptcy
- Can You Afford It?: Real-world Web Performance Budgets
- Take control of your scroll: customizing pull-to-refresh and overflow effects
- Rerere Your Boat… (
git rerere
functionality) - Git Shortcuts Like You’ve Never Seen Before
- Lesser known Git commands
- Git Submodules
- git fixup: –amend for older commits
- The Modular Monolith: Rails Architecture
- Write business rules in Clojure (Clara Rules)
- Password Form Styles that Chromium Understands
- The Comprehensive Guide to Serverless Architecture (2017)
- Documenting Architecture Decisions
- Using the Marketing API with the Facebook Pixel
- Securing User Emails in Rails (GDPR)
- Why I hate your Single Page App
- Build a JavaScript Single Page App Without a Framework
- Kanban: caring about the whole development process
- What does a VP of Engineering do?
- The “Bug-O” Notation
- The Elements of UI Engineering
- Abusing web browsers for persistent and stealthy computation
- Google is building an AI by Steve Yegge 2004
- The Part-Time Parliament (Consistency, Distributed Systems)
- Apple’s biggest Swift mistake (Aor 2019)
- The State of the Octoverse: top programming languages of 2018
- Speed in Software Development
- The mythical 10x programmer
- Why Functional Programming Matters
- What is a socket from a programming perspective?
- Spinlock - A mutex for OS kernels
- How do I “git blame” a deleted line?
- Write Code Like You Just Learned How to Program
- 20 controversial programming opinions
- Taiji: managing global user traffic for large-scale Internet services at the edge
- Don’t Distract New Programmers with OOP
- What is the difference between polymorphism and duck typing?
- Building a secure by default, composable future for WebAssembly
- The Transformation Priority Premise (Uncle Bob)
- Emscripten and the LLVM WebAssembly backend
- What is WebAssembly 2022
- I wrote a programming language. Here’s how you can, too
- Visitor pattern (Wiki)
- Decorator vs Visitor design patterns
- LLVM - the design decisions (Chris Lattner)
- The Maintenance of Large Open-Source Projects
- What is Edge compute (Steve Klabnik)
- Stack based vs Register based Virtual Machine Architecture
- Welcome to C# 9.0
- Why does integer division in C# return an integer and not a float?
- C#: Program Entirely With Static Methods
- What is WebAssembly, and what is it not?
- HTTP/3: the past, the present, and the future
- Fossil vs Git
- The Configuration Complexity Clock
- Heisenberg Developers
- The Onion Of Compromise
- An introduction to UNIX processes
- SSL certificate revocation and how it is broken in practice
- An alternative to macOS’s DYLD_LIBRARY_PATH
- Nix by example
- Setting expectations for open source participation
- Programmers are bad at managing state
- OO vs FP by Robert C. Martin
- What would … if only 1/10th the resources?
- What made Lisp different
- Production Twitter on One Machine? Tristan Hume
- Only 1% Need Microservices
- Memory, Pages, mmap, and Linear Address Spaces
- Code that Doesn’t Rot
- How to do distributed locking
- Actually Portable Executable
- Minimalism in Programming
- Mitigating replication lag and reducing read load with freno
- How to exclude commits from git blame
- Why Gumroad Didn’t Choose htmx
- Writing tests that fail