A few weeks ago I had a really good interview with their technical recruiter, Glenn. Then he gave me a code test to do. He mentioned the Ruby one, but then corrected himself and gave me the URL to the Java one. Since I mentioned I like learning new things, I dug around and fiddled with the URL for the test to find the Ruby one and did both of them, with an email explaining it was my first ever Ruby code (it was). A while after sending them to him I got a response:
So, it looked good. I spent some time on the weekend putting together the job application document, getting it printed and signed and scanned back in.
Then Glenn arranged for me to do a pair programming type session with Alfredo on Monday for a few hours. We used Skype and its desktop sharing and voice. It wouldn't let us do both desktop sharing and video, however. That session went okay, not fantastic, but not yet a disaster and afterwards Glenn gave me positive feedback.
For Tuesday night he arranged an even longer session for me with Matt there. I felt that went even better for the two of us. And Matt sounded really positive when we got off the Skype thing.
In both sessions we did some refactoring of the code I wrote for the initial Java test and added a little new functionality. I guess I should've guessed, since in neither session did we ever finish the functionality we were adding. A lot of discussion about how to do it and in both cases we began with test cases and some refactoring to move out what looked like would be good interfaces, but never quite completed.
It was fun both times working with Alfredo and Matt. We laughed, swapped some stories about coding and platforms and weird things in tools and all that. I described some of how my project structures things and what-not. Both guys were pretty cool to work with.
A little while later I got an email from Glenn:
So that's sort of that... I feel like I put in an awful lot of effort on this one.
I suppose part of the problem was me. When it comes to the job hunt, I do manage to mess things up that would normally be easy. If one of my teammates asked me to do the same things with the code that Alfredo and Matt did, I'd probably jump up to the board, or a notebook and start scribbling just what to do and get it done quickly. But when I'm being tested for a job interview I'm nervous and I screw up easy things. I don't handle that context very well.
Another problem is I'm sure I wasn't at my best in the evenings after full work days. Caffeine probably wasn't a good substitute for being well rested and fresh.
Maybe I also let the friendly chit-chat get away from us. Not that we shouldn't have been friendly, but discipline... Maybe I should've tried to focus a little more on the tasks at hand and solving the problems put to me. Then again, that gets harder to do after a full work day as well.
The remote stuff added to the difficulty. It's not trivially easy to pair that way even with teammates I've known for a few years and worked in-person with, so with someone I don't know, I think communication that way was a little tougher and maybe we didn't pass information back and forth very well. Without video we couldn't even use our hands for body language while talking.
So, at this point, now that I have a better idea of where they're going with the code, and given how much time and effort I've put in already, it's probably worth it to spend a few hours this weekend updating the test code I sent them and just emailing it to Glenn with "here, I've done some of what Alfredo and Matt had me doing..." and see.
Not much to lose, and lots to gain if I'm successful.