> Last updated: 2026-10-21

# Thoughts from the Thagomizer

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

## September 2026 

September 15, 2026

### [My Personal Guidelines for Using AI Respectfully](/blog/2026/09/15/my-personal-guidelines-for-using-ai-respectfully.html)

I think it was a year ago that I got introduced to the concept of “Work Slop”. Work slop is AI-generated documents, emails, slide decks, and other artifacts that initially...

[Read Article](/blog/2026/09/15/my-personal-guidelines-for-using-ai-respectfully.html)

## August 2026 

August 03, 2026

### [Who is a Builder?](/blog/2026/08/03/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](/blog/2026/08/03/who-is-a-builder)

## June 2026 

June 24, 2026

### [Multi-Agent Ping Pong Pairing with Antigravity](/blog/2026/06/24/ping-pong-pairing-with-antigravity)

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

[Read Article](/blog/2026/06/24/ping-pong-pairing-with-antigravity)

June 04, 2026

### [How XP Made A Better AI Coder](/blog/2026/06/04/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](/blog/2026/06/04/how-xp-made-a-better-ai-coder)

## May 2026 

May 04, 2026

### [Perspectives on the Future of DevRel](/blog/2026/05/04/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](/blog/2026/05/04/perspectives-on-the-future-of-devrel)

## April 2026 

April 27, 2026

### [Introducing Ursa Weaver](/blog/2026/04/27/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](/blog/2026/04/27/introducing-ursa-weaver)

## November 2024 

November 01, 2024

### [Becoming an AI-Assisted Coding Convert](/blog/2024/11/01/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](/blog/2024/11/01/becoming-an-ai-assisted-coding-convert)

## September 2024 

September 11, 2024

### [Advanced friction logs: Empathy Sessions](/blog/2024/09/11/advanced-friction-logs-empathy)

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](/blog/2024/09/11/advanced-friction-logs-empathy)

## June 2024 

June 17, 2024

### [RAG is simpler and more powerful than you think](/blog/2024/06/17/rag-is-simple-and-powerful)

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](/blog/2024/06/17/rag-is-simple-and-powerful)

June 10, 2024

### [Addressing Manager Feedback](/blog/2024/06/10/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](/blog/2024/06/10/addressing-manager-feedback)

June 06, 2024

### [Vertex AI Agent Builder Demo from I/O](/blog/2024/06/06/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](/blog/2024/06/06/vertex-ai-agent-builder-demo-from-i-o)

## March 2024 

March 26, 2024

### [Productivity Tools: Bullet Journal](/blog/2024/03/26/bullet-journaling)

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](/blog/2024/03/26/bullet-journaling)

## November 2023 

November 16, 2023

### [Manager Toolkit: Manage The Person In Front Of You](/blog/2023/11/16/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](/blog/2023/11/16/manage-the-person-in-front-of-you)

November 09, 2023

### [Manager Toolkit: Useful Manager Phrases for 1:1s](/blog/2023/11/09/useful-manager-phrases)

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](/blog/2023/11/09/useful-manager-phrases)

November 01, 2023

### [Manager Toolkit: You Talk, I Type](/blog/2023/11/01/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](/blog/2023/11/01/manager-toolkit-you-talk-i-type)

## October 2023 

October 16, 2023

### [Jump Start Solutions: An optimization problem and design challenge](/blog/2023/10/16/jump-start-solutions-design-challenges)

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](/blog/2023/10/16/jump-start-solutions-design-challenges)

October 11, 2023

### [Storytime - The Impossible Assignment](/blog/2023/10/11/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](/blog/2023/10/11/the-impossible-assignment)

## March 2023 

March 07, 2023

### [Five Things That Change When You Become A Manager](/blog/2023/03/07/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](/blog/2023/03/07/five-things-that-change-when-you-become-a-manager)

## January 2022 

January 26, 2022

