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