Thoughts from the Thagomizer

Occasional spiky insights on distributed systems, engineering leadership, and the joy of technical rigor.

calendar_month August 2026

August 03, 2026

Who is a Builder?

I got to spend my Saturday at my first true builder event in Chicago, hosted by GDG Chicago. We helped 50 folks build all kinds of apps using Google technology....

Read Article chevron_right

calendar_month June 2026

June 24, 2026

Multi-Agent Ping Pong Pairing with Antigravity

Let's take loop engineering for a test drive with ping-pong pairing, subagents, and Antigravity

Read Article chevron_right
June 04, 2026

How XP Made A Better AI Coder

Early in my career as a professional programmer, I found myself in a subset of the Ruby community that was passionate about Extreme Programming (XP) and Agile. Those XP practices...

Read Article chevron_right

calendar_month May 2026

May 04, 2026

Perspectives on the Future of DevRel

The simple truth is that I don’t know what the future of DevRel is. I have some ideas, but we’re all on an AI journey together, and sometimes it seems...

Read Article chevron_right

calendar_month April 2026

April 27, 2026

Introducing Ursa Weaver

I got into tech because I didn’t like school. It wasn’t that I disliked learning or got bad grades. I just never understood the way most schools work. Why should...

Read Article chevron_right

calendar_month November 2024

November 01, 2024

Becoming an AI-Assisted Coding Convert

My primary objection to AI-assisted development was accuracy or, rather, the lack of accuracy. In one of my first exchanges with a generative AI, I quickly got it to produce...

Read Article chevron_right

calendar_month September 2024

September 11, 2024

Advanced friction logs: Empathy Sessions

What do you do if a friction log isn't convincing your stakeholders or they need to urgently address developer pain points? That's when I set up an empathy session.

Read Article chevron_right

calendar_month June 2024

June 17, 2024

RAG is simpler and more powerful than you think

One of the more common techniques for preventing hallucinations is RAG or Retrieval Augmented Generation. It sounds complex, and it can be. But the basic idea is extremely simple. It...

Read Article chevron_right
June 10, 2024

Addressing Manager Feedback

Like most large companies, Google regularly asks employees to give feedback on their team and managers. Receiving that feedback is one of the most stressful days of the year for...

Read Article chevron_right
June 06, 2024

Vertex AI Agent Builder Demo from I/O

At Google I/O this year, I did a demo of Vertex AI Agent Builder, where I built a simple agent that could help you reserve a picnic shelter at a...

Read Article chevron_right

calendar_month March 2024

March 26, 2024

Productivity Tools: Bullet Journal

The thing I like about bullet journaling is that it is flexible. I've tried several paper planners as an adult. They either provide very little structure or so much structure...

Read Article chevron_right

calendar_month November 2023

November 16, 2023

Manager Toolkit: Manage The Person In Front Of You

Ultimately, my management style is flexible and guided by three sayings: manage the person in front of you, manage the team in front of you, and manage adults.

Read Article chevron_right
November 09, 2023

Manager Toolkit: Useful Manager Phrases for 1:1s

I did start Every. Single. One-on-one. with "What's on your mind?" for years. I'm sure I found it in some "OMG, you're a tech manager now" book or blog post,...

Read Article chevron_right
November 01, 2023

Manager Toolkit: You Talk, I Type

When I became a manager and began supporting people on their career journeys, I started reaching back to the things I saw and learned growing up to help peole with...

Read Article chevron_right

calendar_month October 2023

October 16, 2023

Jump Start Solutions: An optimization problem and design challenge

Those constraints gave us another optimization problem, "Fast, cheap, realistic, and understandable. Pick any N." Except we didn't know if N was 1 or 3. We just knew it wasn't...

Read Article chevron_right
October 11, 2023

Storytime - The Impossible Assignment

This story takes place early in my career when I was working as a tester. At the start of the planning cycle, I was pulled aside and told I was...

Read Article chevron_right

calendar_month March 2023

March 07, 2023

Five Things That Change When You Become A Manager

