flwyd: (spiral stone)
Hey kids, it's time once again for the shower meme! [livejournal.com profile] vvvexation asked me the following five questions. If you'd like me to ask you five questions that you'll then post (soliciting interviewees as well), leave a comment on this post.
1. What's your favorite Hitchcock film?
Alfred Hitchcock has an impressive résumé of outstanding films, but Rear Window is my favorite. Like many of his films, it's got great acting, psychological inquiry, shot composition, and suspense building. Rear Window goes beyond the others as a technical masterpiece of storytelling and storyboarding, setting the entire movie in a single room, focused through the titular rear window into an apartment courtyard. While North By Northwest, Psycho, Vertigo, and The Birds are more typically Hitchcockian, I smile the most when I think back to Rear Window.
2. What programming language are you digging the most these days?
I like to say that my favorite programming language is the one that's best suited to the task at hand. I really like Ruby's way of thinking, mixing Perl convenience with Smalltalk object orientation, functional programming encouragement, and enough ninjutsu to make execution painless... or very painful. I've felt a bit let down in Ruby's API offerings on topics that aren't related to Rails; things I want to build on seem half baked.

I really wanted to like Scala, but the "tutorial" I read spent a lot more time showing off cool programming modalities and not enough time showing the reader how to do basic stuff like manipulate collections. So when I encountered the section on right-associative operators and list folding, I stomped off in a huff. I suspect this is more a problem with the documentation than the language itself, so I'm willing to give it another try at some point.

I like some ideas in Google's new Go language. I'm interested to see what folks start doing with that. I'm also interested in Haskell, but its syntax is obtuse to the untrained eye. I'd like to go on a few dates with it and see if we're compatible.

3. What species of animal would you modify, given the chance?
What sort of modifications are we talking about? I like to modify chickens by removing parts of their carcass and subjecting them to heat...

Assuming you mean changes to a species' core DNA, I'd like to debug a few human body problems. For one, our backs are pretty fragile, especially when we do a lot of sitting. For another, some of our social instincts are better suited to small groups and tribes and show flaws in urban settings.

It would also be nice to modify certain types of mosquitoes so they don't act as vectors for malaria. While we're at it, we might want to tweak some megafauna to adapt to human-introduced environment change, though I'm not sure what changes you could make to an elephant to survive habitat and food source loss and still call it an elephant.

4. What would you miss most if you moved away from Boulder?
It would probably depend on where I moved. If I moved to San Francisco, there would still be plenty of smart and creative people. If I moved to Norway, there'd still be plenty of mountainous outdoor activity. If I moved to New Mexico there'd still be plenty of sun and nice weather. If I moved to Hong Kong, there'd still be plenty of interesting world cuisine.

What I missed about Boulder when I was living in the Denver suburbs was bikeability. I learned that I'm not very good at motivating myself for recreational bike rides, but when I can ride across town in half an hour, I'm a lot more liable to hop on a bike than drive my car. Plus, there's a weekly excuse to ride around town and bring smiles to peoples' faces. I also missed the college town/intellectual atmosphere. In college, I would plan my semester's social calendar around the International Film Series on campus, but in the past five years I've watched very few movies. So I'm excited to be back around IFS, CWA, and people who work for CU, NCAR, NIST, and other exciting abbreviated entities.

5. If you were asked to design a monument, what would it look like and who or what would it be a monument to?
The most powerful monument I've ever visited is the temple at Burning Man. It combines beautiful craftwork with powerful statements to build a place which simultaneously provides solitude and community and supports grief and joy. It's typically focused on people who have passed from this life, but it's open enough to allow all kinds of release.

I think it would be interesting to apply the same sense of beauty and community involvement to a living monument of changed places. With a key theme of natural areas destroyed by human development, it could feature maps, images, stories, and facts about the way parts of the world used to be and how they're changing today. Participants could add their own memories of visiting a place and stories passed down when their grandparents moved from the old country. People could expand the idea of changed places to talk about the culture of their old neighborhood, the house they grew up in, and BBSes back in the good ol' days of online communication.

I think such a monument should have an interactive component shared over the Internet. People who can't attend in person can submit their stories and pictures. Periodically, someone would create a video tour, exploring some of the many contributions. People could contribute their stories in audio and video, adding oral history to visual and architectural homages.

You can read my previous answers to shower meme interviews. You can participate by requesting five questions in the comments to this entry.

flwyd: (java logo)
I spent over five hours interviewing at Google's Boulder office yesterday. My visit came about a month after I submitted my résumé, via a connection who referred me, to Google's famously challenging hiring process. Before I arrived at Google's office, I'd had my résumé selected from a large pool (which is probably full of bad programmers), had a non-technical interview with a recruiter about background and goals, and aced a technical phone interview. A large majority of candidates are eliminated at each step (possibly excluding the non-technical interview), so before my on-site interview, I already knew I was in the top few percent of people who apply to Google.


