Articles

Janki Method — Using SRS to Improve Programming

Using spaced repetition systems to learn and retain technical knowledge.


Hidden costs of accepting online payments

How hidden fees stack up so as to quadruple the cost of using online payments providers


SEO by Mitigating Duplicate Content Issues

Canonicalization, Robots, and Redirects


SEO Through Backlinks

Email outreach, featuring famous people, and buying links?


SEO Steps To Take Before Writing a Single Line of Code

You need to bake two things into the heart of your web app: keywords and a clever scalable content creation strategy


SEO at the Whole Website Level

Internal linking strategies, sitemaps, and HTTPS


SEO on Each Individual Page

Rich snippets and all the basics about keywords in title tags, URLs, etc.


Dworkinian Integrity and (Sub-)Symbol Minimisation: Prescriptions for Consistent Software

How the perfect unbuilt API already exists, floating in the zeitgeist, and how it is up you to pay attention to the totality in front of you


Excelling at Exception Notification

Fighting inadequate exception notification– do your background queues, assistive servers, and OS report issues?


Application-Level Documentation Beats Code-Level Documentation

Or how to dramatically reduce training time, speed up recovery during disasters, and make future programmers love you


Minimum Viable Backups for Web Apps

A list of the various nooks and crannies needing backing up followed by a look at the most common failure modes of a backup system


7 Keys to Systematic Debugging

Learn to recognise the various bug breeds and build awareness of how they appear in packs.


What Happens If A User Clicks A Button Twice

The most common source of bugs in web applications?


A Guide to Testing Web Applications for Developers Who Care about Overall Profitability

Presented in the form of 10 axioms


log_tokens

A simple technique to make your logs more useful when debugging


Replayability

Why your code should be capable of remembering and replaying inputs in the event that something goes wrong


Project-Level Attribute Normalisation

Why you should introduce a software layer close to your object relational mapper that formats attributes into clean, standardised forms


The Bug Slip

A bug hunting ritual that makes things a little easier


WWW vs. Naked Domain?

When starting a new website, is it better to choose domain.com or www.domain.com?


Silent Failures Must Be Given a Voice

The most dangerous bugs are those you remain chronically unaware of–as all too often occurs with failing scheduled scripts


Taking Data Integrity Srsly

Data Validity Spot Checks, No-Delete Policies, Database Constraints, and Care with NULLs vs. FALSEs etc.


Web Developers: Harmonise Your Time Zones

How it's all too easy to wind up with divergent time zones across a modern web stack


Adminimisation: Tips for Building Great Admin Dashboards

How to build a robust administrative area that'll help you automate away the boring and routine tasks involved in running a web site


Optimising and Debugging Paid Advertisements

Ways metrics mislead you; how to overcome low reach/low quality score/high CPC etc.


SEO in Image Search

SEO-ed *text* enters you into the main event, but you might also want to compete in Google’s alternative races, such as Google Images, Google Videos, or Google Maps.


SEO with Social Networks

Why Twitter Cards and Facebook Open Graph aren't total wastes of time


Email Marketing

The relevant laws, some growth-hackery tips, and suggestions about good emails to send


Why I Stay Behind the Version Rat Race

Whereas updates *sometimes* bring improvements, they are *guaranteed* to bring changes. And, as any programmer knows, software is allergic to change.


4 Ideas For Improving Testability in Web Apps

Backdoors, interface hooks, explanatory dry runs, and deep reachability


Deliberately Shopping for a Configuration Strategy

7 Factors To Consider When Choosing How To Manage Your Web App's Credentials and Configuration Options


Tips for Programming Accounting Features in Web Apps

Learn about representing money, rounding algorithms, and anticipating oddball transactions.


The Key to Good Documentation: Broaden Your Definition of Software

Or how to avoid frustration configuring, debugging, and rescuing servers and third-party services


Dealing with Test Leakage

Strategies for pinpointing and extricating indeterminacy from software tests.


Staying Organised When Advertising

How to structure campaigns, why to not delete data, when to schedule reviews


A Lasting Marriage: Lessons Learned After 7 Years With Google Analytics

A deep guide to developing a loving relationship founded on clean data, great communication, and appropriate caution


A Thorough Guide to Website Copywriting

From psychology to rhetoric: copywriting tips for those who don't know what to say


The Conversion Surgeon: A Guide to Conversion Rate Optimization

A High-Level Catalogue of The Main Areas to Fiddle With When Optimizing Your Conversion Rate


Debugging Rails with Memcached

Many apps use Memcached in their infrastructure so it's important to know how to debug thorny caching errors.


A Comprehensive Guide To Debugging Rails

Feedback systems for finding errors in your web application.


Introduction to Paid Advertising

Where I try to convince you that advertising isn't always an annoyance (and that you shouldn't be afraid of ad blockers)


Strategic Principles in Paid Advertising

Rationed views, gas pedals, per person frequencies, when to trust platform reps


Janki Method Refined

Tips, shortcuts and revisions to the original method


A Tour of Targeting

The general principles of targeting followed by a tour of the available options on the major platforms


Ad Creative Writing Basics

Tips for image choice, headline, and the body


Check Out My Guide to Statistical Significance on Kissmetrics

Fun, example-filled guide, aimed at building intuition


Building an Advertising Ready Web Application (and other preparations for advertising)


SEO and Internationalisation

Separate language from territory; clarify your international site structure to Google


5 Ways URLs Go Wrong

A tour of the traps and potholes that inhibit us from getting URL naming right


Non-Traditional Ways of Thinking About Targeting on Inbound.org

Fresh mental models to help with finding the right targeting for your online advertising.


Debugging Rails with Pry Console

Tips and tricks for snooping about your codebase with the Pry console. You'll learn how to view the source code of ANY method on demand, see global variables, or change "self" to another object.


Awareness Through the Creation of Jargon

An experiment in perception involving a taxonomy of typos.


Debugging Rails With Chrome DevTools

Chrome DevTools gives you yet another angle for debugging your software, especially the CSS and JS.


Debugging Rails with Custom Instrumentation

Why settle with the debugging tools built into Rails? Why not create your own custom tools to ease the load?


Debugging Rails with Git

Source control software gives us a unique insight into changes in code and the human intention behind them.


Debugging Rails with Logs

Everything you ought to be looking at when interpreting the Rails built-in logs. Also looks at other logs, such as Amazon S3 access logs and scheduler logs.


Debugging Rails with Online or Third Party Tools

How Google Webmaster Tools, Google Search, New Relic, and email delivery reports can help you uncover errors in your web application


Automating Popularity

Can handing your Facebook profile to a computer program make you more popular in real life?


Debugging Rails With Built-in Tools

Lesser known tools built in to the standard stack - such as the middleware lister, Gemfile.lock, Ruby compiler checks, rails dbconsole


Debugging Rails with Operating System Tools

Unix/Command-Line level tools for making web-developers' lives easier– lsof, nslookup, gdb, tcpdump, ctags, ack, strace, and top


Debugging Rails with Pry Debugger

Master the universal debugger commands "step" and "next" and learn how to crack open a Pry session at any point.


Textmate to VIM

Where I explain how to reproduce over 110 commands from Textmate in VIM.


Why Bother With Cucumber Testing?

The disadvantages of using Cucumber and its widespread use as a poor man's integration test.


Autodidactism

40 page guide