### [The Ideal Advocate](/blog/2022/01/26/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](/blog/2022/01/26/the-ideal-advocate)

January 11, 2022

### [Manager Hack: A Simple Weekly Email](/blog/2022/01/11/manager-hacks-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](/blog/2022/01/11/manager-hacks-weekly-email)

## July 2021 

July 12, 2021

### [The Questions Doc](/blog/2021/07/12/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](/blog/2021/07/12/the-questions-doc)

## May 2020 

May 26, 2020

### [Contact Tracing and Exposure Notification](/blog/2020/05/26/contact-tracing-and-exposure-notification)

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

[Read Article](/blog/2020/05/26/contact-tracing-and-exposure-notification)

## April 2020 

April 22, 2020

### [CatOps: Functions Framework, Cloud Tasks, and my cat](/blog/2020/04/22/catops-responding-to-external-events-with-cloud-functions-cloud-tasks)

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](/blog/2020/04/22/catops-responding-to-external-events-with-cloud-functions-cloud-tasks)

## August 2019 

August 20, 2019

### [App Engine gotchas For Rubyists](/blog/2019/08/20/app-engine-updates-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](/blog/2019/08/20/app-engine-updates-for-rubyists)

## June 2019 

June 20, 2019

### [Cloud Build Dependency Graph](/blog/2019/06/20/cloud-build-dependencies)

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](/blog/2019/06/20/cloud-build-dependencies)

## March 2019 

March 19, 2019

### [Mentoring: You're Doing It Badly](/blog/2019/03/19/mentoring-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](/blog/2019/03/19/mentoring-badly)

## August 2018 

August 22, 2018

### [Friction Logs](/blog/2018/08/22/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](/blog/2018/08/22/friction-logs)

August 15, 2018

### [Ask These Questions before Going to Prod](/blog/2018/08/15/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](/blog/2018/08/15/ask-these-questions-before-going-to-prod)

## May 2018 

May 30, 2018

### [Org Mode Tagging](/blog/2018/05/30/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](/blog/2018/05/30/org-mode-tagging)

May 22, 2018

### [Cloud Functions and Cat Facts](/blog/2018/05/22/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](/blog/2018/05/22/cloud-functions-and-cat-facts)

May 02, 2018

### [Thank You To A Bad Manager](/blog/2018/05/02/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](/blog/2018/05/02/thank-you-to-a-bad-manager)

## April 2018 

April 12, 2018

### [UX Is In The Small Things](/blog/2018/04/12/small-differences-in-ui-matter)

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](/blog/2018/04/12/small-differences-in-ui-matter)

## March 2018 

March 27, 2018

### [Cleaning Up Time Machine Local Snapshots](/blog/2018/03/27/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](/blog/2018/03/27/cleaning-up-time-machine-local-snapshots)

March 21, 2018

### [A Rubyist Learns List Comprehensions](/blog/2018/03/21/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](/blog/2018/03/21/a-rubyist-learns-list-comprehensions)

March 11, 2018

### [Testing In Production](/blog/2018/03/11/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](/blog/2018/03/11/testing-in-production)

## February 2018 

February 26, 2018

### [The Dreaded Whiteboard](/blog/2018/02/26/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](/blog/2018/02/26/the-dreaded-whiteboard)

## January 2018 

January 25, 2018

### [Auntie Aja on Abstracts: You Can Do Better](/blog/2018/01/25/auntie-aja-on-abstracts)

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](/blog/2018/01/25/auntie-aja-on-abstracts)

January 18, 2018

### [The Toaster Allegory](/blog/2018/01/18/the-toaster-problem)

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

[Read Article](/blog/2018/01/18/the-toaster-problem)

January 17, 2018

### [Security Advice for GCS Buckets](/blog/2018/01/17/securing-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](/blog/2018/01/17/securing-gcs-buckets)

January 11, 2018

### [Case Statement Magic](/blog/2018/01/11/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](/blog/2018/01/11/case-statement-magic)