In the week or two leading up to the interview, I alternated between a Zen-like state of confidence ("I've gotten this far, so I'm good; my whiteboard flow is tight") to fears of gross incompetence ("It's been over a third of my life since I've taken a calculus class and have forgotten how to add infinite sums! I can't remember any non-search graph theory algorithms!"). All my college notes and textbooks are in an inaccessible corner of a storage unit in Lakewood, but fortunately Wikipedia has plenty of reference material, usually at least as clear as CLRS. Looking through TopCoder problems, remembering ACM problems, poking around related websites, and finding blog posts, I felt like I could work through a solution to most. I worked through some dynamic programming problems to make sure I could recognize when the technique was appropriate and how to step through it. I dug into the implementation of some sorting algorithms, several types of trees and heaps, discovering the Cartesian tree, my new favorite hammer. I read a bunch of stuff about graph theory, realizing I need to read a good non-academic book on the subject, preferably one that aims to build spatial intuitions along with algorithmic reasoning. I made sure formulæ for combinations and permutations were in working memory and that design patterns, scheduling, and java.{lang,util,util.concurrent} were in at least L3 cache. I didn't follow Stevey's advice to do practice interviews, but I gave enough interviews at my previous job to be comfortable writing code without compiler or IDE.


So, how did my Google interview go? It started with a really easy Java question. Some people tend to get insulted at this step, but I know that an amazing number of people get to in-person technical interviews and somehow can't actually write code in their favorite language. I then implemented a method to see if all the numbers in one sorted list were in the other. Pretty simple stuff, but it's easy to go astray. My interviewer initially thought there was a problem in my code (probably a spot many people goof up), but I'd thought of the case and dealt with it. I noted that if I handled that section of the code a little different, I could get rid of some duplicate code I'd originally noted was ugly but functional.

Other coding problems included determining if a word could be spelled from a set of letters, making a deep copy of a graph with loops, implementing an LRU cache, finding an individual who satisfies an inverse relationship with every other individual, and writing a unit test for a simple function of a double. I had a "thinko" on the graph copying problem and didn't notice it when I traced through the code, but as soon as my interviewer pointed it out, I quickly reworked the function to handle the issue. I floundered around on the LRU cache because I've spent so much time thinking about collections and data as separate concepts that I forgot that any type of object can be a linked list node.

My weakest interview of the day was probably the last, with a focus on OO design and type hierarchies. The interviewer asked me to talk about some good OO design I did, so I started working through the object model for one of the big projects I worked on. I didn't realize he was mainly looking for object hierarchies rather than object relations, and after a little while I realized this wasn't a good example. I shifted to another project which I put a lot of design work into, but like most of our code at my last job, the inheritance hierarchy was pretty flat, with lots of abstract factories. The interviewer proposed a problem domain and I worked through a possible object model. Like I usually do at initial design stages, I was thinking in terms of types and data responsibilities rather than (Java) classes and interfaces, and it seemed like he didn't like that I was characterizing some things as fields. Hopefully I showed an ability to explore variations on modeling after a day of talking and thinking after a night of nervous bouts of sleep and wakefulness.

Google Boulder

I finished almost every interview section with time to ask questions of the interviewer, which made me feel like I wasn't failing too badly. I got some helpful opinions about the development environment (every line of code given a formal review before it enters the massive Google source repository), the company structure (the HR management tree is not identical to the technical decision tree and both have bottom-up flow), surprises about Google (a couple guys were impressed with how well Google worked as a large organization and how well they could collaborate with other offices). At lunch, the site manager for the Boulder office showed me around, talked about what goes on at the office (mostly apps and SketchUp, but with plenty of folks working on other stuff), and gave me an opportunity to ask a lot of questions. The Boulder office is tiny compared to the Googleplex (though it's a little bigger than the last office I worked in). They don't have high tech toilets, but there were magazines in the stall and reminders about build system usage posted above the urinals. The reception area has two big screens, one with a live sample of Google queries (quite a few were in Spanish and Portuguese) and one with a movie loop of Google Earth visiting some neat-looking locations. The most obvious thing you see if you peer in the building's doors is a rock climbing wall. The room also has (IIRC) ping pong, foosball, and pool tables, a Rock Band station, a multi-arcade machine, and some comfy chairs that probably did automatic massage. From the cafeteria (free snacks and catered lunch every day) you can look down into this play area while eating solo or sit with a bunch of friends at tables with Google-colored chairs. Most people work in "pods," open 4- or 8-person cubicle-like structures designed for easy collaboration. I like this kind of setup (at my last office, most of the software engineers removed at least one cube wall), especially with good noise-cancelling headphones, but it's not for everybody. The interview invite said "Leave your suit at home, Google is business casual." Since it was the Friday before Halloween, I was tempted to come dressed as a pirate ("Let's call this variable 'r'!"), but figured a brightly-colored winter hat would be a good compromise. I was glad to see at least half the office was in the spirit, including a couple (who had their baby with them) dressed as Skywalker/Leia and a guy whose costume involved not wearing a shirt (I disturbed some coworkers one halloween with my shirtless satyr costume in a standup meeting). One of my interviewers was dressed as a caveman, but he excused himself by saying he was filling in for someone who was sick that day.


