dtm: (Default)
Yeah, yeah, haven't posted in ages, etc.

As those few of you who still have me on your friends' lists probably know, I work for Google.

As the rest of you may know, Google's a fantastic employer and many, many more people than we can hire want to work here. In fact, many more people with good resumes want in than would be practical to interview in person. Hence the phone screen, wherein a Google engineer calls you up and assesses whether you should be brought in for an interview.

I do about one phone screen/week, on average.

Sometimes my interviewees manage to seriously annoy me. As a public service, here's how to avoid doing that. Note that many interviewees who did not annoy me still didn't end up with in-person interviews, but that no one who did annoy me did. This is basically a guide for how to avoid totally bombing - if you want a guide for how to actually succeed at a Google interview, look elsewhere.

This applies only to people being interviewed for a technical position (i.e., Software Engineer or Site Reliability Engineer). Not knowing everything on this list does not make you a bad person, nor will I be pissed off at meeting you if you don't know everything on this list. It does mean, though, that you are not ready to phone screen at google for an SWE position.
Cut for friends pages )
dtm: (Default)
I've been meaning to post this for a while, several months in fact, but I haven't. However, just this morning I discovered Scalzi's Law, and it seemed like a sign.

This is a reconstruction of a conversation I had at Google. It was had in 5-minute chunks over breakfast, over the course of several weeks, and has mostly died down now. I'll try to reconstruct it, but may miss some important bits since I wasn't writing it down at the time. In particular, I may well attribute important bits of the conversation to the wrong person. As background, Google provides us with breakfast if we're there early enough, but only two of us in my group ever are:

me: (looking at D's plate) You're going to regret that.
D: What? ... Oh (unpleasant face)
me: Yeah. The turkey bacon just isn't bacon.
D: The turkey sausage is fine, though.
me: Oh yeah, that's fine. Turkey's a fine meat, and they do make great sausage out of it; it just doesn't make good bacon.
D: (holding up the plate) It's not turkey bacon today.
me: Yeah, this is good.
D: Another day of the adjective-free bacon.
me: yeah, but I can't believe you tried that vegan sausage.
D: Oh, it looked so incredibly wrong I just couldn't pass it up. (tries) Oh bleah! The turkey bacon is disappointing, but that's just wrong. I guess I deserved that.
It gets weirder )
dtm: (Default)
So, I don't want to really jinx anything by celebrating prematurely, but one of the things that was happening in June is that a long process was begun that appears now to be headed toward a successful conclusion.

Long story short? I'm not this guy any more.

More details as I can share them later.

Update: Post unlocked.

I got the emailed pdf of the offer letter, and barring something truly bizarre am going to take it. I'll be working for Google in New York.
dtm: (Default)
So today I got an email message on my work account titled "FW: EAP Support: Coping with Tragedy at Virginia Tech" and with the text:
Our EAP provider, Horizon Health, has provided the attached articles to help support us in the aftermath of the incident at Virginia Tech.
(with an attached word document I haven't opened yet)

Now, the shootings at VT were awful, and surely traumatic for those who witnessed them or knew one of the victims. And yes, they will eventually lead to a national dialogue about how our society approaches guns and mental illness. (though probably not much serious discussion about the visible have/have-not divide at some undergraduate institutions)

And for those directly affected, psychological counseling and support is now vital. However, that kind of support isn't going to come from a brochure. Presumably, then, this brochure is directed at the rest of us, who need something after 30 college students are killed in Virginia but are expected to take news like this completely in stride:
April 18 (Bloomberg) -- Car bombings in Baghdad killed at least 166 people in the worst violence in the capital since the U.S. military began a troop ``surge'' two months ago aimed at ending attacks.
Or this: (from over the weekend)
Two months into the U.S.-led Baghdad Security Plan, at least 289 people were killed and injured across Iraq on Saturday, including 36 dead in a car bomb attack in the holy Shiite city of Karbala. The carnage of a crowd teeming with women and children set off an angry mob of hundreds against the governor and police.
Or this: (from April 7th)
McCloud was the 105th homicide victim this year in Philadelphia, where the death toll is outpacing last year's by about 20 percent.
You'll forgive me if I don't receive this emailed brochure as convincing evidence that our corporate-contracted Employee Assistance Program really truly cares.
dtm: (Default)
I call this a parable because although I'm sure that there's a lesson to be learned from this, I'm not quite sure what it is. I do have certain points in this story that feel important, and I've labeled those as "parable events". As I said, though, I leave the conclusions to the reader.

My employer (call them "company E") has over the past year tightened up the corporate network, including restricting outgoing connections to nothing other than ftp and web browsing.

The TCP-literate will wonder if I actually mean is that company E is restricting outgoing connections to ports 20, 21, 80, and 443. In fact, that's exactly what I mean. Connections to those port numbers are allowed and others are not. In theory, one can submit tech. requests to network engineering if there is a business reason to allow some other type of access to a certain location.
Read more... )
dtm: (Default)
About the whole Google disappointment, because I found this hillarious:

Working for Google
dtm: (Default)
Or, poke yourself, or something. Whatever's appropriate.

I've got a big huge problem to solve at work and I'd like to look up what's in the literature on solving problems like it, but I'm sufficiently distant from academic computer science that I don't know what the term is for this type of problem or where to begin.

Or, as [livejournal.com profile] mizkit said, “Help me LJ-wan Kenobi! You're my only hope!

The problem description )
dtm: (Default)
So the "interesting news" mentioned in my previous entry is that I was at the time doing the interviewing and recruiting dance with Google. I heard the final word from them yesterday, and they aren't going to offer me a job. I may post some more detail later about the interview process (the non-technical details. The technical details are covered by an NDA), but not tonight. It seems that at this point I have a few choices of how to deal with the upset from being told "you don't have what we need":
  • Screw them, screw the recruiter who contacted me out of the blue, screw it all. Throw a temper-tantrum.
  • Ponder the inadequate nature of me, and get (more) depressed.
  • Forget it all, and try to just go on like they never talked to me in the first place.
  • Try to come up with a list of what they didn't like about me, and see if I can figure out how to improve those areas
  • Same as above, but set as a specific goal re-applying to Google in a year. (Though this time, I'd limit myself to the NYC office, given how [livejournal.com profile] jmartin2 greeted the prospect of a move)
Obviously, I'd like to be able to embark on one of those last two options. So what, from Google's point of view, are my weaknesses?

Help me get better )
dtm: (Default)
Me, Friday, to QA guy half-way across the world: (bracket bits are translations; bold is just for this post)
Note that if you wish to [run only part of our product for testing purposes], you can run [program] with the switch -loader-only, which will cause it to [do only part of the work]. There's also [some other stuff useful for testing]
QA guy back to us today:
[Recalling context of phone call where he talked about how it wasn't working]
Could I also check whether the following commands are correct to [do testing-type things].
To [do some testing thing]:
[program] -loder -only [other arguments]
Ouch. What's worse is that the output from our program when you give it unrecognized options is a usage message that lists each option it accepts.

If I'd said this on the phone, I suppose I could understand, but this was in email...
dtm: (Default)
As I may have mentioned here before, I work from home four days out of five. Recently, everyone in the office was forced to switch email programs to Outlook because we're now using the corporate Outlook server.

Now, this morning at around 9:15, the office network went down, which naturally meant I was kicked off VPN. Because I'm using Outlook and was composing a message when the network went down:
  1. I can't finish and send my message, and have it just sitting in the outbox until the network comes back up.
  2. I can't access any email that was stored on the server, though I can still see all the subject lines and who sent stuff to me.
  3. Every now and then while I was typing the rest of my message Outlook would freeze for a couple of seconds as it desperately tried to communicate with home base.
Now, if I am disconnected from the network when I start Outlook, I can choose to work offline. However, when I do that (stopping and restarting Outlook), I no longer have any email sent after about 2pm yesterday. Specifically, I don't have the message I was replying to when the network went down nor do I have my partially typed response. (Oh, I still have the text, cut and pasted into Notepad, but it's pointless without what I was responding too) This despite the fact that Outlook supposedly did a synchronization this morning at 8, unless the "Send/Receive" button and messages in the status bar about "Synchronizing..." mean something different from what they should.

Life was much better when all email was on the local IMAP server and those of us who wanted to used Mozilla. Disconnected operation just plain worked. Why oh why are "enterprise" solutions so fragile?
dtm: (Default)

Along with cutesy backgrounds (which I mentioned yesterday), another thing which should not appear in business email is "u" for "you", as in:

btw, the development group had moved a static snapshot of the XYZ into
our CVS so they use
it and work with it without impacting others about a month ago.

The CVS module name to check out is "xyz" or u can view/get a tar ball
at http://blah.blah.blah/viewcvs/zarchive/xyz/.

dtm: (Default)
You know, so long as we are forced to use Outlook because it's a company-wide standard and somehow more professional than using "random" open source programs such as Thunderbird or Mozilla Mail, there should be some company-wide standard on how it is unprofessional to send out business email with textured backgrounds and with one's signature in curly, difficult-to-read fonts.