## December 2017 

December 27, 2017

### [GCP Audit Logs](/blog/2017/12/27/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](/blog/2017/12/27/gcp-audit-logs)

December 19, 2017

### [Metaprogramming and Currying](/blog/2017/12/19/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](/blog/2017/12/19/currying)

December 07, 2017

### [Year Three: Risk Taking](/blog/2017/12/07/year-three)

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](/blog/2017/12/07/year-three)

## November 2017 

November 30, 2017

### [Thoughts on Personal Brand](/blog/2017/11/30/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](/blog/2017/11/30/personal-brand)

November 07, 2017

### [ML Basics: Markov Models Write Fairy Tales](/blog/2017/11/07/markov-models)

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](/blog/2017/11/07/markov-models)

## October 2017 

October 22, 2017

### [How I Publish My Blog](/blog/2017/10/22/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](/blog/2017/10/22/how-i-publish-my-blog)

October 17, 2017

### [What is the App Engine Gem](/blog/2017/10/17/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](/blog/2017/10/17/what-is-the-app-engine-gem)

## September 2017 

September 29, 2017

### [We Don't Do That Here](/blog/2017/09/29/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](/blog/2017/09/29/we-don-t-do-that-here)

September 24, 2017

### [What to Wear on Stage](/blog/2017/09/24/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](/blog/2017/09/24/what-to-wear-on-stage)

September 21, 2017

### [Battleship: Lessons Learned](/blog/2017/09/21/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](/blog/2017/09/21/battleship-lessons-learned)

September 13, 2017

### [ML Basics: K Nearest Neighbors](/blog/2017/09/13/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](/blog/2017/09/13/ml-basics-k-nearest-neighbors)

## August 2017 

August 31, 2017

### [Deploying Battleship to GAE](/blog/2017/08/31/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](/blog/2017/08/31/deploying-battleship-to-gae)

August 22, 2017

### [Stackdriver Advanced Filters](/blog/2017/08/22/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](/blog/2017/08/22/stackdriver-advanced-filters)

August 18, 2017

### [About That Memo](/blog/2017/08/18/manifestbro)

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](/blog/2017/08/18/manifestbro)

August 16, 2017

### [Battleship: Building the Server](/blog/2017/08/16/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](/blog/2017/08/16/battleship-building-the-server)

August 03, 2017

### [ML Basics: Linear Regression](/blog/2017/08/03/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](/blog/2017/08/03/ml-basics-linear-regression)

## July 2017 

July 31, 2017

### [Battleship Part 2: Terminal Forever](/blog/2017/07/31/battleship-part-2-playing-the-game-locally)

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](/blog/2017/07/31/battleship-part-2-playing-the-game-locally)

July 13, 2017

### [Battleship Part 1: Local Battles](/blog/2017/07/13/battleship-part-1)

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](/blog/2017/07/13/battleship-part-1)

July 11, 2017

### [The Nagging Question](/blog/2017/07/11/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](/blog/2017/07/11/the-nagging-question)

## June 2017 

June 15, 2017

### [You Are Not Your Code](/blog/2017/06/15/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](/blog/2017/06/15/you-are-not-your-code)

June 08, 2017

### [Making an Enumerable](/blog/2017/06/08/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](/blog/2017/06/08/making-an-enumerable)

June 01, 2017

### [Talks I Love: STEM For General Audiences](/blog/2017/06/01/talks-i-love-stem-ted-talks)

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

[Read Article](/blog/2017/06/01/talks-i-love-stem-ted-talks)

## May 2017 

May 25, 2017

### [The Delightful Stackdriver Debugger](/blog/2017/05/25/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](/blog/2017/05/25/stackdriver-debugger)

May 18, 2017

### [Going Analog](/blog/2017/05/18/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](/blog/2017/05/18/going-analog)

May 11, 2017

### [Stackdriver Monitoring And Ruby](/blog/2017/05/11/stackdriver-monitoring-and-ruby)

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

