Hacker's Diary
A rough account of what I did with Emacs recently.
- September 28
- Continuing to trundle through our series: Endeavour
season 7 was a bit of a let-down at the end. There's a balance to
be struck in your procedural crime drama between escapism and
verisimiltude; ideally, you want to tie up all the loose
ends, but you want to do so in a convincing fashion. This season
left a murder unaccounted for ("probably a copycat"), perpetrated
by someone whose last act seemed ... unconvincing as a murderer;
the actual murderer seemed to not fit, somehow; the whole psychic
undertone was either contradictory or true-and-stupid (this would
not be the first solidly realism-based detective drama I've
watched that felt the need to veer into the supernatural); Morse's
discovery that the locus of various murders spelled the killer's
name was frankly ludicrous. Really, this felt like it needed a
fourth episode, but they had one cut half-way through filming so
had to cram everything into the third to try and finish it up, and
even that charitable view doesn't account for all the disappointment.
ST:TNG: season 5 has just started on the "catch-up" channel,
meaning we'll be able to fill in the gaps in a week or two; we're
about halfway through season 7, in the meantime.
House: I think the whole "House gets challenged by a cop who's as
stubborn as he is" arc could have done with a smoother finish, and
House's subterfuge as revealed in the last minutes of episode
S3E11 was... unnecessary. Like, I was rooting for the cop to get
some sort of comeuppance - whether a crushing blow from the legal
system for harassment, or something medical that required House to
intervene - but equally I was rooting for House to come away with
some sort of lesson, since ~50 episodes in I think we've
clearly established that his character is a jerk and maybe now
it's time for some character growth, and not in the sense of "into
a bigger jerk".
Ho hum. I did read some good books, though. Linda Nagata's
centuries-spanning sci-fi is pretty damned compelling. Starts out
as life-extension technology (now; she wrote some prequels, I
think, to make this happen), winds up with people flitting around
the galaxy using technology that they don't understand to travel
at relativistic speeds.
- September 19
- 15 years ago today. I
get to swap my red badge for a purple one. The (somewhat) irony
being that I've not had to wear my badge since some time in March,
plus some of our internal systems have been showing a virtual
purple badge for about a week (one of my colleagues surmised that
the Code Which Decides is doing a blunt "divide by 365" and not
bothering to adjust for leap years). Anyway. It has been, and
continues to be, a wild ride.
How I got in:
- my previous employer had a bad turn of fortune and I was
made redundant, so I sent an email out to my circle of nerd
friends. I wasn't panicked because I was in a good position
financially. One of the talk.bizarre cabal (there is no cabal)
said that she'd heard from a friend at Amazon that Amazon would
be hiring in Dublin, and did I want to have my CV
forwarded. Sure, why not. A day later a recruitment agency got
in touch to ask if I'd like to be referred to Amazon and I
honestly took far too much pleasure in telling them I was
already in the pipeline (I had... issues with recruitment
agencies).
- I did three phonescreens: the first was basically a pop quiz
to determine whether or not I was a cabbage or an actual
person. The second and third, I can't distinguish, but one of
the two was a guy called Samir who grilled me on things
mentioned in my CV, and at the third or fourth point at which I
said, "I don't know", he asked me, "what do you
know?". This is exactly the sort of thing I'd coach people not
to do these days, but that's neither here nor there. Despite his
shredding, Samir apparently gave quite positive feedback. The
other thing I recall was being asked what my favourite scripting
language was, and having the sense that the guy asking was happy
to deal with whatever language I mentioned. That made an
impression: "these people are smart, and also want to give me a
chance to demonstrate my skills in comfort".
- I got the call for an in-house interview. There was a sev-1
(top severity incident) in progress when I arrived, and the
20-odd people in the office were engaged in a flurry of
activity, some of which involved calling details back and forth
to each other across the open-plan space. It was... awesome. And
whatever they were handling couldn't be seen by 99% of the
customer base. Possibly even 100%, if they were dealing with a
failure in redundancy (i.e. your backup system is offline). Ted
waved airily and suggested it was nothing to be bothered about
and I should focus on my interviews.
- I did no prep. None. Didn't know much, if anything about the
history of the company; had been a customer since 1999, but
that's about it. Hadn't really considered the specific
requirements of the job: as best I could tell, it was the same
job as I've always done - sysadmin with a side-order of software
dev, or software dev with a side-order of sysadmin.
- I can't remember the whole loop.
- Ted asked me how I'd build
the product image system. Coincidentally I'd found a writeup
where someone had reverse-engineered some of the real one by
fiddling with URL parameters; somewhat orthogonal to Ted's
question but had me thinking in the right direction. I also
enthusiastically described to Ted how I'd reverse-engineered
Sony's Network Walkman MP3 obfuscation. I don't know what this
was in response to, and some might say talking about
reverse-engineering in an interview with a multinational might
not be the smartest thing, but who knows.
- Tyson asked me... I have no idea. I remember being
impressed by his tattoos.
- Steph asked me to explain some technical thing. I blanked
because I couldn't think of something that struck the right
balance between "I can explain this in detail" and "I can
explain this in the time available". She eventually threw me a
lifeline and asked me to explain... email, I think. Steph's
interview was also memorable because she got visibly engaged and
excited about whatever I was enthusiastically talking about, and
objectively it's a gimmick to get someone to open up but
subjectively it just felt like telling someone a story and
having them really react to it in a positive way. Good job,
Steph!
- Richard A and Richard S: Richard A asked most of the
questions, I think, while Richard S sort of loomed in the
background. A little disconcerting. They asked me about handling
IP addresses with Perl. I naively dealt with them as 4-element
arrays and was doing silly string things. With appropriate
nudging I realised that the 4 elements were full bytes, i.e. the
entire range from 0-255 was used, so glomming them together into
a 32-bit integer would make certain manipulations
easier. (Duh. That's how they work in the real world. I did say
I did no prep. And I would encounter code years later that did
the String thing, but in Java.) Rich A told me afterwards that
he was kinda annoyed with me in the interview because he thought
I was sandbagging: he'd ask a question, I'd admit I didn't know
the answer but would have a go, and then the first thing I
guessed at would be bang on. All genuine, Rich, all
genuine.
- There must've been at least one other interview, but I can't
recall; someone must have talked to me about networking, so
maybe Brian, or Doug, or Michael. I think Donal took me out for
lunch, but I've no idea what we talked about. I do recall it was
a pub lunch down the street from the office.
- A few days after the interview, I got word that I'd have one
final interview to complete. I don't know if I was told up-front
that this was the bar-raiser interview, but since - see above -
no prep, that wouldn't have meant anything to me. I was told
Cyrus would phone me at, I think, 6pm on a Friday, and it would
be an hour long.
- Some time around six on Friday: the phone rang once,
disconnected, and that was it. I never found out what happened
there. What did happen was some followup to say Tom
would be interviewing me, but the date was undecided. So I went
off to the other side of the country for a few days.
- Phonecall on Tuedsay evening: Tom's talking to you on
Wednesday afternoon. Is that ok? Sure. So Wednesday morning was
a wild drive from Ballina to Dublin.
- I'd made the mistake of looking up who this Tom guy
was. Found a bunch of RFCs and, I think, a patent - not sure
about that. Kinda scared myself: this guy was a no-bullshit
technical wizard. I'd been given a handful of topics to brush up
on, one of which was TCP tuning, and to be honest it was the
only topic I'd really done any research into. And I was
fascinated by it, because I'd never looked into it before, and
it... hooked me. But that was one topic of four and I was gonna
get grilled. Yikes.
- The interview was ... terrible. Tom asked me a fairly
straightforward question about false positives - a simple stats
question. I got hung up on the fact that I'd seen the question
somewhere and couldn't remember "the trick", and got so stuck on
that that I couldn't reason it out from first principles. He
asked me to write some C to reverse a string, and I wrote it out
on the whiteboard; reversing the string in place so no need to
worry about memory allocation and, I explained, this approach
here means I don't accidentally reverse the string a second time
and thus return the original string unmodified. As I was
describing this I was writing the code - or had written the code
- which had exactly the flaw I had just talked about avoiding
and I didn't see it. There was some other awkwardness, and I
think I sort of took a notion that I had flubbed it, because I
remember noting that Tom had more or less stopped typing notes
on his laptop. Then he asked me something offhand about the
interview process, and I mentioned being given topics to brush
up on, and talked about how fascinated I was by the TCP tuning
stuff, and talked enthusiastically about why it
interested me, and Tom was rapidly typing on his laptop and in
the back of my head I remember thinking, "YES!"
- There followed... a lengthy wait. As I understand it - and
folding in what I now know about the company - the initial plan
for Dublin was that it would be a NOC to allow the first- and
second-line support (operators and SNOC) in Seattle to get some
sleep. Some combination of factors, one of which was Ted's
enthusiasm about the available talent pool in Dublin, altered
that plan to "let's build some datacentres and move our european
websites". This change, it seems, happened somewhere around the
time I was being interviewed, and either I wasn't going to be
hired initially because they'd filled the post with a better
candidate, or I was going to be hired, but the change in plan
caused a shuffling of the deck and all the resource planning had
to be redone and approved before they could go ahead. Either
way, I interviewed in, I think, May (I could look this up; I'm
too lazy) and finally got a call some time in August from
Christina to offer me the job (having harassed Ted on a regular
basis for updates in the intervening months). I remember her
describing the offer - salary, stock, signing bonus, health,
pension - and asking me if it was "ok". Negotiate? HELL NO. I
was blown away by the offer, and practically gibbered down the
phone, "YES YES YES!" The only negotiation I did in the end was
on the starting date: for whatever reason, I asked to push back
my start date to September 19th, 2005, my own personal DAY
ONE.
- September 11
- More fun with our TV provider:
me: "search for Endeavour"
tv: "ok! I found Endeavour"
me: "show me"
tv: "S1E1 is on next Saturday, and S7E1 is available on replay-tv."
me: "what about S7E2?"
tv: "nope!"
me: "ok, lemme check the TV guide."
guide: "S7E2 is on this Sunday"
me: "..."
tv: "no idea what it's talking about"
Note, the search function and the TV Guide are part of the same
piece of software. I've set it to season recording, but who knows
what that'll do.
I also discovered that the "remote recording" feature, whereby you
can use the provider's website to set recordings on your settop
box, doesn't notice if you subsequently delete the recording from
the settop box, and doesn't list anything you're recording that
wasn't booked through the settop box. Cunning.
- September 9
- Star Trek: TNG: Season 4 complete.
- September 8
- Since several office tools support Markdown,
I'm finally sufficiently familiar with the basics that I've
started using it for scratch-building HTML pages. I'm using Python-Markdown
which has some nice extensions (like arbitrary attributes, and
tables), but I've not actually looked at the HTML it outputs yet
to see how clean it is.
- September 1
- So we chugged through most of ST:TNG Season 6 without losing an
episode, and rolled over to season 7, and just because I stopped
paying attention our beloved service provider decided to
do whatever they do that makes Season Recording stop recognising
that you've enabled it for, you know, a season, so we
lost a few of Season 7. On the plus side, the "sweeper" channel is
just picking up the hole in season 4 from when we had to replace
the digibox.
We pay for this wonderful service, you know.
previous month | current month| next month
Waider
What month is it anyway?