An interview is an opportunity for the company to evaluate you and for you to evaluate the company. In the latter case, Google definitely succeeds. I like their approach to software development, I like their famously outside-the-box company structure, I like the office environment. (I let the recruiter know I'm interested in both Boulder and Mountain View; I haven't visited the fabled Googleplex.) In the former case, I think I have an outside chance. The site manager didn't know precise numbers when I asked what percentage of people get hired after an on-site interview. He said it was less than 50% and more than 1%, and said 15% sounded like it was in the ballpark. I know I didn't have a perfect performance, but I did a lot of things right and recovered fairly gracefully from errors. I definitely did better than 85% of people I've interviewed, but I suspect Google's earlier filters are a lot tighter. The guys who interviewed me yesterday will send their notes (including exact copies of the code I wrote) and a rating to a hiring committee. That group will talk things over and make a decision; the longer I don't hear back the better my chances (on the principle that it's easier to identify someone who really sucks from someone who's really good).

It's important to remember that not everyone who's qualified to work at Google get a job offer at Google, which means that if I don't get hired, I can't conclude that I'm "not good enough." The mistakes I made (which would not be present if I'd been asked other random questions) might lead to enough lower marks that don't pass the bar. They might also decide that given the desire to hire X people and Y people worth hiring, I'm not one of the best X in Y. Blog comments are full of people who think the following is sound logic: "(1) I am an AWESOME programmar! (2) There's no way I could get through Google's interview process! (3) Therefore, Google's interview process sucks! (4) Google's been successful up 'til now, but they're going to fail! (5, optional) They've got too many smart single young guys who work hard, that's the problem!" or "You didn't get hired by Google? That's because you're too good for Google! [And, one assumes, better than all these folks.]" Contrary to the haters, most of the people I interviewed with looked to be over 35 and (I'm pretty sure) some have kids. Interviewers might naturally tend to be older and more experienced, but I didn't sense a monocultureculture stereotypical hot shot 20-something computer nerds. (There was a pretty high male-to-female ratio, but that's a problem much larger than Google.) Also contrary to the haters, if I don't get hired it's probably because I messed up, not because Google messed up. And hey, if I don't make it, I can always try again in a year or two with more experience and insight under my belt.
flwyd: (Trevor baby stare)
Cleaning out my inbox, I remembered [livejournal.com profile] clarsa had asked me five questions a couple months ago. In case you're new, the shower meme involves answering questions. Readers can then leave a comment and ask for five questions from me, which you'll answer in your journal with an equivalent offer for interviews.
1) If it were possible to make a tv show of your inner life, what would the target demographic be for your advertising sponsors?
A TV show about my inner life would be made possible by viewers like you.
2) If you could swap any fictional character for any real person (at any point in history), who would it be and why?
I'm trying to come up with a good replacement for Joseph Stalin. It's a shame that the biggest experiment in wide-scale capitalism alternatives was run for a long time by a paranoid schizophrenic mass murderer. Most of the rulers I can think of from literature are either antagonists (Emperor Palpatine), don't seem well-fitted to governing Russia (your basic king of a Greek island) or are ordained to rule, which is antithetical to the communist program (Aragorn, King Arthur). I guess a ruler who always does everything right and a nation where everyone's doing well doesn't usually make a good story. Taran Wanderer, maybe? Though we don't really get a chance to see him in action as a king.
3) What would you like strangers to think when they look at you?
I've noted before that I don't really have a third-person perspective of myself. I don't look in the mirror very often and when I get dressed I think "These pants are comfortable, this shirt looks cool, and I feel like wearing that hat" without really considering what they all look like together. This probably means there are days when I look ridiculous, but since I don't realize it, I don't mind. Since I don't usually think about what I look like from someone else's perspective, I don't usually care what they think. I hope that my bright colors and funny hats make people smile. Ideally they'd think about dressing colorfully too. But if they think I look stupid, I don't really care. Score one for the autism spectrum.
4) Please describe the ideal Trevor-friendly world.
All the every-day places (work, game store, interesting movies, good restaurants) are all within bicycle distance. The the air is clear and the sun shines warmly even when it's cold at night. People hug in greeting and parting. There are semi-natural places to walk (creeks, hills, random trails between neighborhoods...). There's public WiFi and people use it as an excuse to work outside. There are lots of students and intellectuals around. People do what they enjoy -- playing music, making art, being weird, playing games, run small businesses with awesome goals. People are free to be themselves and who they are is diverse, funky, and fabulous.
5) When you go out socially (to a party, etc.), what do you hope will happen?
Usually I hope some group of people get involved in a long conversation about topics they have some expertise in. Alternatively, I hope everyone will get involved in a big game of Fluxx or Apples to Apples or Titan ;-) Oh, and there's very tasty snacks and good beer.
flwyd: (red succulent)
In a few months, the shower meme will have been making the LiveJournal rounds for six years. In case you're new, here's how it works:
  1. [livejournal.com profile] slyviolet asked me the following five questions (that I almost forgot about).
  2. I post the answers in my journal.
  3. If you want an interview from me, leave a comment.
  4. I'll respond with five questions.
  5. You'll post the answers in your journal with an invitation for more interviews.
