---
title: Apprentice.io Three Week Retrospective
teaser:
tags: apprenticeship
author: Luke Griffiths
published_on: 2012-01-24
---

Over the past three weeks I've begun my apprenticeship at thoughtbot. The
apprenticeship lasts until the end of March. I'm joined by designers Paul Webb
and Edwin Morris, and fellow coder apprentice Alex Patriquin. Each of us is
assigned to a mentor, who makes sure we absorb as much as possible of the
thoughtbot way of doing things and achieve our specific goals. For me, the
apprenticeship is a couple of things: it's a chance to work in coder nirvana
(TDD, heavy refactoring, bookshelf full of great literature, 5-minute meetings,
pair programming, investment days, open source - the works), and it's a chance
to vastly increase my Rails skills in a bootcamp-style training environment.

My head is swimming with new knowledge. I entered this state the first day, and
I've been there constantly for the past three weeks. Each evening I ride the T
home with my poor neurons about to burst with new activity. At night while I
sleep my brain indexes all this new knowledge, and the next day I dive in again.
If you've ever read Ender's Game, it's sort of like Battle School for Geeks.

Let's get specific. This list is long because I've been truly busy. In the past
three weeks I have:

* Mercilessly refactored my code two, three, even four times after writing it.
  The standards for code quality here are very, very high.
* Learned to use GitHub pull requests for code review.
* Responded to around 150 code review comments, most of which made me stop and
  rethink coding habits I've held unconsciously for years. My style is improving
  fast.
* Participated daily in a morning company-wide standup that actually takes less
  than five minutes, and a team standup that takes another five. That's only ten
  minutes of meetings per day!
* Switched to using higher-level cucumber tests involving steps like "When I
  sign up as a new user" as opposed to "When I click the link marked 'foo'".
* Achieved and maintained 100% perfect <abbr title="Test Driven
  Development">TDD</abbr> discipline - not writing a single line of feature code
  until a failing test is present.
* Completely switched text editors, from Textmate to Vim.
* Became _faster_ in vim than I ever was in Textmate.
* Written custom functions for vim.
* Learned other new tools including [Homebrew](http://brew.sh/ "Homebrew"),
  [ack](http://betterthangrep.com/ "ack"), [ctags](http://ctags.sourceforge.net/
  "ctags"), [New Relic](http://newrelic.com/ "New Relic"),
  [KISSmetrics](http://www.kissmetrics.com/ "KISSmetrics"), and
  [kumade](https://github.com/thoughtbot/kumade "kumade").
* Forked [thoughtbot's dotfiles repo](http://github.com/thoughtbot/dotfiles) and
  started customizing it as my personal dev environment. The dotfiles repo
  contains bashrc, vimrc, git-config, alises, etc - I can now install it to any
  computer I use to instantly have my customized dev environment in place.
* Watched an app's user base jump from 100 to 10,000 in a matter of minutes as
  an article hit TechCrunch.
* Gotten a crash-course in startup funding from the other coding apprentice,
  Alex Patriquin, who boasts, quite accurately, of knowing everybody.
* Participated in discussions about new features in rails.
* Made my [very first
  contribution](https://github.com/thoughtbot/paperclip/compare/201f02e324...65e0338f3ed07ddf95958ce71265a0ba76e9c1c6)
  to an open source repo.
* Been approved to give my first professional presentation - a lightning talk at
  at Boston.rb meeting.
* Consumed 3,000 cups of green tea and a foie gras taco.

Did I mention I've been busy? That's just the first three weeks - and I've got
ten weeks left. I feel excited, involved, and challenged in a completely
invigorating way. The team here is universally smart and helpful, and while I'm
here I simply can't help but get better by osmosis at what I do. This is the
most fun I've had in an office in a long time.

For more information about this program, and to sign up to sponsor a pool of
apprentices, visit [apprentice.io](https://www.apprentice.io/)

More later on,