[Read Article](/blog/2017/05/11/stackdriver-monitoring-and-ruby)

May 04, 2017

### [Talks I Love: The Art of the Keynote](/blog/2017/05/04/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](/blog/2017/05/04/talks-i-love-the-art-of-the-keynote)

## April 2017 

April 27, 2017

### [Debugging Demos](/blog/2017/04/27/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](/blog/2017/04/27/debugging-demos)

April 20, 2017

### [Your Friend Enumerable](/blog/2017/04/20/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](/blog/2017/04/20/your-friend-enumerable)

April 13, 2017

### [The Google NLP API Meets Ruby](/blog/2017/04/13/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](/blog/2017/04/13/the-google-nlp-api-meets-ruby)

April 06, 2017

### [Talks I Love: Historical Oratory](/blog/2017/04/06/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](/blog/2017/04/06/talks-i-love-historical-oratory)

## March 2017 

March 30, 2017

### [Depth First Search & Minesweeper](/blog/2017/03/30/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](/blog/2017/03/30/depth-first-search-minesweeper)

March 23, 2017

### [Audit Logging on GCP](/blog/2017/03/23/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](/blog/2017/03/23/audit-logging-on-gcp)

March 16, 2017

### [Five Useful Org-Mode Features](/blog/2017/03/16/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](/blog/2017/03/16/five-useful-org-mode-features)

March 09, 2017

### [Rails on App Engine: Tips and Tricks](/blog/2017/03/09/rails-on-app-engine)

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](/blog/2017/03/09/rails-on-app-engine)

March 02, 2017

### [Talks I Love: Speaking Rate](/blog/2017/03/02/talks-i-love-the-art-of-pacing)

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](/blog/2017/03/02/talks-i-love-the-art-of-pacing)

## February 2017 

February 23, 2017

### [Monitoring BigQuery with Stackdriver](/blog/2017/02/23/monitoring-bigquery-with-stackdriver)

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

[Read Article](/blog/2017/02/23/monitoring-bigquery-with-stackdriver)

February 16, 2017

### [True Allies Listen](/blog/2017/02/16/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](/blog/2017/02/16/true-allies-listen)

February 09, 2017

### [Ruby at Google Cloud Next](/blog/2017/02/09/ruby-at-gcp-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](/blog/2017/02/09/ruby-at-gcp-next)

February 02, 2017

### [Talks I Love: Partner Talks](/blog/2017/02/02/talks-i-love-partner-talks)

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

[Read Article](/blog/2017/02/02/talks-i-love-partner-talks)

## January 2017 

January 26, 2017

### [DevOps at Google Cloud Next](/blog/2017/01/26/devops-at-gcp-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](/blog/2017/01/26/devops-at-gcp-next)

January 18, 2017

### [What are you trying to do?](/blog/2017/01/18/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](/blog/2017/01/18/what-are-you-trying-to-do)

January 08, 2017

### [Authenticating Google Cloud Ruby Gems](/blog/2017/01/08/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](/blog/2017/01/08/authenticating-google-cloud-ruby-gems)

January 05, 2017

### [Talks I Love: Sandi Metz and Katrina Owen](/blog/2017/01/05/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](/blog/2017/01/05/talks-i-love-sandi-metz-and-katrina-owen)

## December 2016 

December 16, 2016

### [Problem Solving with Advent of Code](/blog/2016/12/16/advent-of-code-walkthrough)

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](/blog/2016/12/16/advent-of-code-walkthrough)

December 07, 2016

### [Two Years](/blog/2016/12/07/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](/blog/2016/12/07/two-years)

## October 2016 

October 28, 2016

### [Using Fog Google](/blog/2016/10/28/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](/blog/2016/10/28/using-fog-google)

October 25, 2016

### [Improve Your Speaking](/blog/2016/10/25/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](/blog/2016/10/25/improve-your-speaking)

