Building a Cache in Elixir11 Jul 22 WebSocket Framing: Masking, Fragmentation and More29 May 22 Exhausting Exhaustive Testing18 Mar 22 Basic observations of Generics in Go03 Mar 22 Server Hardening Tools (As An Amateur)16 Feb 22 Elixir Without Ecto - Dynamic Queries11 Feb 22 Elixir Without Ecto05 Feb 22 Using Process Dictionaries in Elixir07 Jan 22 Queue Despair: Ordering and Poison Messages08 Dec 21 Rust Strings27 Nov 21 Rust Ownership, Move and Borrow - Part 322 Nov 21 Rust Ownership, Move and Borrow - Part 213 Nov 21 Rust Ownership, Move and Borrow - Part 106 Nov 21 Elixir, A Little Beyond The Basics - Part 9: erlang25 Oct 21 Elixir, A Little Beyond The Basics - Part 8: genservers23 Oct 21 Elixir, A Little Beyond The Basics - Part 7: supervisors22 Oct 21 Elixir, A Little Beyond The Basics - Part 6: processes20 Oct 21 Elixir, A Little Beyond The Basics - Part 5: tuples and records14 Oct 21 Elixir, A Little Beyond The Basics - Part 4: structures09 Oct 21 Elixir, A Little Beyond The Basics - Part 3: maps06 Oct 21 Elixir, A Little Beyond The Basics - Part 2: iolist04 Oct 21 Elixir, A Little Beyond The Basics02 Oct 21 Elixir, A Little Beyond The Basics - Part 1: lists01 Oct 21 Elegant TCP with Elixir - Part 2 - Message Boundaries13 Apr 20 Elegant TCP with Elixir - Part 1 - TCP as Messages08 Apr 20 An Awful Introduction to Make23 Feb 20 Action-Specific Plug Pipelines for Phoenix13 Feb 20 Migrating to CockroachDB05 Feb 20 Using Messages In Elixir To Avoid Polling30 Jan 20 Consistent Database and Message Queue Writes22 Jan 20 Basic Brain Dump On Dealing With Errors13 Oct 18 Elixir: Which Modules Are Using My Module24 Jun 18 The Benefits of Pair Programming15 Mar 18 Test Private Functions and Implementation Details02 Jan 18 The Beauty of Elixir and Beam07 Nov 17 Elixir Tips and Tricks27 Oct 17 Testing Asynchronous Code in Elixir25 Sep 17 Learning Elixir's Supervisors16 Sep 17 Elixir's Binary Matching Performance15 Aug 17 Learning Elixir's ETS - Part 222 Jul 17 Learning Elixir's ETS - Part 128 May 17 Learning Elixir's Agent28 Mar 17 Learning Elixir's GenServer - Part 223 Mar 17 Learning Elixir's GenServer - Part 122 Mar 17 Dependency Injection in Elixir is a Beautiful Thing06 Jan 17 Tests Are About Design11 Dec 16 Elixir's With Statement07 Nov 16 Concatenation in Elixir22 Sep 16 Pattern Matching in Elixir01 Aug 16 Interfaces In Nim14 May 16 Software Craftsmanship: Testing10 Jan 16 An Introduction To OpenResty - Part 304 Jan 16 An Introduction To OpenResty - Part 2 - Concepts26 Dec 15 An Introduction To OpenResty (nginx + lua) - Part 119 Dec 15 RESTful routing in Go05 May 15 Go actions responses02 May 15 Go's error handling: good and bad23 Apr 15 Project Organisation16 Apr 15 Prematurely Blocking Producers in Go04 Apr 15 Basic Micro-Optimizations Part 324 Mar 15 Writing And Using C Code From Go20 Mar 15 An efficient integer set19 Mar 15 Building A Queue - Part 418 Mar 15 Leaking Goroutines16 Mar 15 Building A Queue - Part 312 Mar 15 Building A Queue - Part 211 Mar 15 Building A Queue - Part 110 Mar 15 Using Javascript Generators24 Feb 15 I'm Not Sold On High Availability12 Feb 15 Unordered Queues04 Feb 15 A decade of unit testing30 Jan 15 Nearest Neighbour Over Small Areas13 Jan 15 Framework Agnostic Zero Downtime Deployment with NGINX06 Jan 15 Introduction to PostgreSQL Arrays08 Dec 14 Basic Micro-Optimizations Part 228 Nov 14 Basic Micro-Optimizations27 Nov 14 Condition Variables03 Nov 14 Buying Concurrency with Memory29 Oct 14 Using Small Arrays Instead Of Small Dictionaries22 Oct 14 The Little Go Book21 Oct 14 Practical SOA / microservices - Hydration - Part 218 Oct 14 How unreliable is UDP?16 Oct 14 Practical SOA / microservices - Typed Requests10 Oct 14 Practical SOA / microservices - Hydration - Part 101 Oct 14 Controlling Array Growth in Golang26 Aug 14 Cancelling Long Promise Chains02 Jul 14 Pools: So You Think You're Smarter Than Your GC12 Jun 14 Space Efficient Percentile Calculations07 Jun 14 Understanding Pools28 Apr 14 Understanding Javascript Promises26 Apr 14 Grow Up. Use Queues.05 Mar 14 Client-Side vs. Server-Side Rendering Redux (Sorta)22 Feb 14 The Deceptive Nature Of Averages10 Feb 14 Why Premature Optimizations Are Rarely A Waste Of Time13 Jan 14 Fast Large Offsets With An Indexed Skiplist09 Dec 13 Building A Skiplist06 Dec 13 The Minimum You Need To Know About Arrays and Slices in Golang25 Nov 13 Concurrent Reads with Serialized Writes20 Nov 13 Filtering My Blog Posts By Tags12 Nov 13 Building Technology Agnostic Globally Distributed Systems05 Nov 13 Back To Basics: Hashtables Part 2 (And A Peek Inside Redis)02 Nov 13 Back To Basics: Hashtables31 Oct 13 High Concurrency LRU Caching19 Oct 13 Growth Planning03 Oct 13 "Dependency Injection" in Golang18 Sep 13 Scaling? Focus On Raw Speed11 Sep 13 Own A System Beyond Its Childhood, Or Stay A Bad Programmer04 Sep 13 SOA Lessons Learned27 Aug 13 On Sharing Infrastructure22 Aug 13 Caching: Your Worst Best Friend25 Jul 13 Reading too much into String.Split17 Jul 13 Golang Slices And The Case Of The Missing Memory10 Jul 13 Your Buffer Is Leaking08 Jul 13 Shard Your Hash Table To Reduce Write Locks03 Jul 13 Golang hot configuration reload01 Jul 13 How Meaningful Do You Find Github's Punchcard?21 Jun 13 Concurrent-Friendly Logging with Golang20 Jun 13 Background Driven Development12 Jun 13 Why I Dislike EC204 Jun 13 How Good Is Amazon's Route 53 Latency Based Routing?29 May 13 Do More In-Process Caching23 May 13 Building Search13 May 13 Redis' slowlog and DEL's surprisingly bad performance10 May 13 Lua's JSON turns empty arrays into empty hashes07 May 13 Achieving 5ms Response Time03 May 13 Writing an LRU Cache02 May 13 Appendix C - Our Simple AutoComplete30 Apr 13 Appendix B - I Love Premature Optimizations30 Apr 13 Appendix A - Why Node?30 Apr 13 Chapter 7 - Conclusion30 Apr 13 Chapter 6 - Writes, Bloat and Queues30 Apr 13 Chapter 5 - Surprisingly Reusable30 Apr 13 Chapter 4 - Tweaks30 Apr 13 Chapter 3 - Holdbacks30 Apr 13 Chapter 2 - The Core30 Apr 13 Chapter 1 - Introduction30 Apr 13 Scaling Viki30 Apr 13 Introduction To Golang: Buffered Channels27 Apr 13 An Interview Question Too Many Developers Get Wrong24 Apr 13 Things I Wish Someone Had Told Me About Golang11 Mar 13 Testing In Golang10 Mar 13 Getting an Images Type and Size in Golang (or any other language)10 Feb 13 You can't rollback Redis transactions05 Feb 13 Introduction To Golang: Channels (Again)20 Jan 13 Introduction To Golang: Channels17 Jan 13 Introduction To Golang: Arrays, Maps, Slices And Make14 Jan 13 Introduction To Golang: Interfaces10 Jan 13 Introduction To Golang: Structures, Data and Instances07 Jan 13 Custom Redis Command: Performance of C vs Lua24 Dec 12 Writing a Custom Redis Command In C - Part 223 Dec 12 Writing a Custom Redis Command In C - Part 120 Dec 12 No Shit Stylesheets12 Jul 12 Data Modeling In Redis28 Jun 12 Three Must-Have Redis Configuration Options For Production27 Jun 12 Node.js, Module.Exports and Organizing Express.js Routes26 Jun 12 Paging & Ranking With Large Offsets: MongoDB vs Redis vs PostgreSQL25 Jun 12 Why Are You Linking To 404s?18 Jun 12 What I Learned Building Mogade13 Jun 12 Redis Is The Most Important Tool In My Toolbelt12 Jun 12 Azure's Website Lacks Organization and Details11 Jun 12 The Little Introduction To Programming08 Jun 12 I Blog To Learn07 Jun 12 Redis' Watch Command: Making Sure A Process Doesn't Run When Already Running05 Jun 12 Minimalist Markup01 Jun 12 Can You Make My Home Page Smaller?31 May 12 Client-Side vs. Server-Side Rendering30 May 12 Ten Features I Like About CoffeeScript16 May 12 Mock Expectations in .NET vs Ruby14 May 12 Let's Increment i, Logic Gate Style07 May 12 Let's Increment i, Assembly Style03 May 12 Measuring Time Spent Between Steps In A Funnel01 May 12 How I'd Change Riak's Documentation28 Apr 12 I Rather Have Silly Tests Than Silly Code24 Apr 12 Using MapReduce to Measure Funnels20 Apr 12 Arrays and Memory, Part 219 Apr 12 Learning Is More Important Than Knowing18 Apr 12 I'm a bad chef, but I still cook a lot18 Apr 12 Piping Basics13 Apr 12 Let's Talk About Logging11 Apr 12 You Really Should Log Client-Side Errors04 Apr 12 Malloc and Free31 Mar 12 Why Arrays Normally Start At Zero30 Mar 12 Recommending Distant Items27 Mar 12 Let's Build Something Using Amazon's DynamoDB06 Feb 12 Node.js, Require and Exports03 Feb 12 The Little Redis Book23 Jan 12 Refactoring Common API Functionality Into A Node.js Proxy17 Jan 12 Understanding CoffeeScript Comprehensions15 Jan 12 Reading from TCP streams12 Jan 12 Does My Replica Set Need An Arbiter07 Jan 12 I Just Don't Like Object Mappers18 Nov 11 Redis: Zero to Master in 30 minutes - Part 208 Nov 11 Redis: Zero to Master in 30 minutes - Part 108 Nov 11 Rethink Your Data07 Nov 11 CouchDB And MongoDB Performance28 Oct 11 A MongoDB Guy Learns CouchDB27 Oct 11 Demystifying Write Durability16 Oct 11 ObjectIds Are Predictable15 Oct 11 Speeding Up Queries: Re-Imagining Your Data14 Oct 11 Speeding Up Queries: Understanding Query Plans12 Oct 11 What's A Padding Factor?10 Oct 11 Multiple Collections vs Embedded Documents10 Oct 11 The MongoDB Collection09 Oct 11 MongoSpy, MongoWatch and Compressed Blobs23 Sep 11 The Little Things Add Up17 Sep 11 How You Should Go About Learning NoSQL15 Aug 11 Someone is selling my Foundations of Programming ebook on Amazon.com (and it isn't me)12 Aug 11 Yesterday I Quit My Job03 Aug 11 RoR Testing - One Thing To Do (I think) And One Thing Not To Do (I'm Sure)19 Jul 11 Learning Golang By Benchmarking Set Implementations15 Jul 11 Error Handling In Asynchronous Code With Callbacks and Return Codes14 Jul 11 The Only Thing I Think I Know About Proper CSS Usage06 Jul 11 Rethink your Data Model05 Jul 11 MongoDB, OpenStreetMap and a Little Demo20 Jun 11 Factories Make Testing Easier17 May 11 Making our MongoDB Code Run Faster09 May 11 Practical NoSQL - Solving a Real Problem with MongoDB and Redis08 May 11 Fighting the Framework04 May 11 Dealing with Now and why I'm almost done with C# and Java03 May 11 Automatically Processing Emails29 Apr 11 Planning Mogade v228 Apr 11 The Little MongoDB Book epub20 Apr 11 Algorithm Tutorials15 Apr 11 Video is a poor medium for learning to program12 Apr 11 Markdown and Me05 Apr 11 Why I'd Never Charge For A Tech Book31 Mar 11 tracking hits with load.io, a sunday project29 Mar 11 The Little MongoDB Book28 Mar 11 Stop Using Mocks23 Mar 11 Foundations of Programming 2 - Appendix B - Advanced jQuery21 Mar 11 Foundations of Programming 2 - Appendix A - jQuery Basics16 Mar 11 Side Projects - Mongly14 Mar 11 Foundations of Programming 2 - Chapter 5 - Effective Testing23 Feb 11 Regular Expressions: Positive/Negative Look-Ahead/Behind16 Feb 11 Validation: Hong Kong Doesn't Have Zip/Postal Codes15 Feb 11 Do Relational Database Vendors Care About Developers?10 Feb 11 Foundations of Programming 2 - Chapter 4 - Unit Testing31 Jan 11 jQuery DateRange Picker25 Jan 11 Understanding Map Reduce20 Jan 11 Foundations of Programming: Why Markdown? (And why not Word?)10 Jan 11 Foundations of Programming 2 - Chapter 3 - IoC 18006 Jan 11 Foundations of Programming 2 - Chapter 2 - Yet Another IoC Introduction29 Dec 10 Visual Studio's Most Unusable Features28 Dec 10 Foundations of Programming 2 - Chapter 1 - Quality and Efficiency20 Dec 10 Paypal's logo designed to look like a recommendation?15 Dec 10 Foundations of Programming 2 Will Need Your Help13 Dec 10 Does Anyone Know What Silverlight Is?03 Dec 10 How Optimized Are High Traffic Websites?16 Nov 10 How to Test Against an External HTTP Dependency12 Nov 10 mogade.com: a free platform for casual game developers09 Nov 10 An Introduction To Hosting26 Oct 10 My Slow Transition Away From Mocks/20 Oct 10 Weekend .NET Pains - Why I Prefer Ruby18 Oct 10 Programmer Passion: An Enterprises Most Useful Yet Repressed Advantage07 Oct 10 My Programming Sins - 2. Manually Managing References07 Oct 10 Introducing jstub27 Sep 10 Javascript Mocking - Damn, That's Easy.21 Sep 10 My Programming Sins - 1. [Not] Testing Javascript20 Sep 10 A different (for me) way to page06 Sep 10 How I would fix ASP.NET30 Aug 10 My .NET ICache24 Aug 10 HttpHandlerWrapper19 Aug 10 Design Through Testability - An Example19 Aug 10 Write testable code even if you don't write tests17 Aug 10 Website Performance : Crossing the T's and dotting the I's22 Jul 10 Using PostMark To Send Mail21 Jul 10 noobgaming : my rails and gaming passions combined20 Jul 10 Installing Nginx with Passenger on Linux (from source)01 Jul 10 Learning Ruby : Class methods != Static Methods26 Jun 10 Learning Ruby : class << self25 Jun 10 Rails does Mail Right. ASP.NET, not so much.24 Jun 10 My Rails Journey - The Expected Speed Bumps23 Jun 10 Its time to start again13 Jun 10