Oh yeah and then I juggled beer glasses in exchange for waffles for me and friends. Being an odd hero once in a while is really a wonderfully fun thing. I'm kind of embarrassed to be so excited about this but it was quite the high point of my week.
So! This morning. 6AM, can't get back to sleep, and I'm excited, and I'm excited about work. Why? (hangovers are not usually exciting.) Here's why: because I've found a slightly smaller niche. Now, as Cal Newport of Study Hacks will tell you, being a generalist is difficult, not fun, and not worth it. Specialize, specialize, specialize; get an A+++ (or an "A*", not to be confused with the search algorithm) in one thing, not an A- in 5 things. If you're looking for an engineer to build you a user interface, you won't want a "software engineer" who can kinda do anything okay; you'll want a "UI engineer" who builds sweet user interfaces but doesn't have as much experience in backendy things.
Thus, I declare myself a UI engineer. Now, this is not because I'm looking to pump up my resume or look for another group or job (far from it!), but I think that by doing so, I can continue to focus in one direction instead of getting 5% knowledge of 20 different things. I'll get more expertise in that area, and get to the "I know how to do this" stage faster, which is really the goal here anyway.
Why did I not decide this before? I thought it wasn't legit. In school I was never drawn to robots or graphics or like finance or anything. So I went for AI/machine learning and then natural language processing, but it turns out math really doesn't turn me on either. I just like to make programs! That people can use! I was never convinced that that was a good answer, though. Everyone likes that, right? Well, I'm thinking now that "making programs for people to use" is exactly the Human-computer interaction/user interface engineering that has a whole master's program at CMU dedicated to it. That's pretty legit.
Also I think I was confused, or just afraid to jump in. If I work primarily on UI's, maybe I'll miss fun I could be having with ... data processing! Or database management, or production systems, or machine learning or stats or ... but I don't think it's likely. And maybe I do, maybe I change course. Life goes on.
Anyway, I think UI work fits with my other likings: I like to see the effect of what I do quickly, I like the value to be measured in "how slick it is", not "how many QPS it sends to which backend servers", and I like making something happen the first 10 times, not the next 999,990 times. (This may be heresy at Google. But hey, even The Goog needs people to put frontends on those megalithic MapReduces.)
And what if making sweet UI's isn't my passion? Read more Study Hacks; whether it's truly my passion doesn't matter. In fact, it's a nonsense question. There is no magic "passion" out there for me to find someday; there's only what I construct for myself. And it's also true that when I'm better at something, I enjoy it more. So that's my goal at work: get into UI work as much as possible, learn how to make it great, and become the Jeff Dean of UI engineering.
(any nudges/book recommendations/class ideas would be gladly accepted! note that I'm talking UI engineering, not UI design (...yet.))