October 20, 2016

### [Metadata Service](/blog/2016/10/20/metadata-service)

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

[Read Article](/blog/2016/10/20/metadata-service)

## September 2016 

September 29, 2016

### [Ruby & GCP: Uploading Pictures To Cloud Storage](/blog/2016/09/29/ruby-gcp-uploading-pictures-to-cloud-storage)

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

[Read Article](/blog/2016/09/29/ruby-gcp-uploading-pictures-to-cloud-storage)

September 23, 2016

### [Why your talk was rejected](/blog/2016/09/23/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](/blog/2016/09/23/why-your-talk-was-rejected)

September 11, 2016

### [Mental Health and Supporting Each Other](/blog/2016/09/11/devs-and-depression)

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](/blog/2016/09/11/devs-and-depression)

September 06, 2016

### [Containers Four Ways](/blog/2016/09/06/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](/blog/2016/09/06/containers-four-ways)

## August 2016 

August 28, 2016

### [Insertion Sort](/blog/2016/08/28/insertion-sort)

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

[Read Article](/blog/2016/08/28/insertion-sort)

August 12, 2016

### [Diversity is not a check box](/blog/2016/08/12/diversity-is-not-a-checkbox)

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

[Read Article](/blog/2016/08/12/diversity-is-not-a-checkbox)

## July 2016 

July 15, 2016

### [Ruby Meets BigQuery: Part 2](/blog/2016/07/15/ruby-meets-bigquery-part-two)

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

[Read Article](/blog/2016/07/15/ruby-meets-bigquery-part-two)

July 13, 2016

### [Ruby Meets BigQuery: Part 1](/blog/2016/07/13/ruby-meets-bigquery-part-one)

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

[Read Article](/blog/2016/07/13/ruby-meets-bigquery-part-one)

## June 2016 

June 25, 2016

### [Gotham Ruby 2016](/blog/2016/06/25/gotham-ruby-2016)

BigQuery + RubyGems == Love

[Read Article](/blog/2016/06/25/gotham-ruby-2016)

June 13, 2016

### [Queues and Stacks](/blog/2016/06/13/algorithms-queues-and-stacks)

A stack is one of the simplest data structures.

[Read Article](/blog/2016/06/13/algorithms-queues-and-stacks)

## May 2016 

May 04, 2016

### [Rails Conf 2016 - Postcards From GorbyPuff](/blog/2016/05/04/rails-conf-2016-postcards-from-gorbypuff)

Rails Conf 2016 - Slides

[Read Article](/blog/2016/05/04/rails-conf-2016-postcards-from-gorbypuff)

## April 2016 

April 12, 2016

### [Uploading Cat Pictures w/ Sinatra and Google Cloud Storage](/blog/2016/04/12/file-uploads-with-sinatra)

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](/blog/2016/04/12/file-uploads-with-sinatra)

## March 2016 

March 24, 2016

### [Sinatra on Google Container Engine](/blog/2016/03/24/sinatra-on-gke)

Running a Sinatra app in a container on GKE

[Read Article](/blog/2016/03/24/sinatra-on-gke)

March 21, 2016

### [Sharpening the Axe](/blog/2016/03/21/rb-on-ales-2016)

Ruby On Ales 2016 Slides

[Read Article](/blog/2016/03/21/rb-on-ales-2016)

March 21, 2016

### [Sharpening the Axe](/blog/2016/03/21/mountain-west-2016)

Mountain West Ruby Conf 2016 Slides

[Read Article](/blog/2016/03/21/mountain-west-2016)

## January 2016 

January 03, 2016

### [One Year In Developer Relations](/blog/2016/01/03/one-year-in-evangelism)

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](/blog/2016/01/03/one-year-in-evangelism)

## October 2015 

October 26, 2015

### [Conference Proposals](/blog/2015/10/26/conference-proposals)

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

[Read Article](/blog/2015/10/26/conference-proposals)