1. I've just handed you a spacetime machine. You can go and observe, but not interfere with, one event and then return. Where do you go, why, and how much of what you saw do you share with the rest of the world?
Am I observing with my body, or would I be able to observe without any Heisenberg/Shrödinger ramifications? I think it would be totally awesome (literally) to observe the formation and operation of a black hole, in part because "black hole" is (so far) an undefined argument to the "observe" operator.

I'd also like to observe the moment in the primordial soup when the first thing we could call "alive" came about. (I'd need to not be in my body for that one too; there was nowhere near the right chemical balance in the atmosphere and oceans for a human to survive.) This would be really interesting information and it could lead to all kinds of cool experiments. "In this room, we're accelerating evolution in Europa conditions so we can send a delivery there and have vegetables ready to eat when our spaceships arrive." Also, it might get Creationists to STFU and use The Bible for mythic storytelling and personal inspiration, not factual interpretation. Just maybe.

2. What is your favorite flower, and why?
Do I get extra points if I say a violet? ...

I'm not particularly into flowers. I'm one of two LJ users with an interest in genus allium (onions, garlic, shallots, chives, leeks), but the flowers aren't why I like those plants. I like dry leaves, tall grasses, dead tree silhouettes, fruits and berries, and succulents (which lack flowers most of the time). I guess I never get into flowers because they're pretty but temporary, like checking out a pretty girl on the other side of a restaurant. My parents' house has a row of sunflowers which entertainingly imposes on one's ability to reach the front door and we (used to?) have a patch of poppies. Our crabapple tree and lilac bushes are filled with beautiful flowers for about a week each year. I used to pick dandelions and count the petals on daisies in the yard, but I never developed a "favorite" flower.

3. If you could instantly acquire one skill that would seem "frivolous," what would it be?
Aside from all the frivolous skills I already know like D&D, fantasy card games, and speaking in lolcat? I could learn to write in Tengwar perhaps. I'd say programming in Lisp or Haskell, but it only seems frivolous to people unlikely to learn it. I was almost passable at riding a unicycle five years ago and then got a flat tire and haven't practiced since. Juggling, perhaps.
4. The supervillain has captured you as you were breaking into the secret lair. She stands between you and the door. What do you do?
"Oh, hello. I think I left my sunglasses here last week. Mind if I come in and find them?"
5. Which do you want, telepathy or telekinesis?
Telekinesis would help me be lazy. I could put on a CD without leaving my chair. I could move my mouse without my fingers leaving the keyboard. Or knock down frisbee tosses without being next to the receiver. I could do helpful things too like pick fruit no one can reach and unlock doors for urban exploring.

Telepathy doesn't seem as cool. Language is so much fun I'd rather speak or type than project thoughts. Unless I had really long-distance telepathy and could talk to folks in California while I'm on a hike in Colorado instead of having to be at home and hoping they sign into an instant message network.

flwyd: (asia face of the earth relief)
Major Reid Sawyer is a leading American authority on Al Qaeda. He is based at the United States Military Academy at West Point and wrote the textbook on counter terrorism methods. On the eve of a major new World Service series about Al Qaeda, Owen Bennett-Jones talks to Major Sawyer about who is winning the war on terror. And gets some surprising answers.
Take a break from absorbing news about the financial crisis and listen to the 26 minute interview or subscribe to the podcast.

This is the most frank analysis of Al Qaeda I've heard. Sawyer talks about how the U.S. is doing well and poorly, how Al Qaeda is doing well and poorly. He also talks about non-military approaches that are important. It's far more informative than the typical five minute propaganda interview one often sees with active military figures on American TV. Hooray for nondogmatic media; hooray for the BBC.
October 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 2017

Most Popular Tags

Expand Cut Tags

No cut tags


RSS Atom
Page generated Friday, October 20th, 2017 03:14 am
Powered by Dreamwidth Studios