My team at work set up a new program in 2023: shadow a manager. Anyone on the team can shadow any of the managers for a couple meetings for a...

Read Article chevron_right

calendar_month January 2022

January 26, 2022

The Ideal Advocate

There are many ways to be an advocate, and success depends heavily on context and the people involved. This makes it hard to answer questions like “what does a normal...

Read Article chevron_right
January 11, 2022

Manager Hack: A Simple Weekly Email

One of the things I've struggled with is how to get a new manager up to speed on my team and also how to help them have confidence in my...

Read Article chevron_right

calendar_month July 2021

July 12, 2021

The Questions Doc

A lot of folks aren’t willing to publicly ask questions. Sometimes cultural factors are impacting people’s behavior. Sometimes it is impostor syndrome. Sometimes folks think that they’re bothering their super...

Read Article chevron_right

calendar_month May 2020

May 26, 2020

Contact Tracing and Exposure Notification

An overview of the COVID-19 Exposure Notification API by Google & Apple

Read Article chevron_right

calendar_month April 2020

April 22, 2020

CatOps: Functions Framework, Cloud Tasks, and my cat

I have a relatively simple problem, my cat, Nick, can open our front door and let himself out. Since he's a strictly indoor cat, this is a problem. In true...

Read Article chevron_right

calendar_month August 2019

August 20, 2019

App Engine gotchas For Rubyists

It has been a while since I wrote about App Engine and Ruby. Honestly, there wasn't a lot of news to share. It continued to work! But now Google has...

Read Article chevron_right

calendar_month June 2019

June 20, 2019

Cloud Build Dependency Graph