October 18, 2015

### [Boundaries](/blog/2015/10/18/boundaries)

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

[Read Article](/blog/2015/10/18/boundaries)

## September 2015 

September 18, 2015

### [Cloud Minute](/blog/2015/09/18/cloud-minute)

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

[Read Article](/blog/2015/09/18/cloud-minute)

## August 2015 

August 18, 2015

### [Using the Kubernetes Secrets API](/blog/2015/08/18/k8s_secrets)

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

[Read Article](/blog/2015/08/18/k8s_secrets)

## July 2015 

July 01, 2015

### [Kubernetes and Deploying to Google Container Engine](/blog/2015/07/01/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](/blog/2015/07/01/kubernetes-and-deploying-to-google-container-engine)

## May 2015 

May 12, 2015

### [Basic Rails App with Docker](/blog/2015/05/12/basic-docker-rails-app)

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

[Read Article](/blog/2015/05/12/basic-docker-rails-app)

May 05, 2015

### [Forensic Log Analysis with BigQuery - Collision Conf 2015](/blog/2015/05/05/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](/blog/2015/05/05/forensic-log-analysis-with-bigquery-collision-conf-2015)

May 01, 2015

### [techbridge visit](/blog/2015/05/01/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](/blog/2015/05/01/techbridge-visit)

## April 2015 

April 10, 2015

### [Playing With Data: Birth Plurality In the US](/blog/2015/04/10/playing-with-data-birth-plurality-in-the-us)

Are multiple births more common now than in the past?

[Read Article](/blog/2015/04/10/playing-with-data-birth-plurality-in-the-us)

## March 2015 

March 13, 2015

### [TIL: Hash Edition](/blog/2015/03/13/til-hash-edition)

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

[Read Article](/blog/2015/03/13/til-hash-edition)

## February 2015 

February 20, 2015

### [From the cool\_shit file](/blog/2015/02/20/the-cool_shit-file)

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

[Read Article](/blog/2015/02/20/the-cool_shit-file)

## November 2014 

November 19, 2014

### [Approaching Rosalind Problems](/blog/2014/11/19/approaching-rosalind-problems)

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

[Read Article](/blog/2014/11/19/approaching-rosalind-problems)

November 18, 2014

### [A World Without Assignment](/blog/2014/11/18/rubyconf)

Ruby Conf 2014 Slides

[Read Article](/blog/2014/11/18/rubyconf)

## October 2014 

October 21, 2014

### [Euler Coding Challenges](/blog/2014/10/21/euler-coding-challenges)

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

[Read Article](/blog/2014/10/21/euler-coding-challenges)

## September 2014 

September 19, 2014

### [What Do I Do With This Giant Pile of Data?](/blog/2014/09/19/gogaruco14)

Golden Gate Ruby Conf 2014 Slides

[Read Article](/blog/2014/09/19/gogaruco14)

## August 2014 

August 11, 2014

### [N Design Patterns You Might Actually Use (Where N \< 10)](/blog/2014/08/11/cascadia-ruby-2014)

Cascadia Ruby Conf 2014 Slides

[Read Article](/blog/2014/08/11/cascadia-ruby-2014)

## June 2014 

June 28, 2014

### [Learn To Code Resources: Part Three](/blog/2014/06/28/learn-to-code-part-3)

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](/blog/2014/06/28/learn-to-code-part-3)

June 11, 2014

### [Learn To Code Resources: Part Two](/blog/2014/06/11/learn-to-code-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](/blog/2014/06/11/learn-to-code-part-two)

June 08, 2014

### [Learn To Code Resources: Part One](/blog/2014/06/08/learn-to-code-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](/blog/2014/06/08/learn-to-code-part-one)

## May 2014 

May 06, 2014

### [Seattle.rb May 2014 Coding Challenge](/blog/2014/05/06/may-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](/blog/2014/05/06/may-coding-challenge)

