Archive
- HOW DISCORD STORES TRILLIONS OF MESSAGES
- B-trees and database indexes
- Engineering Principles for Building Financial Systems
- why we no longer use LangChain for building our AI agents
- Implementing React From Scratch
- JS Dates Are About to Be Fixed
- The web's clipboard, and how it stores data of different types
- Ruby: a great language for shell scripts!
- find + mkdir is Turing complete
- Troubleshooting: Terminal Lag
- How does a computer/calculator compute logarithms?
- Writing GUI apps for Windows is painful
- Okay, I really like WezTerm
- Taking command of the Context Menu in macOS
- Linux Pipes are Slow
- It works on my machine. Why?
- How I keep myself Alive using Golang
- The One Billion Row Challenge in Go: from 1m45s to 3.4s in nine solutions
- Visualizing algorithms for rate limiting
- HTTP/2 and HTTP/3 explained
- Mediocre Engineer’s guide to HTTPS
- 🦑 The 14 pains of building your own billing system
- Execute formulas stored in database fields with (almost) standard SQL
- CODING MY HANDWRITING
- Printing music with CSS Grid
- How web bloat impacts users with slow devices
- An overview of Nix in practice
- (comic) bash debugging
- Git as debugging tool
- HTML attributes vs DOM properties
- Distributed SQLite: Paradigm shift or hype?
- Demystifying the protobuf wire format
- How Instagram scaled to 14 million users with only 3 engineers
- Populating the page: how browsers work
- You Don't Need to "Learn" Svelte
- Fixing For Loops in Go 1.22
- The Changing “Guarantees” Given by Python's Global Interpreter Lock
- Writing a TrueType font renderer
- You don't need JavaScript for that
- Being Picky about a CSS Reset for Fun & Pleasure
- Building a high performance JSON parser
- Was Rust Worth It?
- One Game, By One Man, On Six Platforms: The Good, The Bad and The Ugly
- Confusing git terminology
- The AWK book’s 60-line version of Make
- Draggable objects
- Introducing Enhance Music
- print(“lol”) doubled the speed of my Go function
- 11 years of hosting a SaaS
- How Canva saves millions annually in Amazon S3 costs
- Python: Uncovering the Overlooked Core Functionalities
- Moneyball for Software Teams – An Imperfect Heuristic for Quantifying Dev Performance
- {n} times faster than C
- Few lesser known tricks, quirks and features of C
- How I added C-style for-loops to Python
- Just normal web things.
- Bézier Curves
- JavaScript Gom Jabbar
- The single most important factor that differentiates front-end frameworks
- The Staggering Frontiers of CSS
- Modern CSS For Dynamic Component-Based Architecture
- Imaginary Problems Are the Root of Bad Software
- A slack clone in 5 lines of bash
- Rewriting the Ruby parser
- Tech debt metaphor maximalism
- Text Editor Data Structures
- Generating income from open source
- Debating Linux in Aerospace
- Plain Text Journaling
- Don't write clean code, write CRISP code
- Making Python 100x faster with less than 100 lines of Rust
- Building GitHub with Ruby and Rails
- Optimizing Open Addressing
- Implement DNS in a weekend
- Building ClickHouse Cloud From Scratch in a Year
- Introducing storage on Vercel
- Deduplicate a slice in Go, use sort or a map?
- Amazon Prime Video team throws AWS Serverless under a bus
- Update millions of records in Rails
- A few words on Ruby's type annotations state
- Modern HTML email (tables no longer required)
- Rebuilding a featured news section with modern CSS: Vox news
- Spinning Diagrams with CSS
- Conditional CSS with :has and :nth-last-child
- Why is OAuth still hard in 2023?
- Keep the monolith, but split the workloads
- LIGATURES IN PROGRAMMING FONTS: HELL NO
- Monte Carlo methods
- Virtual DOM is pure overhead
- The technology behind GitHub’s new code search
- Apache Kafka Beyond the Basics: Windowing
- Rails on Docker
- Examples of floating point problems
- Using {Blocks} in Rust & Go for Fun & Profit
- Accessible hamburger buttons without JavaScript
- Conditional CSS
- Writing Javascript without a build system
- Three bugs in the Go MySQL Driver
- The evolution of Facebook’s iOS app architecture
- How We Reduced Our iOS App Launch Time by 60%
- Thoughts on the Python packaging ecosystem
- pip and cargo are not the same
- 20 Things I’ve Learned in my 20 Years as a Software Engineer
- RTS DEVLOG: HOW TO BEAT LAG
- 2022 Review | The adoption of Rust in Business
- Scaling Mastodon in the Face of an Exodus
- The state of HTTP in 2022
- Tips for analyzing logs
- Should Small Rust Structs be Passed by-copy or by-borrow?
- Rust’s Ugly Syntax
- Get Started with Rust: Generics
- Is coding in Rust as bad as in C++?
- Welcome to Comprehensive Rust 🦀
- React Native is not the future
- Flying away from AWS
- How setting the TZ environment variable avoids thousands of system calls
- PHP in 2023
- Devenv: Compose a Developer Environment easily for PHP with Nix
- Microfeatures I'd like to see in more languages
- A Visual Guide to useEffect
- The yaml document from hell
- What happens when you open a terminal and enter ‘ls’
- The truth about CSS selector performance
- What if writing tests was a joyful experience?
- 35% Faster Than The Filesystem
- Git Commands You Probably Do Not Need
- New in Go 1.20: wrapping multiple errors
- Devpod: Improving Developer Productivity at Uber with Remote Development
- Setting up my new laptop: nix style
- Index Merges vs Composite Indexes in Postgres and MySQL
- I Migrated from a Postgres Cluster to Distributed SQLite with LiteFS
- The i3-gaps project has been merged with i3
- Rust for professionals
- The Unreasonable Effectiveness of AWK
- The Modern Observability Problem
- CloudFront vs Cloudflare, and how to reduce response times for both by ~35%+
- Making a Go program 42% faster with a one character change
- Building a BitTorrent client from the ground up in Go
- Unix time is bad and needs replacement, not UTC
- The type system is a programmer's best friend
- Idiot proof git
- What is the Difference between px, rem and em?
- Blessed, An unofficial guide to the Rust ecosystem
- Ruby adds a new core class called Data to represent simple immutable value objects
- How to speed up the Rust compiler in October 2022
- Migrating from Vue 2 to Svelte
- Speeding up the JavaScript ecosystem
- Beautiful CSS checkboxes examples
- Making a DNS query in Ruby from scratch
- How to maintain engineering velocity as you scale
- Ultimate Guide to FFMPEG
- CODING CURVES
- Drag and drop from terminal
- I built a Bus Clock with a Raspberry Pi
- The Perfect Commit
- Ten challenges for Rust
- Why Rust?
- One million queries per second with MySQL
- Go runtime: 4 years later
- Git’s database internals I: packed object store
- Git’s database internals II: commit history queries
- React I Love You, But You're Bringing Me Down
- Understanding useMemo and useCallback
- Data Engineering Best Practices: How Netflix Keeps Its Data Infrastructure Cost-Effective
- Comparing Floating-Point Numbers Is Tricky
- How to deal with life after Heroku
- How I’m a Productive Programmer With a Memory of a Fruit Fly
- How to Bypass Cloudflare: A Comprehensive Guide
- Finding Relationships Between Ruby’s Top 100 Packages and Their Dependencies
- Hosting SQLite databases on Github Pages
- When life gives you lemons, write better error messages
- I Tracked Everything I Read on the Internet for a Year
- How I make a living working on SerenityOS
- Things You Should Know About Databases
- Vulnerability Management for Go
- How we built Pingora, the proxy that connects Cloudflare to the Internet
- HAVING, a less understood SQL clause
- The impact of removing jQuery on our web performance
- Scaling Git’s garbage collection
- Rob Pike’s simple C regex matcher in Go
- Parsing SQL
- WHY YOUR WEBSITE SHOULD BE UNDER 14KB IN SIZE
- Making a Website Under 1kB
- First Batch of Color Fonts Arrives on Google Fonts
- Technical Writing for Developers
- Your Code Doesn't Have to Be a Mess
- How Did REST Come To Mean The Opposite of REST?
- How to market to developers on Twitter: Learnings from 4 months of Supabase feed
- SSH Tips and Tricks
- A Little Story About the `yes` Unix Command
- Programming Languages Database
- Difftastic, the Fantastic Diff
- Research: quantifying GitHub Copilot’s impact on developer productivity and happiness
- 2022 StackOverflow Developer Survey
- Things I wish everyone knew about Git (Part I)
- Data Race Patterns in Go
- Beginner's guide to Error Handling in Rust
- GitLab architecture overview
- I've been abusing HTTP Status Codes in my APIs for years
- tolower() in bulk at speed
- The Documentation Triangle (or, why code isn't self documenting)
- The documentation system
- What happens when you press a key in your terminal?
- Pronunciation guide for UNIX
- Making popular Ruby packages more secure
- Sunsetting Atom
- Uncurled
- The Future Database
- Healthchecks.io Hosting Setup, 2022 Edition
- 😵💫 Why billing systems are a nightmare for engineers
- Modern programming languages require generics
- The true cost of linked lists
- Simple software things that are actually very complicated
- everything you ever wanted to know about terminals
- (async) Rust doesn't have to be hard
- Building a Cloud Database from Scratch: Why We Moved from C++ to Rust
- Rust Is Hard, Or: The Misery of Mainstream Programming
- Rust without the async (hard) part
- More than you ever wanted to know about font loading on the web
- Write HTML Right
- Render mathematical expressions in Markdown
- 远程工作的光谱
- Explain Shell
- A decade of dotfiles
- Stop Interviewing With Leet Code
- Why We Write Everything in Go
- Experience Report: 6 months of Go
- Shaving 40% Off Google’s B-Tree Implementation with Go Generics
- Safer Enums
- Why LSP?
- Four Eras of JavaScript Frameworks
- Demystifying Database Performance for Developers
- Why Ruby has Symbols
- 8 Javascript quiz that may confuse you
- Go's Concurrency Examples in Java 19
- Why companies move off Heroku (besides the cost)
- Stop Validating Email Addresses With Regex
- Starting a blank Jekyll site with Tailwind CSS in 2022
- Modernizing AWK, a 45-year old language, by adding CSV support
- Go Developer Survey 2021 Results
- New data: Do developers think Web3 will build a better internet?
- Generics can make your Go code slower
- How to design better APIs
- Why we don’t use a staging environment
- Avoiding the Top 10 NGINX Configuration Mistakes
- Speeding up Go's builtin JSON encoder up to 55% for large arrays of objects
- Go mod's lesser known features
- Scripting with Go
- Design Of This Website
- Python built-in functions to know
- The Right Way To Compare Floats in Python
- A design system for the federal government.
- The GOV.UK Design System is now live
- 🎉 Happy 10th Birthday, Sidekiq! 🎂
- Why our team cancelled our move to microservices
- What's in a Good Error Message?
- The Modern Guide to OAuth
- Why is my Rust build so slow?
- PHP in 2022
- Golang’s most important feature is invisible
- Go is about to get a whole lot faster
- State of the Web: Static Site Generators
- Go performance from version 1.2 to 1.18
- Two reasons Kubernetes is so complex
- Vue 3 as the New Default
- A pipe operator for JavaScript: introduction and use cases
- Building an Intelligent Emacs
- I accidentally used YAML.parse instead of JSON.parse, and it… worked?
- Yes, I can connect to a DB in CSS
- A tale of Java Hash Tables
- Don't Make My Mistakes: Common Infrastructure Errors I've Made
- Trying Out Generics in Go
- Three Minor Features in Go 1.18
- Don’t Start With Microservices – Monoliths Are Your Friend
- 4 tips for GitHub Actions usability (+2 bonus tips for debugging)
- Databases in 2021: A Year in Review
- Some notes on using esbuild
- getElementById vs querySelector
- Defensive CSS
- Glitch effect on text in pure css
- Ruby vs Python comes down to the for loop
- How to Learn Nix
- Git ls-files is Faster Than Fd and Find
- Modern PHP Cheat Sheet
- Will Nix Overtake Docker?
- A brief history of code search at GitHub
- A New Chapter for HashiCorp
- 3 Things Go Needs Right Now More Than Generics
- Partitioning GitHub’s relational databases to handle scale
- What could Go wrong with a mutex, or the Go profiling story
- Effective Code Browsing
- Memcached vs Redis
- Why we spent the last month eliminating PostgreSQL subtransactions
- 7 Code Patterns in Go I Can’t Live Without
- Feature comparison of ack, ag, git-grep, GNU grep and ripgrep
- Redis Anti-Patterns Every Developer Should Avoid
- Anatomy of a Terminal Emulator
- The Insane Innovation of TI Calculator Hobbyists
- UPCOMING FEATURES IN GO 1.18
- Removing my site from Google search
- SQL vs NoSQL is the Wrong Distinction
- Migrating from Docker to Podman
- ES2022 feature: class static initialization blocks
- Ruby is Still a Diamond
- Go'ing Insane Part One: Endless Error Handling
- The elements of git
- Ruby for ebook publishing
- Code Review from the Command Line
- Tech Interview Handbook
- Code Interviews
- How you can track your personal finances using Python 🐍
- What I Learnt Becoming a Tech Lead
- API Tokens: A Tedious Survey
- When Zero Cost Abstractions Aren't Zero Cost
- Reining in the thundering herd ⛈ Getting to 80% CPU utilization with Django
- No, we don’t use Kubernetes
- Rust API Guidelines Checklist
- An Opinionated Guide to xargs
- A Visual Guide to React Rendering
- Are we GUI Yet?
- Hosting SQLite databases on Github Pages
- Coding with Character
- How I Experience Web Today
- My tiny side project has had more impact than my decade in the software industry
- So you want to self-publish books and courses on programming
- How I built a business that lets me live on the beach full time
- Vue.js has been selected as Wikimedia Foundation's future JavaScript framework
- Operating Systems: Timeline and Family Tree
- This Week in Programming: The ElasticSearch Saga Continues
- JSON Web Tokens (JWT) are Dangerous for User Sessions—Here’s a Solution
- Understanding Rust futures by going way too deep
- Disasters I've seen in a microservices world
- On Comments in Code
- Useful and Useless Code Comments
- Commit Often, Perfect Later, Publish Once: Git Best Practices
- GitHub Copilot: First Impressions
- The right tag for the job: why you should use semantic HTML
- HTML and CSS techniques to reduce your JavaScript
- Real-world CSS vs. CSS-in-JS performance comparison
- CDN experiment shows Free CDN surprisingly faster than Amazon CloudFront in many cases (case study: WordPress’s Jetpack CDN)
- OMG, SVG Favicons FTW!
- Modulinos In Bash
- How to Handle Secrets on the Command Line
- How I Automated My Dotfiles Screenshots
- Bash Function Names Can Be Almost Anything
- Against SQL
- Use The 'tail' Command To Monitor Everything
- Mitchell's New Role at HashiCorp
- Go 1.17 is deprecating the traditional use of 'go get'
- [Amazon] Lethal for career. Think 100 Times before you join Amazon
- How to Become a Bad Developer
- Dropbox Engineering Career Framework
- GitHub brings supply chain security features to the Go community
- Building an Inclusive Codebase
- PHP has been removed in macOS Monterey
- JWT should not be your default for sessions
- Branchless Coding in Go
- The data model behind Notion's flexibility
- Ruby 3 JIT can make Rails faster
- 10 static site generators to watch in 2021
- A Random Walk Through Git
- Why UML "Really" Died
- CSS Tips
- Portable apps with Go and Next.js
- Learn CSS
- The Era of Visual Studio Code
- Why (and how) GitHub is adopting OpenTelemetry
- In praise of --dry-run
- The tools and tech I use to run a one-woman hardware company
- Why I Love Coding
- A country's worth of power, no more!
- Forming the WebExtensions Community Group
- Sublime Text 4
- Modern CI is Too Complex and Misdirected
- Starting a TypeScript Project in 2021
- SQLite is not a toy database
- 5 things I learned while developing a billing system
- Improving shell workflows with fzf
- Git email flow vs Github flow
- Turing Award Goes to Creators of Computer Programming Building Blocks
- Ruby has been fast enough for 13 years
- The Architecture Behind A One-Person Tech Startup
- My simple Github project went Viral
- Take your first steps with Rust
- Software infrastructure 2.0: a wishlist
- How often do people actually copy and paste from Stack Overflow? Now we know.
- The RedMonk Programming Language Rankings: January 2021
- How Uber Deals with Large iOS App Size
- Monolith First
- Why Uber Engineering Switched from Postgres to MySQL
- INTERCAL, YAML, And Other Horrible Programming Languages
- Common Nginx misconfigurations that leave your web server open to attack
- The ecosystem of the Go programming language
- What I wish I knew before building a Shopify App
- How the New York Times A/B tests their headlines
- Speed of Rust vs C
- Improving large monorepo performance on GitHub
- Git is my buddy: Effective Git as a solo developer
- A Vim Guide for Advanced Users
- Use Touch ID for sudo on Mac
- The Lost History of Socialism’s DIY Computer/南斯拉夫民众 DIY 电脑实践:技术史上一段鲜为人知的碎片
- 🎉 Announcing the new puppeteer debugging site!
- Finding inspiration from, with, and for the community
- Making GitHub's new homepage fast and performant
- Reasons why SELECT * is bad for SQL performance
- 12 requests per second
- Why Wasn't Ruby 3 Faster?
- Leveraging the Go Type System
- Go is not an easy language
- Ruby Garbage Collection Deep Dive: Tri-Color Mark and Sweep
- Github Stale Bots: A False Economy
- Whitehouse.gov Chooses WordPress, Again
- Drop Support for Python 2 in pip 21.0
- What Silicon Valley "Gets" about Software Engineers that Traditional Companies Do Not
- Software development topics I've changed my mind on after 6 years in the industry
- Coding Fonts
- Cookin' with Rust
- Zsh Tricks to Blow your Mind
- How to Build Good Software
- API pagination design
- We rendered a million web pages to find out what makes the web slow
- The speed of a single-page web application without having to write any JavaScript.
- Some of git internals (updated)
- Rust is a hard way to make a web API
- Being good at programming competitions correlates negatively with being good on the job
- Google Cloud Infrastructure Components Incident #20013
- git cake: when is my README's birthday?
- Some Differences between macOS and Common Unix Systems
- Top 25+ Reasons Why Jira Sucks (in 2020)
- Ruby 3, concurrency and the ecosystem
- No Meetings, No Deadlines, No Full-Time Employees
- The Definition of a Tech Lead
- The state of the AWK
- Static Typing for Ruby
- Why not use GraphQL?
- Web-ext, a command line tool to help build, run, and test WebExtensions
- https://clig.dev/
- Scaling Datastores at Slack with Vitess
- The Modern JavaScript Tutorial
- A Month of Terraform
- An ex-Googler's guide to dev tools
- SQLite as a document database
- Dev Fonts
- Writing a technical book: from idea to print
- Blogging vs. blog setups
- My Writing & Coding Workflow
- A BYTE OF CODING
- Time to Say Goodbye to Google Fonts
- Why we are building a CLI first PaaS without a web frontend
- Tools and Services I Use to Run My SaaS
- Moving my serverless project to Ruby on Rails
- How to GraphQL with Ruby, Rails, Active Record, and no N+1
- Best Practices For Writing Clean Interfaces in Go
- THIS IS HOW I GIT
- What Vue.js Does Better Than React
- What’s so great about Go?
- attempts to make python fast
- Porn, Zen, and .vimrc
- The myriad meanings of pwd in Unix systems
- pure sh bible
- ~/.bashrc VS ~/.profile VS ~/.bash_profile
- Replacing Ansible with salt-ssh
- Linux Command Library
- No, your clean code won't save the planet
- Business Operations
- The Art of Debating: A Useful Skill for Software Developers
- How to waste your career, one comfortable year at a time
- Under Deconstruction: The State of Shopify’s Monolith
- Python behind the scenes #2: how the CPython compiler works
- An Honest Review of Gatsby
- Static webhosting benchmark: AWS, Google, Firebase, Netlify, GitHub & Cloudflare
- My Hacking Adventures With Safari Reader Mode
- 22 YouTube Channels To Level Up Your Programming Skills
- The Art of Automation
- Eight Falsehoods Programmers Believe About Map Coordinates
- VSCode on Google Colab
- Understanding How UUIDs Are Generated
- WORLD SMALLEST OFFICE SUITE
- Bash Errors
- How to interview engineers
- Why the Serverless Revolution Has Stalled
- Custom bullets with CSS ::marker
- How India Censors The Web
- Docable
- The Clickbait Headline Programming Language
- How One Guy Ruined #Hacktoberfest2020
- Go Modules have a v2+ Problem
- Go’s Major Versioning Sucks – From a Fanboy
- How To Start Using Microservices
- Niklaus Wirth was right and that is a problem
- Web Performance Profiling: Google.com
- Letsencrypt, the Good, The bad and the Ugly
- Disrespectful Design—Users aren’t stupid or lazy
- 5 most annoying website features I face as a blind person every single day
- Things I Learned to Become a Senior Software Engineer
- v3.0.0 One Piece
- GitHub CLI 1.0 is now available
- Moment.js Project Status
- Data Structures & Algorithms I Actually Used Working at Tech Companies
- Keeping Your Modules Compatible
- A Journey building a fast JSON parser and full JSONPath, Oj for Go
- Help message for shell scripts
- How to Run a Live Coding Stream on Twitch using OBS
- Introducing the GitHub Availability Report
- PHP7 to ES7 syntax translator
- Highlights from Git 2.28
- PHP 8: named arguments
- Life without line numbers
- Design Docs at Google
- css-media-vars Documentation & Demos
- Conventions for Command Line Options
- How we migrated Dropbox from Nginx to Envoy
- Stripe: Building a Developer Cult
- Things I Wish I’d Known About CSS
- One year of automatic DB migrations from git
- Oh Shit, Git!?!
- Async Python is not faster
- Best practices for managing and storing secrets including API keys and other credentials [2020]
- Hardcoded secrets, unverified tokens, and other common JWT mistakes
- Mastering JQ: Part 1
- The beauty of Unix pipelines
- Building a hexagonal grid using CSS grid
- Is WebP really better than JPEG?
- How to learn JavaScript
- Create diagrams with code using Graphviz
- Linux Kernal Interactive Map
- The Poetics of CLI Command Names
- The end of the Redis adventure
- Close Look at CSRF Tokens
- The state of the AWK
- Instrumentation in Go
- Generics in Go — How They Work and How to Play With Them
- Today’s Javascript, from an outsider’s perspective
- The Fastest Google Fonts
- What I wish I knew about React
- Finding secrets by decompiling Python bytecode in public repositories
- Python performance: it’s not just the interpreter
- Shell productivity tips and tricks
- Minimalist HTML
- Redundancy in Programming Languages
- Jepsen Disputes MongoDB’s Data Consistency Claims
- State of Software Engineering in 2020
- Why Svelte is our choice for a large web project in 2020
- CSS for internationalisation
- Text processing in the shell
- How is the Linux kernel tested?
- Database basics: writing a SQL database from scratch in Go
- How do Unix pipes work?
- pattern.css
- Bokehlicious Selfies
- Engineering code quality in the Firefox browser: A look at our tools and challenges
- Setting Up Git Identities
- What does the rc in bashrc
- Windows Subsystem for Linux 2 Moving into General Availability with Improved Update Process
- Writing a Book with Pandoc, Make, and Vim
- GitLab's Guide to All-Remote
- npm is joining GitHub
- GitHub for mobile is now available
- “Let’s use Kubernetes!” Now you have 8 problems
- Vue.js: The Documentary
- In depth guide to running Elasticsearch in production
- The Zen of Go
- AWS S3: You’re out of order.
- The Bash Hackers Wiki
- A Surprisingly Common Mistake Involving Wildcards & The Find Command
- The History of Git: The Road to Domination in Software Version Control
- Google Interviewing Process for Software Developer Role in 2020
- Programming principles from id software
- The History of the URL
- Dicts are now ordered, get used to it
- 2019 in Review
- Making Python Programs Blazingly Fast
- PHP in 2020
- Go Things I Love: Channels and Goroutines
- Why are my Go executable files so large?
- Is TypeScript worth it?
- Scaling React Server-Side Rendering
- Maybe You Don't Need Kubernetes
- Go's Tooling is an Undervalued Technology
- React Native is the Future of Mobile at Shopify
- How to start a blog using Hugo
- Building a BitTorrent client from the ground up in Go
- How to write a book in Emacs
- How I automate my home
- Notes on Technical Writing
- The Basecamp Guide to Internal Communication
- Managing my personal knowledge base
- How Sustainable is a Solar Powered Website?
- My Second Year as a Solo Developer
- Compiled vs Interpreted Code Performance
- Go memory ballast: How I learnt to stop worrying and love the heap
- Only 15% of the Basecamp operations budget is spent on Ruby
- Modules Part 02: Projects, Dependencies and Gopls
- Building a search engine from scratch
- Challenging projects every programmer should try
- Use GitHub actions at your own risk
- SwiftUI 糟糕的现状和未来的展望
- 出海必备:盘点国外主流收款服务
- How Facebook Avoids Ad Blockers
- Exploring Python through counter-intuitive snippets. If you think you know Python, think once more!
- Let's Create a Simple Load Balancer With Go
- Staticcheck in Action
- Why is the Migration to Python 3 Taking So Long?
- htop explained
- Hash tables
- The Service Mesh: What Every Software Engineer Needs to Know about the World's Most Over-Hyped Technology
- Tearing apart printf()
- 12 amazing CSS tips and tricks you should know
- DNS Record Crash Course for Web Developers
- PHP RFC: Union Types 2.0
- How To Build A Blog With Gatsby and Netlify
- Microsoft Visual Studio Code becomes the default development environment at Facebook
- THE STORY OF GETTING SSH PORT 22
- Programming with errors
- SQL queries don't start with SELECT
- Test Desiderata
- Exciting new features in Vue 3
- Frustrations with React Hooks
- Text Rendering Hates You
- An Illustrated Guide to Some Useful Command Line Tools
- Tmux Tutorial
- Conventional Commits
- 「Shape Up」 适合中小团队的一种工作方式
- Six Reasons Why iOS 13 and Catalina Are So Buggy
- Computing pi with bc
- Models of Generics and Metaprogramming: Go, Rust, Swift, D and More
- How Stack Overflow upgraded from Windows Server 2012
- Typed properties in PHP 7.4
- What's new in PostgreSQL 11: built-in web search
- It’s Not Wrong that "🤦🏼♂️".length == 7
- How to build a plugin system on the web and also sleep well at night
- Using TypeScript with React
- The (not so) hidden cost of sharing code between iOS and Android
- Highlights from Git 2.23
- JavaScript: What’s new in ES2019
- Rust Language Cheat Sheet
- An Open Letter To The Go Team About Try
- Proposal: A built-in Go error check function, "try"
- The Top 10 Most Common Mistakes I’ve Seen in Go Projects
- Clear is better than clever
- Why we're ending support for MySQL in 12.1
- Cities: Skylines is Turing Complete
- Run Your Own Website
- How FZF and ripgrep improved my workflow
- 5 Lessons Learned From Writing Over 300,000 Lines of Infrastructure Code
- Intro Guide to Dockerfile Best Practices
- Google's robots.txt Parser is Now Open Source
- The state of switching to Windows from Mac in 2019
- Microsoft to explore using Rust
- History and effective use of Vim
- Go: Is the encoding/json Package Really Slow?
- Simple techniques to optimise Go programs
- Kubernetes Failure Stories
- Creating a Collaborative Editor
- The cost of JavaScript in 2019
- Now or Never: Migrating 300k LOC from Flow to TypeScript at Quizlet
- Relearn CSS layout
- Making Tables Responsive With Minimal CSS
- 5 Programming Patterns I Like
- Pointers in Python: What's the Point?
- A Failed Experiment with Python Type Annotations
- In defence of the technical interview
- why "do thing with linked list" is an interview question in the first place
- AT LEAST ONE VIM TRICK YOU MIGHT NOT KNOW
- Minimal Project Management
- Publishing Simple Books With Jekyll
- [Guest Post] Why we chose Rust as our programming language
- Without a GUI--How to Live Entirely in a Terminal
- Why Go? – Key advantages you may have overlooked
- HTTP headers for the responsible developer
- Things you’re probably not using in Python 3 – but should
- Python built-ins worth learning
- Google HTML/CSS Style Guide
- Go 1.13: xerrors
- Go is Google's language, not ours
- git rebase in depth
- Seven Surprising Bash Variables
- Why I'm still using jQuery in 2019
- I don't know how CPUs work so I simulated one in code
- We Can Do Better Than SQL
- Don't Do This
- Broken by default: why you should avoid most Dockerfile examples
- Microsoft unveils Windows Terminal, a new command line app for Windows
- Analyzing Tools Used by Our Network
- Developer Survey Results
- How I'm still not using GUIs in 2019: A guide to the terminal
- Intermediate vim
- The Unreasonable Effectiveness of SQL
- Building Git
- Which programming language is used for making Windows 10?
- TypeScript Node Starter Simplified
- Commit messages guide
- A PHP Compiler, aka The FFI Rabbit Hole
- Stepping away from Sass
- Introducing USWDS 2.0
- Apache Software Foundation joins GitHub open source community
- Why I Believe Rails is Still Relevant in 2019
- Why We Moved from Heroku to Google Kubernetes Engine
- What causes Ruby memory bloat?
- How I reduced my Jekyll build time by 61%
- Using the iPad Pro as my development machine
- Ruby On Rails or Laravel, which do you use?
- In Defense of YAML
- Rebuilding My Personal Infrastructure With Alpine Linux and Docker
- Native image lazy-loading for the web!
- A JavaScript-Free Frontend
- Redesigning Github repository page
- Moving from Ruby to Rust
- Why the fuck are we templating yaml?
- Seeking the Productive Life: Some Details of My Personal Infrastructure
- Linux Desktop Setup
- Dotfile madness
- Public APIs Build Status
- Nginx Quick Reference
- Making My Own USB Keyboard From Scratch
- Mail::RFC822::Address: regexp-based address validation
- Monorepos: Please don’t!
- 2018 in Review: The Biggest Developments around Microservices, API Gateways, Kubernetes and Service Mesh
- How Airbnb is Moving 10x Faster at Scale with GraphQL and Apollo
- Porting 30K lines of code from Flow to TypeScript
- Why Founders Should Start With a Website, Not a Mobile App
- My Modern PHP Development Setup
- Why Is Storage On Kubernetes So Hard?
- Is C++ fast?
- Reluctant Gatekeeping: The Problem With Full Stack
- New year, new GitHub: Announcing unlimited free private repos and unified Enterprise offering
- Software Engineering at Google
- 8 Productivity Tips for GitHub
- Rethinking how we interview in Microsoft’s Developer Division
- Tell HN: Udacity is deprioritizing its app and will eventually remove it
- Input: Fonts for code from DJR & Font Bureau
- Happy 2019!
- The State of Web Browsers
- Plans for the Next Iteration of Vue.js
- Bye bye Mongo, Hello Postgres
- Go Modules in 2019
- Rust 2018 is here… but what is it?
- Taking on Google and Facebook as a Solo Open-Source Founder with Evan You of Vue.js
- Announcing GitLab Serverless
- SSH Examples, Tips & Tunnels
- Looking Forward to 2019
- Twitter’s Kafka adoption story
- Surviving in a Microservices Environment
- State of JS 2018
- Flutter: the good, the bad and the ugly
- Update on Basecamp 3 being stuck in read-only as of Nov 8, 12:41pm CST
- Literate DevOps
- Python Community Interview With Kenneth Reitz
- Common Testing Mistakes
- Go 2, here we come!
- The Perfect Programming Interview Problem
- Medium is a poor choice for blogging
- Ask HN: What's the largest amount of bad code you have ever seen work?
- How To Get Through Those Bad Projects
- The Resistance is Real
- I don't know what to say.
- How to run a program without an operating system?
- NES.css
- Redesigning the Office App Icons to Embrace a New World of Work
- I’m Chinese, Google’s DragonFly must go on
- Moving to GitLab...
- How to write a good software design doc
- Practical Go: Real world advice for writing maintainable Go programs
- How many lines of code is Candy Japan?
- Python's New Package Landscape
- Introducing Hooks
- 33 Concepts Every JavaScript Developer Should Know
- Contributing to Open Source Git Repositories in Go
- Trends on Hacker News: Programming Languages & Tools
- Coding as an Engineering Manager
- The Absolute Easiest Way to Debug Node.js — with VS Code
- Building a better GOV.UK, step by step
- HTTP/3
- Nine years of Go
- Why you can have millions of Goroutines but only thousands of Java Threads
- Protobuffers Are Wrong
- The Python Unicode Mess
- The Illustrated TLS Connection
- 10 practices for readable code
- Stop writing lambda expressions in Python
- 12 Factor CLI Apps
- Creating a bash completion script
- Choosing a (Language) Stack
- About static site generators
- What Did Ada Lovelace's Program Actually Do?
- Git, done Sublime
- How to Build a Low-tech Website?
- WWWBasic
- How we rolled out one of the largest Python 3 migrations ever
- 提問的智慧
- Windows is Available (Early Release)
- CLI: improved
- A gentle introduction to Golang Modules
- How the Go runtime implements maps efficiently (without generics)
- Beyond Interactive: Notebook Innovation at Netflix
- 7 Reasons Why Your Staging Environment Sucks
- Here's Why Your Static Website Needs HTTPS
- Why use GraphQL, good and bad reasons
- Go 2 Draft Designs
- Rules of Machine Learning: Best Practices for ML Engineering
- Auth0 Architecture: Running In Multiple Cloud Providers And Regions
- TypeScript at Google
- Reboot Your Dreamliner Every 248 Days To Avoid Integer Overflow
- Why Discord is Sticking with React Native
- Monorepos in the Wild
- Why Google Stores Billions of Lines of Code in a Single Repository
- Introduction to Go Modules
- Goodbye Python, Hello Go
- Grid
- Building an Optimistic User Interface in React
- Tutorial: How to deploy an app to production with an actual button
- Vue CLI 3.0 is here!
- Ship It! The Game of Product Management
- San Francisco Bay Area cities are cracking down on free food at Facebook and other tech companies
- YC China + Qi Lu
- React Native: A retrospective from the mobile-engineering team at Udacity
- WHY JSON ISN’T A GOOD CONFIGURATION LANGUAGE
- Why is Python so slow?
- Goodbye Microservices: From 100s of problem children to 1 superstar
- Vue.js: the good, the meh, and the ugly
- how-to-use-emojis-as-icons
- Udacity Git Commit Message Style Guide
- Google Cloud Platform
- 一个字体引发的「惨案」
- Introducing the Python Language Server
- In UNIX Everything is a File
- jQuery removed from GitHub.com frontend
- React Native at Airbnb
- 2 Fast 2 Furious: migrating Medium’s codebase without slowing down
- Visualizing Concurrency in Go
- Good Code vs Bad Code in Golang
- Limiting “Software Infant mortality” rate — decoding GO-JEK’s Deployment Checklist
- 50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs
- Designing Fluid Interfaces
- Microsoft Office rewrite in React.js nears completion
- Should we use React Native?
- How to support full Unicode in MySQL databases
- A bright future for GitHub
- Go code refactoring : the 23x performance hunt
- 10 Things I Regret About Node.js
- JavaScript Algorithms and Data Structures
- Level up your CSS selector skills
- Full Cycle Developers at Netflix — Operate What You Build
- PatternFly
- Introducing Airbnb Cereal
- Ruby 2.6.0-preview2 Released
- Introducing extended line endings support in Notepad
- PacVim – A CLI Game To Learn Vim Commands
- How Algolia Built Their Realtime Search as a Service Product
- Dank Mono
- Software Testing Anti-patterns
- What actually happens when you buy a domain name?
- SSH CLIENT CONFIGURATION TRICKS
- Everything old is new again: Microservices
- Design Better Forms
- WebAssembly cut Figma’s load time by 3x
- Go's New Brand
- Custom domains on GitHub Pages gain support for HTTPS
- Introducing .app, a more secure home for apps on the web
- You’re Not Actually Building Microservices
- A LIST OF COOL CHROME DEVTOOLS TIPS AND TRICKS
- How Sentry Receives 20 Billion Events Per Month While Preparing to Handle Twice That
- Introducing DNS Resolver, 1.1.1.1 (not a joke)
- Here are a few function decorators you can write from scratch
- Using Figma designs to build the Octicons icon library
- textql
- Getting Real
- Learn Bulma in 5 minutes
- Leetcode(中国)
- cd is Wasting Your Time
- VuePress
- Why Is SQLite Coded In C
- A Practical Introduction to Blockchain with Python
- 要做软件工程师,而不是前端工程师
- git log – the Good Parts
- Putting the I back in IDE: Towards a Github Explorer
- Building your own CDN for Fun and Profit
- Google JavaScript Style Guide
- JavaScript in 14 Minutes
- Netflix unveils Netflix Sans, a new custom typeface developed with Dalton Maag
- Tim Berners-Lee shares his disappointment on World Wide Web’s 29th birthday
- Sierra Leone just ran the first blockchain-based election
- Learn Blockchains by Building One
- Understanding the Limitations of HTTPS
- Maybe you don't need Rust and WASM to speed up your JS
- Profiling Go Applications with Flamegraphs
- 17 JavaScript / node.js performance coding tips to make applications faster
- 30 Seconds of CSS
- Elegant patterns in modern JavaScript: RORO
- 7 Practical Tips for Cheating at Design
- ACME v2 and Wildcard Certificate Support is Live
- Concurrency != Parallelism
- Compressing Radix Trees Without (Too Many) Tears
- The Future of Python Dependency Management
- Optimizing hash tables: hiding the hash code
- Efficiently loading inlined JSON data
- JITing PostgreSQL using LLVM
- BUILDING A FULL-TEXT SEARCH APP USING DOCKER AND ELASTICSEARCH
- An Exhaustive Guide to Writing Dockerfiles for Node.js Web Apps
- How we brought down the size of our app from 31 MB to 2.6 MB and what it taught us
- Our Culture and Values at Auth0
- 2018 Developer Skills Report
- The hidden costs of serverless
- The Death of Microservice Madness in 2018
- JS things I never knew existed
- Keep webpack Fast: A Field Guide for Better Build Performance
- BeyondCorp: How Google Ditched VPNs for Remote Employee Access
- Choosing Web Fonts: A Beginner’s Guide
- How Old School C Programmers Process Arguments
- 你真的用对 protobuf 了吗?
- Selecting a Cloud Provider
- Elasticsearch Performance Tuning Practice at eBay
- The end of the conference era
- Switzerland “Should Become the Crypto-Nation” Says Minister
- Does there exist a prime number whose representation on a phone screen looks like a giraffe?
- Chrome DevTools 101: DEBUGGING JavaScript
- Accidentally Quadratic
- Learning these 5 microservice patterns will make you a better engineer
- How to use API-first platforms to build your websites faster
- NPM as a build tool for a Python Project
- What Makes Facebook Developers Productive
- How GitLab switched to Headless Chrome for testing
- ES6 Proxy and Localization
- Python Dictionary Methods (aka The Dictionary Even Mightier)
- Slides and talk assets from PyCon 2017
- Preventing burnout for programmers
- 用 Python 给头像加上圣诞帽
- MICROSOFT CURLS TOO
- W3C Releases HTML 5.2 As Official Recommendation
- The Comprehensive Guide to Serverless Architecture
- Vue.js vs React in 2017: state of art
- Hiding content from Git + more on escape sequences
- Why VSCode is better than Atom?
- Start your open-source career
- Why We Moved From NoSQL MongoDB to PostgreSQL
- RE: Moving from PHP to GO and back again
- Moving from PHP to GO and back again
- Building Services at Airbnb, Part 1: A Structure for Scaling Service Development
- What ORMs have taught me: just learn SQL
- Mining Bitcoin with pencil and paper: 0.67 hashes per day
- We're planning to launch estcoin — and that's only the start
- Learn CSS Grid for free
- How a single PostgreSQL config change improved slow query performance by 50x
- Inside Docker's "FROM scratch"
- Evil Front Part 1: Modern Front-end in Rails
- 没上过大学也不懂营销,小伙自学编程做网站,只想卖好土鸡蛋
- Build a Regex Engine in Less than 40 Lines of Code
- Besting PhantomJS Font Problems
- 9 Best JavaScript Charting Libraries
- How the BBC News website has changed over the past 20 years
- ISO/IEC 14882:2017
- Bitcoin mining and energy consumption
- How Sentry Receives 20 Billion Events Per Month While Preparing to Handle Twice That
- Personal names around the world
- How we do Vue: one year later
- 5 Ruby on Rails Tips You Probably Don’t Know
- A Minimalist Guide to SQLite
- Auto Complete with Redis
- Reddit 爆款讨论:那些做机器学习的,平时除了数据清洗还干些啥?
- Functional Programming Jargon
- Analyzing Browser History Using Python and Pandas
- SSL Issuer Popularity
- GNU Music and Songs
- Why does one NGINX worker take all the load?
- How to write a JavaScript-free todo app using just HTML and CSS
- Go at DigitalOcean
- Why Python is Slow: Looking Under the Hood
- Why we switched from Python to Go
- How to set up world-class continuous deployment using free hosted tools
- How Merkle trees enable the decentralized Web
- The Lost Art of C Structure Packing
- Docker gives into inevitable and offers native Kubernetes support
- Documenting the Web together
- An HTTP Status Code for Indicating Hints
- How Instagram Co-founder Mike Krieger Took Its Engineering Org from 0 to 300 People
- Airbnb’s 10 Takeaways from Moving to Microservices
- How I Reduced my DB Server Load by 80%
- Why did we choose Rust over Golang or C/C++ to develop TiKV?
- Sorting Visualizations
- A Five Minutes Guide to Better Typography
- Spotify’s Discover Weekly: How machine learning finds your new music
- markdownlint/markdownlint
- React v16.0
- NGINX 发布微服务平台、OpenShift Ingress Controller 和 Service Mesh 预览版
- Dictionary and Set Improvements in Swift 4.0
- Introducing Abseil, a new common libraries project
- Microsoft Makes it Official: Becomes Sponsor of Open Source Initiative
- POLHEMSPRISET 2017
- Bjarne Stroustrup awarded 2017 Faraday Medal
- Vue.js vs Preact: How the WordPress JavaScript Framework Decision will Impact You
- Relicensing React, Jest, Flow, and Immutable.js
- The Search for Better Search at Reddit
- The Future of HHVM
- Announcing CoffeeScript 2
- Technical Interview Performance by Editor/OS/Language
- GitLab 10.0 Released with Auto DevOps and Group Issue Boards
- The U.S. Navy's most advanced submarines will soon be using Xbox controllers
- The Marketing Behind MongoDB
- PaxosStore: High-availability Storage Made Practical in WeChat
- The art of over-engineering your side projects
- View Counting at Reddit
- Optimizing web servers for high throughput and low latency
- Basecamp 3 for iOS: Hybrid Architecture
- Startup SaaS Stack
- How to Read Code (Eight Things to Remember)
- Elasticsearch: 权威指南
- “Smartening” Up a Sailboat with a Raspberry Pi and ESP8266 Modules
- Sublime Text 3.0
- APIs as infrastructure: future-proofing Stripe with versioning
- Preact AMA on Sideway
- Wedding at Scale: How I Used Twilio, Python and Google to Automate My Wedding
- Moving The New York Times Games Platform to Google App Engine
- What Does It Take to Be An Expert At Python
- A Deep Dive into CSRF Protection in Rails
- Python web 应用性能调优
- Inside a super fast CSS engine: Quantum CSS (aka Stylo)
- SaaS, PaaS and IaaS explained in one graphic
- FreeWheel 前后端分离改造实践
- Software development 450 words per minute
- The Stack That Helped Medium Scale To 2.6 Millennia Of Reading Time
- 微信广告引擎与播放节奏算法实践
- Principles of Sharding for Relational Databases
- Replace RESTful APIs with JSON-Pure
- A Checklist for Website Reviews
- 浅谈 Node.js 安全
- 我用了两个月的时间才理解 let
- GET READY: A NEW V8 IS COMING, NODE.JS PERFORMANCE IS CHANGING.
- Workspaces in Yarn
- The Garden: Instacart’s Physical Staging Environment
- 分布式 ID 生成器 | 架构师之路
- How To Package Your Python Code
- Development guide
- JavaScript: Arrow Functions for Beginners
- Untold Benefits of a Software Blog
- iPad Pro 10.5 for Software Development
- INTRODUCING CHAMELEON: A GLOBAL CMS FROM UBER ENGINEERING
- The Best Display for Programming?
- Stop abusing (virtual) animals when teaching programming
- How to create a borderless state. Lessons from Estonia.
- Scaling a Web Service: Load Balancing
- React, Relay and GraphQL: Under the Hood of the Times Website Redesign
- MySQL infrastructure testing automation at GitHub
- How CircleCI Processes 4.5 Million Builds Per Month
- Rearchitecting Airbnb’s Frontend
- GraphQL vs. REST: Two ways to send data over HTTP: What’s the difference?
- Is Ruby Too Slow For Web-Scale?
- 下一代 Web 应用模型 —— Progressive Web App
- 深度剖析:如何实现一个 Virtual DOM 算法
- A Gentle Introduction to tmux
- Why Did So Many Startups Choose MongoDB?
- Developer environment: Achieving reliability by making it fast to reset
- My WSL Setup for Development
- 入门智能家居,从米家到 HomeKit
- Scaling Django to 8 Billion Page Views
- 干掉状态:从 session 到 token
- The Evolution of Code Deploys at Reddit
- Building an Open Source Service
- DNS Infrastructure at GitHub
- Increasing Attacker Cost Using Immutable Infrastructure
- Stack Overflow: Helping One Million Developers Exit Vim
- WWDC2017
- The biggest codebases in history
- NPM 5.0 正式发布
- 听说,贵公司的食堂很好吃(美国篇)
- PHP 7 Virtual Machine
- It's The Future
- 今日头条 Go 建千亿级微服务的实践
- Prepack, a tool for making JavaScript code run faster
- GitHub 项目徽章的添加和设置
- 月活8.89亿背后:微信工程师细数兼容测试经验
- Element React 版发布啦!
- Microservices – Please, don’t
- Kotlin on Android. Now official
- Yes, Python is Slow, and I Don’t Care
- How Basic Performance Analysis Saved Us Millions
- Analysis of the Facebook.app for iOS [v. 87.0]
- Electron is flash for the desktop
- Complexion Reduction: A New Trend In Mobile Design
- ReactXP
- 如何达到 facebook 发版速度:Dropbox 灰度发布平台系统架构
- Scrolling on the web: A primer
- THE UBER ENGINEERING TECH STACK, PART I: THE FOUNDATION
- Medium’s CSS is actually pretty f***ing good
- Hype Driven Development
- Google API Design Guide
- The million dollar engineering problem
- React Native at Instagram
- Docker in Production: A History of Failure
- The One Method I’ve Used to Eliminate Bad Tech Hires
- Configuration Management is an Antipattern
- A look inside the Quip engineering team
- How I Work
- What does Unsplash cost?
- Windows Subsystem for Linux (WSL)
- Open source license descriptions and metadata
- Linus 宣布将替换 git 中的 SHA-1算法
- 微信异步化改造实践:8亿月活、万台机器背后的解决方案
- Indeed’s A/B Testing Framework
- 为什么 objc_msgSend 必须用汇编实现(翻译)
- AvoidCrash,远离常见的崩溃
- 饿了么是怎么让 Image 变成详情页的
- 2016年前端开发者深度调研,看看别人使用什么技术体系
- OpenResty 2016 新发展
- Redis 4.0 新功能简介
- The Way of the Gopher
- Protocol Oriented Programming is Not a Silver Bullet
- The Languages, Frameworks and Tools You Should Learn in 2017
- 微信序列号生成器架构设计及演变
- gRPC 1.0发布
- Getting Started with Icicle: Write asynchronous code in PHP with synchronous coding techniques using promises and coroutines
- 谈谈互联网后端基础设施
- PHP The Right Way
- PHP 程序员的技术成长规划
- Why Learning to Code is So Damn Hard
- Splunk vs ELK: The Log Management Tools Decision Making Guide
- 和 Vue.js 框架的作者聊聊前端框架开发背后的故事
- 如何编写你自己的 Virtual DOM