That is, stupid stuff like this vacation notice shouldn't happen. Now I'm not sure how you make it not happen without turning the corporate culture into something that obsessively enforces pointless rules, but there should be a way to express social disapproval of extraneous cutesyness.
dtm: (Default)
So I've been trying to get together a livejournal entry for the past few days and failing because of one thing or another. However, I doubt anyone cares to read about my difficulties journaling nor do I care to write about them, so we'll just accept as a given that it's been a long time and move on.

I'll post a second entry all about Katherine, but for now let me just say that most new things at this point are slow, incremental improvements and not milestone events like walking on her own. (though she has shown that she can climb the stairs on her own) I'm sure that there are a bunch of cute kid stories going on, but I don't know what they are - for transcribable stories, it really helps to have a child who can talk, and we're not quite there yet.

Work has been a bit busy and frantic lately - I get the impression that my immediate manager and my uber-boss are trying to highlight our group as doing good work to the rest of the company because of changes at work. (Currently on the front page of finance.yahoo.com - one version of the article for people looking at it after it disappears from the front page) So there's that.

And while work has been interesting, there haven't been huge technical challenges that would be worth journaling about (and even if there were, I might have to keep quiet about them). The technologies I've been working with aren't particularly sexy - after all, my main job involves shoveling data from one place to another - though I'm now shoving it into an Oracle database in addition to shoving it into our proprietary time-series database. (And soon into MySQL)

However, work has recently involved some "interesting" social challenges which I have heard about before but not experienced quite so intensely. The basic story is that our group was asked to provide something that was somewhat poorly spec'ed, delivered it, and then everything went to heck. The people we were sending this to were saying "this wasn't what we asked for", when in fact what they'd asked for wasn't spec.ed, they were complaining that we hadn't read their internal documentation on how the internals of their system worked - which is true, because we really didn't care. (At least, I didn't) We thought our job was simply to move data from point A to point B. Well, it's actually to move from point A to point B and along the way twist the data model sideways a bit and add some unique identifiers and obey a bizarre naming convention.

So now basically the entire project is getting done during the cleanup phase, and it's all highly ugly. Maybe, just maybe, we'll get this wrapped up soon. Then we get to do the next iteration of this project, which hopefully will go better. We'll see. I also at this point am stuck in the "document, package, and cleanup" phase. I hate this part of a project.
dtm: (Default)
Okay, so let's say that your job includes testing a new way of doing daily job FOO, and in order to test it, you're running the new FOO procedure on a test box nightly and comparing the results against the results of FOO running in production.

Now, suppose that after a month of this, every day matches up except for two days that show wildly different results.

Now, in reporting this to a developer who has to pour through detailed dumps of data files in order to figure out what happened, would you also report that those two days were the only two days you had to re-run the test FOO process because you'd typoed a password halfway through the test process, or would you leave that as a surprise for the developer to discover on his own?

In actuality, this isn't quite the scenario I just finished tracing through. In fact, the test FOO job had been restarted on three different days, but on one of those days the tester had properly restored the database before restarting the job. Also, I don't know the exact causes for failure - it could be a typo'ed password, could be a disk ran out of space, could be anything. The lack of notice about these restarts, though, is completely accurate.
dtm: (Default)
May I just say that I find tracking my time the most painful part of my job, far more painful than, say, writing documentation?