## March 2014 

March 21, 2014

### [A World Without Assignment](/blog/2014/03/21/without-assignment-mwrc14)

Mountain West Ruby Conf 2014 Slides

[Read Article](/blog/2014/03/21/without-assignment-mwrc14)

## October 2013 

October 21, 2013

### [We're sorry, but something went wrong](/blog/2013/10/21/we-re-sorry-but-something-went-wrong)

Cascadia Ruby 2013 Slides

[Read Article](/blog/2013/10/21/we-re-sorry-but-something-went-wrong)

## September 2013 

September 20, 2013

### [Seeing the Big Picture (GoGaRuCo 13)](/blog/2013/09/20/gogaruco-13-slides)

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

[Read Article](/blog/2013/09/20/gogaruco-13-slides)

September 13, 2013

### [Seeing the Big Picture (Windy City Rails 2013)](/blog/2013/09/13/windy-city-13-slides)

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

[Read Article](/blog/2013/09/13/windy-city-13-slides)

## June 2013 

June 11, 2013

### [You Don't Need `assert_nothing_raised`](/blog/2013/06/11/assert-nothing-raised)

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

[Read Article](/blog/2013/06/11/assert-nothing-raised)

June 01, 2013

### [2.5 hours a week](/blog/2013/06/01/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](/blog/2013/06/01/2-5-hours-a-week)

## May 2013 

May 28, 2013

### [Run The Tests You Write](/blog/2013/05/28/run-the-tests-you-write)

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

[Read Article](/blog/2013/05/28/run-the-tests-you-write)

May 17, 2013

### [Write Tests](/blog/2013/05/17/write-tests)

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

[Read Article](/blog/2013/05/17/write-tests)

May 14, 2013

### [Effective Tests](/blog/2013/05/14/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](/blog/2013/05/14/effective-tests)

May 07, 2013

### [Testing Other People's Code](/blog/2013/05/07/testing-other-peoples-code)

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

[Read Article](/blog/2013/05/07/testing-other-peoples-code)

## April 2013 

April 04, 2013

### [A Testing Anti-Pattern Safari](/blog/2013/04/04/a-testing-anti-pattern-safari)

Slides from my Mountain West Ruby Conf 2013 presentation.

[Read Article](/blog/2013/04/04/a-testing-anti-pattern-safari)

## November 2012 

November 12, 2012

### [Gosu Makes Writing Games Easy](/blog/2012/11/12/gosu-makes-writing-games-easy)

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

[Read Article](/blog/2012/11/12/gosu-makes-writing-games-easy)

November 05, 2012

### [Write Code Everywhere](/blog/2012/11/05/code-everywhere)

Slides from my lightning talk

[Read Article](/blog/2012/11/05/code-everywhere)

November 02, 2012

### [factorial(21) and Mac System Ruby](/blog/2012/11/02/mac-system-ruby-broken)

fact(21) =\> -4249290049419214848

[Read Article](/blog/2012/11/02/mac-system-ruby-broken)

## September 2012 

September 26, 2012

### [Code Drives](/blog/2012/09/26/code-drives)

our lappies and us

[Read Article](/blog/2012/09/26/code-drives)

September 01, 2012

### [Pomodoro Technique and Vitamin-R](/blog/2012/09/01/pomodoro)

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

[Read Article](/blog/2012/09/01/pomodoro)

## August 2012 

August 02, 2012

### [A Taste of Prolog at Cascadia 2012](/blog/2012/08/02/prolog)

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

[Read Article](/blog/2012/08/02/prolog)

## April 2011 

April 26, 2011

### [The Graph Gem](/blog/2011/04/26/graph)

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

[Read Article](/blog/2011/04/26/graph)

## July 2010 

July 04, 2010

### [Namespaces, models, and rails associations](/blog/2010/07/04/namespaces)

I spent several hours banging my head against this.

[Read Article](/blog/2010/07/04/namespaces)
