Sunday, December 30, 2012
Thursday, December 27, 2012
Monday, December 24, 2012
In 2006, I wrote this guide "How to Prepare for a Software Engineering Interview". Since then, I've been frequently asked: "How do I prepare specifically for the coding questions?"
Today I will answer that. Below are my tips, culled from my experiences interviewing around 500 engineering candidates for Microsoft, Google, and Minted.
My goal is to elicit your best performance during the interviews. To use an analogy, if you were getting ready for a 400-meter dash, my goal is to enable you to run your fastest time and prevent you from freezing up during the race. The tips are not going to turn someone who runs a 10-minute mile into a track star overnight.
1. Practice mock-interview coding questions in these areas:
- String operations. Implement strlen, strcat, strchr.
- Data structures. Hash tables, arrays, binary tree.
- Running time. Determine the big-O of algorithms.
Note: The point is to get you warmed up, not to tell you exactly what's going to be asked. Your interviewer wants to ask you a question you've never heard before, and may skip questions (and concoct new ones on the spot) until one that's new to you. So there's no point trying to scour the internet practicing all questions so that you can recite the answer.
2. Avoid extended silences during the coding question. A major reason for the coding question is to observe your thought process, not merely whether you arrive at the perfect final answer.
If you are silent, the interviewer has no idea whether you are analyzing several plausible solutions (a good sign), or whether you are completely at a loss on how to tackle the problem.Even if you are stuck, here are some things you can do that are better than being silent:
- Describe algorithms you're considering and then discarding ("Dynamic programming won't work in this case because...")
- Enumerate edge cases that your algorithm needs to cover ("I'll need to make sure my solution handles an array with duplicate values...")
- Talk about the part of the problem that you cannot solve ("I need to find a way to split the input into two halves, but all hashing functions seem too uneven...")
Basically, just open your mouth and issue a stream of your problem-solving thoughts. Even repeatedly going over the same conundrums is superior to a long silence.
3. If you see a brute-force solution right away, say it first, and then hunt for the more optimal solution. At least you've demonstrated that you have one potential solution, even if it's not efficient.
If you don't get the refinement, you can always implement the brute-force method, and impress the interviewer with your quicky-written and correct (albeit inefficient) code.
4. Practice writing code on paper, without a syntax highlighter. I mentioned this in the 2006 guide and it is worth re-iterating.
It is going to feel foreign at first. You will suddenly forget how to write for-loop syntax when you are using a pen or whiteboard. That's why it's even more important that you practice beforehand.
Good luck and godspeed to you.
Sunday, December 23, 2012
Thursday, December 20, 2012
I finally understand why some people get addicted to shopping. I could not stop buying hats. I spent an hour trying on and buying different hats. If I had not left, I would've purchased more hats. If those hat merchants had any sense, they should've seen that I was a giant mark and bombarded me with their wares.
Groups of women regularly walked by in petticoats. It was awesome. Occasionally the Queen came through and blessed us, and other attendees said in an English accent, "Bless you, Majesty."
Monday, December 17, 2012
The doctor was very forceful in yanking my head around and telling me to stop moving. It was comforting to have someone be so authoritative, even if they were scolding me.
Then a brief moment of relief, followed by the dread that now it is time to do the other eye.
My eyes are still bruised (you can see in the photo) but I can see pretty far already. It hasn't sunk in yet that I will not have to wear contacts or glasses in future.
The movie starts out slow, and plays out one of my biggest nightmares: strangers coming into my house and eating all of my food.
The scenes traveling over mountains were beautiful. The movie did a good job of maintaining suspense on several fronts simultaneously.
The feathers graphics were nice. I kept marveling at how they look good close-up, fluttering in the wind.
Thursday, December 13, 2012
Wednesday, December 12, 2012
I was very bothered by it, and wrote James this heated reply:
It is quite untrue to the characters! Aragorn was always conflicted whether he ought to become king -- the whole fear of inheriting the corruption from his ancestor and "this weakness runs also in my veins". The "still not king" theme really goes against his central passion as a character!
Also he showed no predilection whatsoever to being attracted to hobbits. I feel like this writing just took a bunch of cheap shots that are not based on the actual book.
Here is what I would write instead:
Sunday, December 09, 2012
Saturday, December 08, 2012
Friend: "I want my partners to work hard. Does this mean I have to work longer than all the rest of them?"
Me: "No, you just have to set clear goals. If I told you that tomorrow we might go on a run, you wouldn't be sure how much to prepare, so you'd watch me and follow my lead. But if I told you that tomorrow at 10am, I'm coming over to get you and then we're running 5 miles, you'd drink water and go to bed early. No matter what I'm doing, you'd be stretching and getting ready on your own."
Friend: [agreeing noises]
Me: "Being clear makes it a lot more motivating. If I told you that we're running 5 miles at 10am, it's very likely that we'll do it. If I just said that we're running tomorrow, we'd look up at 11pm after a day of playing Starcraft and say, 'Weren't we supposed to go running today?'"
Friend: "LOL true."
X: "People from Australia are on the site, and we need to do things to it!"
To our Australian engineer: "Can you tell them to stop using the site for a few minutes?"
Australian engineer: "Okay!"
X: "Email all@australia."
On skype chatroom at midnight:
On-call engineer: "Okay is everyone ready to deploy? 9+5=13" [Our deploy script requires the engineer to do a simple math problem.]
On-call engineer: "I mean, 8+5=13. It's scary I got that wrong at first."
Me: "Have you stopped drinking at all between beer o'clock [Minted Friday happy-hour tradition] and now?"
On-call engineer: "Don't ask me questions you don't want to know the answer to."
On skype chatroom:
On-call engineeer: "Oh web4, where art thou web4,
Deny thy code and refuse thy branch,
Or if thou wild not, be but sworn my Thursday
release XXXX branch"
Me: "You can't rhyme branch with branch!"
Friday, December 07, 2012
When I worked at Microsoft, because there were so few women, the shirts came only in men's sizes. It sent such a loud signal that women were not valued. Is that history now, or are there any companies nowadays that still do this?
If there are still any that do this, and you are a woman who works there:
1. that's awful
Thursday, December 06, 2012
James: "I set up push notifications on my phone for your blog comments. So that I can moderate them right away."
Me: "Wow! That's so great! My fear is that the novelty will wear off, and you'll have a longer and longer lag to moderate them."
James: "If it isn't working out in a week or so, I can write an app."
Me: [getting really upset] "What, to do sentiment analysis and auto-moderate? If I was going to go that way, I would've just written that myself!"
James: "An app that shows the blog comment on the lock screen, so that I can approve it from there."
Tuesday, December 04, 2012
Meanwhile she stir-fried six Chinese dishes with ease.
Tom brought his girlfriend to meet my parents. Afterwards we all squeezed in one car and went to the Cosmopolitan hotel. I love the style of the interior decor! Three-story-tall chandelier strings, leather walls, egg chairs.
I am glad I flew to spend Thanksgiving with my family, even though it was only 30 hours so that I could go into work on Friday morning. It was a great 30 hours!
Monday, December 03, 2012
Me: "Does M know that he's supposed to deploy code tonight?"
Me: "Oh, how do you know that he knows?"
D: "He made it clear. Multiple times."
Me: [laughing] "By complaining?"
My team is so endearing.
H: [coming back from the fridge] "The large pizza box doesn't fit. I need to transfer it to the smaller box.". [opens small pizza box, discovers there is still pizza in it] "I need to swap these."
D (intern): [getting up with his own empty pizza box in hand]: "You're going to need a temp box. Unless you can XOR pizza."
Later the interns sent me a reddit thread about top revenge stories, and I spent one hour reading it, riveted.
Sunday, December 02, 2012
She mentioned that one engineer at her work is nitpicking on irrelevant details. My theory is this behavior happens when the vision and milestones are not clear.
It is like how after the Knights of the Round Table rid the land of barbarians, they got bored and began picking duels with each other. When the quest for the Holy Grail began, the knights had a common purpose again and stopped squabbling.
Thursday, November 22, 2012
The annex looked barren at first but a lot better once we put in carpet and 30 lamps!
Tuesday, November 13, 2012
Monday, November 12, 2012
Talked to my mom on phone last night.
Me: "One of my coworkers has been stressed for the past few weeks."
Mom: "That's easy. Just tell them to lower their standards. Then it is much simpler to be happy!"
My mom is so cheery. She is the opposite of Tiger Mom.
Saturday, November 10, 2012
Thursday, November 08, 2012
Friday, November 02, 2012
Steve gave the best speech!
"If I were to do it over again. I would do some things differently. Like not work so much. I love my wife. I love my life. I hope you find the kind of success I have."
if there’s one thing I believe more than I believe anything else, it’s that you can’t fake the core. The truth that lives there will eventually win out. It’s a god we must obey, a force that brings us all inevitably to our knees. And because of it, I can only ask the four women who wrote to me with the same question: will you do it later or will you do it now?Many of us believe that if a situation is perfect on paper, but we're unhappy with it, what needs to change is us. I've had several friends who think if they're at a job that is high-status high-paying high-growth, but they're not happy, then the problem is with them. Even if the culture is fratty and they are not, or if the culture is extremely critical and they are not, they think that they're unhappy due to a psychological failing rather than a mismatch.
Sometimes it is truly just anxiety pulling you back. Or maybe you are letting what's on paper blind you from the reality of whether you actually want it. I remember a long time ago, driving on 101 while talking to my friend on the phone. I listed out all the ways my then-current romantic relationship should be perfect, how much I respected him and how great he is in so many ways.
My friend said, "Yeah, it turns out that whole list of reasons isn't as important as actually being happy in the relationship."
Wise words. Sometimes hard to follow.
Thursday, November 01, 2012
Tuesday, October 30, 2012
Sherlock demonstrates low empathy. He has a photographic memory. He can identify all the symptoms of love (dilated pupils, elevated heart rate) but he doesn't say "I love you". There is one woman he is closest to, and he's content with never speaking to her again, as long as she is still alive in the world somewhere.
I am really intrigued by Sherlock Holmes! I wonder if it is because Silicon Valley idolizes the archetype of the brilliant arrogant immature founder, driven toward utilizing his talents. Sherlock doesn't even care about getting paid. He doesn't want to get famous via Watson's blog. He doesn't care about his personal sacrifice, or endangering his own life. He just wants to do what he's good at. He's just like the dream Silicon Valley founder for VCs!
Monday, October 29, 2012
Tuesday, October 23, 2012
Starcraft tournament with craft party this Friday at Minted beer o'clock!
Minted has taught me a lot about human relationships (along with startup and business learnings). I get along really smoothly with Melissa. Occasionally I start to get stressed at her, but she will reply with something honest yet calming, and the moment immediately blows over.
I also learned that if someone tries to help but cannot find a way to help, they will often then switch to sabotaging. Most sabotage came from a thwarted desire to help. Find a way for them to help, and the unhealthy channeling into sabotage will often stop.
I learned that much of conflict between two people is caused by a third person gossiping to one of them about the other. Two people can usually resolve many conflicts between them. But when their mind has been biased by another, it can only be undone with conscious effort or the passing of time.
I learned more deeply that perception is lagged. Back when I thought Google was fast-paced and so fun, the outside perception was "Does it make any technology except search? One-trick pony? Does it really make money?" A few years later, it felt slower-paced and less exhilarating to me, but that was actually the height of the external buzz when Google won "best place to work" repeatedly. Minted's growth is so exciting, and public buzz is following suit, with months of lag. It is fun to observe.
I learned that I can love my engineering team more every month, increasing over such a long time. They are so funny and endearing! Either I subconsciously hired partially for humor, or I find them more hilarious because they are dear to me. I keep trying to determine which one it is, and am not sure. I need to do some kind of blind test where I get printouts of their jokes vs a control group, and determine which jokes are funnier.
I learned that it is possible for two coworkers to become frustrated with each other, way past what I previously thought was the point of no return, and then for one heartfelt conversation to turn it around and make them get along better than ever.
I learned that users can be so kind and sweet.
I learned that it is very liberating to be able to be yourself at work and be accepted. Once I interrupted Melissa while she was giving a tour to an important interview candidate. She turned to me expectantly, thinking it was some dire site issue. I said "Sorry for interrupting but I need your RSVP for our chocolate factory tour!" Melissa laughed at me but accepted this impatience. It feels really nice to be accepted for your quirks, not in spite of them.
There are more learnings but now the tea caffeine is finally wearing off. Darn you, Chef Chu jasmine tea!