A couple of months ago, my coworker [Mark Mandel](https://twitter.com/Neurotic) asked if anyone had a way of visualizing dependencies in [Cloud Build](https://cloud.google.com/cloud-build/). As you'd expect, several of us jumped at the...

Read Article chevron_right

calendar_month March 2019

March 19, 2019

Mentoring: You're Doing It Badly

All of the problems I see in mentorship come from one flawed assumption. Too many folks assume their mentee is just like them. Or at least that their mentee is...

Read Article chevron_right

calendar_month August 2018

August 22, 2018

Friction Logs

This is where friction logs come in handy. A friction log is a document that lists out all the little stuff that makes the tool hard to use but frames...

Read Article chevron_right
August 15, 2018

Ask These Questions before Going to Prod

Many folks who are new to operations approach things with an absolutist mindset. They see things as correct or incorrect and secure or insecure. In reality, operations of all types...

Read Article chevron_right

calendar_month May 2018

May 30, 2018

Org Mode Tagging

Org-mode supports arbitrary tags on headlines. If you are using Org to track tasks, then you might tag items "work" or "phone". Tags go at the end of the line,...

Read Article chevron_right
May 22, 2018

Cloud Functions and Cat Facts

A few weeks back, Myles Borins and I did a talk at Google I/O about choosing which cloud services to use in different situations. We both feel that the best...

Read Article chevron_right
May 02, 2018

Thank You To A Bad Manager

I've had some fantastic managers. The folks I've worked for at Google have been especially supportive. They help me reach my goals and also make room for me to be...

Read Article chevron_right

calendar_month April 2018

April 12, 2018

UX Is In The Small Things

Earlier this week I got to help host a group of girls visiting Google. They are middle school students in an after-school program focused on engineering, mathematics, and science. My...

Read Article chevron_right

calendar_month March 2018

March 27, 2018

Cleaning Up Time Machine Local Snapshots

About a week ago my mac complained that it was running out of disk space. I deleted a bunch of old TV shows and GoPro videos and called it good....

Read Article chevron_right
March 21, 2018

A Rubyist Learns List Comprehensions

In Python list comprehensions are used in places where a Rubyists would chain methods from Enumerable. For example, if I wanted to return the squares of all multiples of three...

Read Article chevron_right
March 11, 2018

Testing In Production

There's a good chance you have some kinds of tests for your code. You probably have some unit tests and you may have higher level integration tests. Maybe your integration...

Read Article chevron_right

calendar_month February 2018

February 26, 2018

The Dreaded Whiteboard

I noticed that people had a lot of assumptions about what a made a whiteboard answer good. Most of those assumptions were not things that I and others I know...

Read Article chevron_right

calendar_month January 2018

January 25, 2018

Auntie Aja on Abstracts: You Can Do Better

Auntie Aja is back. This time I want to talk a bit about conference session proposals. It is CFP season. I'm busy submitting talk proposals to events I want to...

Read Article chevron_right
January 18, 2018

The Toaster Parable

The tech industry has a problem that I refer to as the " the toaster problem," which is of course, best illustrated by "the parable of the toaster". Suppose you...

Read Article chevron_right
January 17, 2018

Security Advice for GCS Buckets

I can't tell you how to make your buckets and objects 100% secure, I can give you some basic advice that is pretty universally applicable. The vast majority of this...

Read Article chevron_right
January 11, 2018

Case Statement Magic

Earlier this week, a conversation on the Seattle.rb Slack reminded me of one of my favorite hidden Gems in Ruby, the `case` statement. Most languages have syntax for multiway branching....

Read Article chevron_right

calendar_month December 2017

December 27, 2017

GCP Audit Logs

Audit logs are boring. At least we hope they’re boring. If your audit logs are exciting, you are likely having a bad day. But audit logging of some sort is...

Read Article chevron_right
December 19, 2017

Metaprogramming and Currying

This year there have been many problems that require writing an interpreter for a simple language. My favorite of these has been [day 16](http://adventofcode.com/2017/day/16) which had you execute some dance...

Read Article chevron_right
December 07, 2017

Year Three: Risk Taking

December 8th is my three year anniversary at Google. Every year I've written an anniversary blog post talking about what I've learned about Developer Relations as a career in the...

Read Article chevron_right

calendar_month November 2017

November 30, 2017

Thoughts on Personal Brand

I find it distasteful that I'm writing a blog post on personal brand. When I started thinking about the topic about five years ago every fiber of my nerdy self...

Read Article chevron_right
November 07, 2017

ML Basics: Markov Models Write Fairy Tales

One way to build things like Twitter bots is to use Markov Chains. If you read the formal papers on Markov Chains and Markov Models, they seem quite complex, but...

Read Article chevron_right

calendar_month October 2017

October 22, 2017

How I Publish My Blog

I write most of my posts in Markdown. For things I can't neatly do in Markdown, I'll use erb or even straight HTML. Since ZenWeb lets me have multiple renderers...

Read Article chevron_right
October 17, 2017

What is the App Engine Gem

The App Engine gem provides a set of tools that make it easier to use App Engine with Ruby and especially with Rails. It isn't that it is hard to...

Read Article chevron_right

calendar_month September 2017

September 29, 2017

We Don't Do That Here

If no one has told you yet, as your career in tech progresses you will eventually become a custodian of culture. If you run a meetup or a team, if...

Read Article chevron_right
September 24, 2017

What to Wear on Stage

All the conferences I've spoken at use a body-mounted mic. The most common types are lapel mics, which clip on your shirt, or over the ear mics, which may end...

Read Article chevron_right
September 21, 2017

Battleship: Lessons Learned

On September 5th I put my battleship API to the test by having the attendees at Seattle.rb's quarterly coding workshop try to build clients against it. In the process, I...

Read Article chevron_right
September 13, 2017

ML Basics: K Nearest Neighbors

One technique for doing classification is called K Nearest Neighbors or KNN. To use the algorithm you need to have some data that you've already classified correctly and a new...

Read Article chevron_right

calendar_month August 2017

August 31, 2017

Deploying Battleship to GAE

Last time I finished writing the battleship server. The next step is to deploy it somewhere. I'm close to my first real deadline, Seattle.rb next Tuesday evening, so I'm taking...

Read Article chevron_right
August 22, 2017

Stackdriver Advanced Filters

This post should help you learn some of the power user features of Stackdriver Logging. I encourage you to try some of the things in the post so that when...

Read Article chevron_right
August 18, 2017

About That Memo

A handful of folks have asked, 'Are you okay?'. That's a surprisingly hard question. I'm going to be more honest and less generous than I usually am and hope it...

Read Article chevron_right
August 16, 2017

Battleship: Building the Server

My initial design called for two endpoints, `/new_game` and `/turn`. I added a third endpoint at `/` that displays the rules and the format for messages to the other endpoints....

Read Article chevron_right
August 03, 2017

ML Basics: Linear Regression

Based on a Twitter Poll I'll be doing a series on the basics of Machine Learning over the next few months. I plan to have a post out on the...

Read Article chevron_right

calendar_month July 2017

July 31, 2017

Battleship Part 2: Terminal Forever

Last Time I wrote about a set of data structures and objects to implement battleship. I promised that this time I'd show how to implement the turn taking and running...

Read Article chevron_right
July 13, 2017

Battleship Part 1: Local Battles

One of my goals for this summer is to get out of my Ruby rut. I love Ruby. I like how the language feels. I like the principle of least...

Read Article chevron_right
July 11, 2017

The Nagging Question

The biggest issue I have as a minority in tech is knowing when something happens because of my gender or when it happens for other reasons. Another way I phrase...

Read Article chevron_right

calendar_month June 2017

June 15, 2017

You Are Not Your Code

You are not your code. You are not your ideas. You are not your products. You are not your job. You are not your employer. If I had to give...

Read Article chevron_right
June 08, 2017

Making an Enumerable

A couple of weeks ago I wrote about some of the handy methods that are part of the Enumerable module in Ruby. This week I thought I would talk about...

Read Article chevron_right
June 01, 2017

Talks I Love: STEM For General Audiences

For this month I wanted to branch out and focus on technical or scientific talks from outside of the Ruby community.

Read Article chevron_right

calendar_month May 2017

May 25, 2017

The Delightful Stackdriver Debugger

The product I am most excited about at the moment is Stackdriver Debugger. Every time I get to demonstrate Debugger at a conference people are initially incredulous. Once they see...

Read Article chevron_right
May 18, 2017

Going Analog

Managing my to do list and staying focused has often been a challenge. At previous jobs, I used a variety of online tools to manage my tasks. When my work...

Read Article chevron_right
May 11, 2017

Stackdriver Monitoring And Ruby

This week I have been learning how to access Stackdriver Monitoring with the google-cloud-monitoring gem.

Read Article chevron_right
May 04, 2017

Talks I Love: The Art of the Keynote

Giving a good keynote is harder than presenting a regular session. If it is a plenary session, you need to deliver content that is interesting and relevant to a wide...

Read Article chevron_right

calendar_month April 2017

April 27, 2017

Debugging Demos

I wanted to reprise a demo I did at RubyConf 2015 where I used a distributed system to do sentiment analysis based on emoji. At the time I felt I...

Read Article chevron_right
April 20, 2017

Your Friend Enumerable

A lot of Rubyists do not know much of enumerable beyond `each`. Here are a handful of methods that are handy to know both for interviews and general purpose coding....

Read Article chevron_right
April 13, 2017

The Google NLP API Meets Ruby

At RailsConf I'll be giving a talk on Natural Language Processing. As part of my preparation for this talk, I've been reading a bunch of the history of Natural Language...

Read Article chevron_right
April 06, 2017

Talks I Love: Historical Oratory

Thus far my 'Talks I Love' series has only included technical talks. At this point it would be easy to believe that this series is about fantastic technical content, not...

Read Article chevron_right

calendar_month March 2017

March 30, 2017

Depth First Search & Minesweeper

In Minesweeper, when you click on a square the game reveals the number of mines nearby. If there aren't any mines nearby, the neighboring squares are revealed. If those squares...

Read Article chevron_right
March 23, 2017

Audit Logging on GCP

At Google Cloud Next two weeks ago I had the chance to chat with many folks using or experimenting with Google products. Questions about change management and audit logging came...

Read Article chevron_right
March 16, 2017

Five Useful Org-Mode Features

As I'm writing tutorials, working on new code, or creating my talks I usually take notes. A couple years ago I adopted `org-mode` in Emacs for my notes.

Read Article chevron_right
March 09, 2017

Rails on App Engine: Tips and Tricks

As we have gotten closer to GA, I've built a few non-trivial Rails applications and deployed them to GAE. I've also given some one-on-one help to others deploying to App...

Read Article chevron_right
March 02, 2017

Talks I Love: Speaking Rate

This month's 'Talks I Love' post focuses on speaking rate. For me, this is one of the most challenging aspects of good delivery. My normal speaking rate is faster than...

Read Article chevron_right

calendar_month February 2017

February 23, 2017

Monitoring BigQuery with Stackdriver

This week I sat down to learn the tools that were available for monitoring BigQuery using Stackdriver.

Read Article chevron_right
February 16, 2017

True Allies Listen

The most important thing you can do is listen. Actively listen with the intent to understand. Don't focus on how you can respond to what you are hearing but try...

Read Article chevron_right
February 09, 2017

Ruby at Google Cloud Next

Google Cloud Next is March 8 - 10 in San Francisco. We have a dedicated team of a long time Ruby developers making large strides in our Ruby support. Here...

Read Article chevron_right
February 02, 2017

Talks I Love: Partner Talks

This month's Talks I Love post is about partner talks.

Read Article chevron_right

calendar_month January 2017

January 26, 2017

DevOps at Google Cloud Next

Google Cloud Next is March 8 - 10 in San Francisco. There are many breakout sessions for all sorts of different interests and skill levels. Here are some of the...

Read Article chevron_right
January 18, 2017

What are you trying to do?

One of the most useful phrases I know is 'What are you trying to do?'. I use it a lot when I am helping folks learn. I use it a...

Read Article chevron_right
January 08, 2017

Authenticating Google Cloud Ruby Gems

There are several different ways. Some are better suited for particular scenarios. I thought I would write up what the options are and when I would choose to use each...

Read Article chevron_right
January 05, 2017

Talks I Love: Sandi Metz and Katrina Owen

Storytelling is at the core of all public speaking. A story is the backbone of a good talk.

Read Article chevron_right

calendar_month December 2016

December 16, 2016

Problem Solving with Advent of Code

I've been really enjoying it as a diversion from my holiday tasks. I've finished fourteen of the twenty-five problems at this point and thought it would be fun to do...

Read Article chevron_right
December 07, 2016

Two Years

Two years ago I started work in Developer Relations. I had absolutely no idea what my job would look like when I started. I was pretty sure it would involve...

Read Article chevron_right

calendar_month October 2016

October 28, 2016

Using Fog Google

Fog has the uneviable task of trying to provide a logical unified interface to a large number of cloud providers that have different functionality and philosophies.

Read Article chevron_right
October 25, 2016

Improve Your Speaking

Like most of America, I watched the presidential debates. While I did pay attention to the content, I was more drawn in by the speaking style of each of the...

Read Article chevron_right
October 20, 2016

Metadata Service

Managing API keys and other secrets across a build and deployment pipeline can be a pain.

Read Article chevron_right

calendar_month September 2016

September 29, 2016

Ruby & GCP: Uploading Pictures To Cloud Storage

This is a quick tutorial on uploading files to Google Cloud Storage with Ruby.

Read Article chevron_right
September 23, 2016

Why your talk was rejected

The headline for this blog post is a bit sensational. Realistically I can't tell you why a given talk was accepted or rejected.

Read Article chevron_right
September 11, 2016

Mental Health and Supporting Each Other

A couple years ago I sat in the back of a talk listening to the person on stage discuss their struggle with depression.

Read Article chevron_right
September 06, 2016

Containers Four Ways

At one of the local meet-ups I attend containers and containerization is a relatively common topic of discussion. Google is a big advocate of containers so it probably isn't a...

Read Article chevron_right

calendar_month August 2016

August 28, 2016

Insertion Sort

Insertion sort is the first sort I'm going to dive into.

Read Article chevron_right
August 12, 2016

Diversity is not a check box

So what does fostering diversity look like if diversity isn't a check box?

Read Article chevron_right

calendar_month July 2016

July 15, 2016

Ruby Meets BigQuery: Part 2

Recently, Google Cloud Platform and GitHub made data from nearly three million open source repositories available on BigQuery.

Read Article chevron_right
July 13, 2016

Ruby Meets BigQuery: Part 1

While we were discussing this, the tester in me wondered, what are the most common 500 gems?

Read Article chevron_right

calendar_month June 2016

June 25, 2016

Gotham Ruby 2016

BigQuery + RubyGems == Love

Read Article chevron_right
June 13, 2016

Queues and Stacks

A stack is one of the simplest data structures.

Read Article chevron_right

calendar_month May 2016

calendar_month April 2016

April 12, 2016

Uploading Cat Pictures w/ Sinatra and Google Cloud Storage

Once I had a basic Sinatra app running I wanted to see how difficult it would be to add support for uploading files.

Read Article chevron_right

calendar_month March 2016

March 24, 2016

Sinatra on Google Container Engine

Running a Sinatra app in a container on GKE

Read Article chevron_right
March 21, 2016

Sharpening the Axe

Ruby On Ales 2016 Slides

Read Article chevron_right
March 21, 2016

Sharpening the Axe

Mountain West Ruby Conf 2016 Slides

Read Article chevron_right

calendar_month January 2016

January 03, 2016

One Year In Developer Relations

I've been a Developer Advocate at Google for a bit over a year now. I was really unsure when I took this position but now I feel like I finally...

Read Article chevron_right

calendar_month October 2015

October 26, 2015

Conference Proposals

So you want to propose a talk for a technical conference?

Read Article chevron_right
October 18, 2015

Boundaries

My name is Aja and I don't enjoy diversity work. And that's okay.

Read Article chevron_right

calendar_month September 2015

September 18, 2015

Cloud Minute

My team at work recently launched a series of one-minute videos that we're calling Cloud Minute.

Read Article chevron_right

calendar_month August 2015

August 18, 2015

Using the Kubernetes Secrets API

This is the third part in my series on building and deploying a Rails app using Docker containers and Kubernetes.

Read Article chevron_right

calendar_month July 2015

July 01, 2015

Kubernetes and Deploying to Google Container Engine

Kubernetes will take care of some of the low level monitoring and management tasks so that I can focus more on application development.

Read Article chevron_right

calendar_month May 2015

May 12, 2015

Basic Rails App with Docker

To try out Docker I wrote a simple To Do list application using the rails scaffold.

Read Article chevron_right
May 05, 2015

Forensic Log Analysis with BigQuery - Collision Conf 2015

Using BigQuery for log investigation lets you use familiar tools like SQL to dig into your logs, extract the interesting data, and even make charts of the data.

Read Article chevron_right
May 01, 2015

techbridge visit

On Monday I had the opportunity to help host a group of 29 5th and 6th grade girls at the Google office in Fremont.

Read Article chevron_right

calendar_month April 2015

April 10, 2015

Playing With Data: Birth Plurality In the US

Are multiple births more common now than in the past?

Read Article chevron_right

calendar_month March 2015

March 13, 2015

TIL: Hash Edition

Whenever I see the same value being used for all the keys in a hash I think...

Read Article chevron_right

calendar_month February 2015

February 20, 2015

From the cool_shit file

I know a lot of folks (myself included) get thwarted trying to make a hash of arrays

Read Article chevron_right

calendar_month November 2014

November 19, 2014

Approaching Rosalind Problems

This blog post is a basic outline of my process for problem solving mathy stuff

Read Article chevron_right
November 18, 2014

A World Without Assignment

Ruby Conf 2014 Slides

Read Article chevron_right

calendar_month October 2014

October 21, 2014

Euler Coding Challenges

Seattle.rb has had a second Euler coding challenge now and the third is currently underway.

Read Article chevron_right

calendar_month September 2014

September 19, 2014

What Do I Do With This Giant Pile of Data?

Golden Gate Ruby Conf 2014 Slides

Read Article chevron_right

calendar_month August 2014

calendar_month June 2014

June 28, 2014

Learn To Code Resources: Part Three

After being initially skeptical of Dev Bootcamps I've come to appreciate the work they do and believe they have a place in the landscape...

Read Article chevron_right
June 11, 2014

Learn To Code Resources: Part Two

People who've learned the basics of programming (in Ruby or another language) need resources that help them get coding 'mileage'

Read Article chevron_right
June 08, 2014

Learn To Code Resources: Part One

During the last six months it feels like at every Seattle.rb meeting we have someone who is brand new and asks 'How do I learn to code?' or 'How do...

Read Article chevron_right

calendar_month May 2014

May 06, 2014

Seattle.rb May 2014 Coding Challenge

To remedy this I'm putting my money where my mouth is and offering up $100 to be split between two winners of a Coding Challenge during May 2014.

Read Article chevron_right

calendar_month March 2014

March 21, 2014

A World Without Assignment

Mountain West Ruby Conf 2014 Slides

Read Article chevron_right

calendar_month October 2013

October 21, 2013

We're sorry, but something went wrong

Cascadia Ruby 2013 Slides

Read Article chevron_right

calendar_month September 2013

September 20, 2013

Seeing the Big Picture (GoGaRuCo 13)

Data is a hot buzz word in the industry. Every day there are more startups using Big Data

Read Article chevron_right
September 13, 2013

Seeing the Big Picture (Windy City Rails 2013)

Data is a hot buzz word in the industry. Every day there are more startups using Big Data

Read Article chevron_right

calendar_month June 2013

June 11, 2013

You Don't Need `assert_nothing_raised`

`assert_nothing_raised` is the 9th most commonly used assertion in ruby

Read Article chevron_right
June 01, 2013

2.5 hours a week

For the month of June I'm going to spend 2.5 hours a week on my personal programming projects.

Read Article chevron_right

calendar_month May 2013

May 28, 2013

Run The Tests You Write

It seems like such a waste to write the tests and not run them.

Read Article chevron_right
May 17, 2013

Write Tests

The most common testing anti-pattern seems to be not writing them to begin with.

Read Article chevron_right
May 14, 2013

Effective Tests

Tests reassure me that I didn't break anything and when I do break things they help me find the problem.

Read Article chevron_right
May 07, 2013

Testing Other People's Code

Your tests verify that your code is functioning correctly. Good tests verify the contract/api the software provides to users.

Read Article chevron_right

calendar_month April 2013

April 04, 2013

A Testing Anti-Pattern Safari

Slides from my Mountain West Ruby Conf 2013 presentation.

Read Article chevron_right

calendar_month November 2012

November 12, 2012

Gosu Makes Writing Games Easy

Gosu is a fantastic little library for making basic 2D games

Read Article chevron_right
November 05, 2012

Write Code Everywhere

Slides from my lightning talk

Read Article chevron_right
November 02, 2012

factorial(21) and Mac System Ruby

fact(21) => -4249290049419214848

Read Article chevron_right

calendar_month September 2012

September 26, 2012

Code Drives

our lappies and us

Read Article chevron_right
September 01, 2012

Pomodoro Technique and Vitamin-R

Like most people, I have days where I find it hard to concentrate and be productive.

Read Article chevron_right

calendar_month August 2012

August 02, 2012

A Taste of Prolog at Cascadia 2012

Tomorrow I'll be giving a talk called A Taste of Prolog at Cascadia Ruby Conf.

Read Article chevron_right

calendar_month April 2011

April 26, 2011

The Graph Gem

One of my favorite gems is [Graph](http://rubygems.org/gems/graph).

Read Article chevron_right

calendar_month July 2010

July 04, 2010

Namespaces, models, and rails associations

I spent several hours banging my head against this.

Read Article chevron_right