I've been trying to figure out why. I was reminded that when I was at Carleton I had to fill out time sheets for my campus job there, but I don't remember the experience: this leads me to believe that the experience was not painful as this time tracking is now. I don't know what causes the difference, but my guess is that I cannot simply state the start and end times and say "I was at work during this time". Because, of course, that's not what they want now: they want to know which tasks I worked on, and for exactly how long, and any down time between tasks needs to get shoved under the rug. (Because, you know, they aren't paying you to surf the web)

Yes, I know I'm using the conspiracy-theorist's "they". I don't care.

Plus, as I mentioned before, the UI I now have to track my time is itself extra painful. I'm certain that can't help.
dtm: (Default)
One of the things about my job I truly loathe (and really, I have a pretty good job, all-in-all) is tracking my time.

Until now, we've used time tracking software from a company called Journyx, and it's been annoying, because among other things:
  • I have to enter my time at all. This is really the biggest hassle, since I don't remember to do it and later have no idea what I spent my time on a week ago.
  • I could only enter five different activites before having to send the page back to the webserver and wait 30 seconds or so.
  • The categories for time spent were in a menu tree and it was sometimes difficult to figure out what category a given activity fit into. Also, the javascript-based menu tree was a little bit clumsy to work with (if you accidentally chose the wrong branch, you had to drill down to a leaf before you could go back up).
Well, now we've been ordered to switch to a new, home-grown time tracking system. Naturally, they took everything bad about using Journyx and made it worse:
  • I have to enter my time, and now it's a higher level of management that the "you must enter your time" directive comes from. (and therefore harder to ignore) I think it has something to do with Sarbanes-Oxley.
  • I have to fire up internet explorer in order to do it, even though I do all my regular browser stuff in Mozilla. Journyx was cross-browser.
  • I can only enter one task at a time before sending the page back to the server. On the plus side, I only have to wait 5 seconds or so, unless I'm modifying a task I already entered, in which case I get to wait 30 seconds again. We'll see how this changes as the system experiences more load.
  • The categories have been flattened into one humoungous drop-down list. The multiple levels are taken care of by concatenating the name, but since that would make things too long, EVYTHGS-BN-ABRVD.
  • Each task I enter only covers an amount of time on one day. In Journyx, I could enter a task and then say "I spent 6 hours on this on Monday, 2 on Tuesday, and 2 on Thursday."
I really hate administrative details. If they had an interface where I could just type in what I'd done for a week (let me use the keyboard and not just point-and-click through a scroll box three pages tall) and let the software sort it out, it might be tolerable, but this stuff is just extra pain.

Update: And an hour after the new system is announced, the load of everyone logging in to enter their time for yesterday and today has crashed the system. (the announcement sent today read in part "I need everyone (who has been entering time into JournyX) to start to enter their time into TCS as of February 1st")
dtm: (Default)
You know, when I get called to fix a production problem in the middle of the night, I should really then take several hours off the next morning. Say, 2 hours for each hour I have to be functioning beyond midnight.
dtm: (Default)
Occasionally, my boss will interview people for a somewhat technical job. Often, these people will claim to be able to program, and she has a standard "bare minimum programming competency" question:

In the language of your choice, write a function that accepts a two-dimensional array of floating-point numbers and returns the smallest value in the array.

This should be something that can be done without any thought by anyone claiming to be a programmer, right? I'd never understood how people could come to an interview for a programming position, degree in hand, and fail this test. Now I understand. It's a bit reassuring to know that math departments aren't the only ones who have to deal with flagrantly unethical undergrads.

Update: it appears that this auction has been made private. Basically, it was a request for a full worked-out, ready-to-turn-in homework assignment. (Google even supplied me with the name of the course book the assignment was taken from and a little hunting with the exact page number)
dtm: (Default)
So imagine you administer a health insurance plan for a mid-sized company. Now imagine that, as with most things in the corporate world, you need to do some belt-tightening because the rise in health care costs has outstripped the (possibly nonexistent) rise in the amount of money going into the insurance plan. After some consultant time, you decide that the appropriate step is to raise the copays on office visits and prescription drugs.

Now, as these copay rates are printed on the health insurance cards every participant carries, do you:
  1. Announce the new rates, but say that they will be effective at some future date so as to give time to print and distribute new cards
  2. Announce the new rates, effective immediately, and send sheets of sticky labels to each office which participants would use to amend their cards
  3. Same as above, but without the labels; state in the announcement that the new cards and benefit documents will arrive "within a few weeks"
  4. Same as above, except that the rates are effective as of March 1st, and the announcement is sent out at 5pm March 6th.

Which one of these options was chosen by the administrator of my company's health plan is left as an exercise for the reader.
dtm: (Default)
So I was all excited about moving my desktop machine at work over to linux: tech support had said they'd support it, I had gotten the relevant information about using clearcase with linux, and I had resigned myself to sqsh running over freetds instead of RapidSQL. Most of my development is already done either inside Xemacs or eclipse, and almost all the debugging is done on various local Solaris boxes that just use my desktop machine as an X11 server. With abiword or openoffice for the occasional word documents, I was all set. (yeah, not having a RapidSQL replacement was going to be minorly painful, especially without a linux version of defncopy, but I decided I could deal with that) So far so good.

However, when I proposed this to my boss, she asked me: "What does this get you? It probably means no work from you for three days, so why would I approve this?"

And I didn't really have an answer. The much-maligned BSOD has hit me all of once since I started working here 2.5 years ago; that's not a reason. I haven't ever had to do script-like things on my own machine that cygwin or ActivePerl couldn't handle.

So what compelling advantage have I forgotten about that makes it worth the time sink (and subsequent minor annoyances as stuff doesn't work)? Keep in mind that the cost savings of avoiding the Windows tax is not something the company will ever see because of how we pay our licensing.

I used several trademarks in this post; they are all owned by their respective owners, and I claim no affiliation of any sort with either the products or the owners.
Page generated Sep. 19th, 2017 06:53 pm
Powered by Dreamwidth Studios