Friday, February 3, 2017

Software Dev Interviwing

On my second full day of interviews a Microsoft, I walked into the interviewers office – typical office at the time (desk with two monitors, window with a nice view, and a few white boards).  After a 10-minute intro, the dev doing the interview ask me a question that he wanted me to white-board code for.  It took him about 35 mins to describe the problem in detail – at the end of the long description he asked me to start coding (had about 15 mins to do it).  

I wasn’t sure if I should laugh or cry at that point.  I ended up trying to white board the fairly complex requirements that he’d given me, and managed to start to at least give a high-level flow of the code (which probably wasn’t correct as I really didn’t fully understand the problem).  I ended up bombing that portion of the interview – I hadn’t started really coding up a solution, so the interviewer wasn’t happy.  Neither was I, as it seemed like a pointless and frustrating hour. 

As I had about 16 hours of interviews and did well on the rest, I ended up getting an offer to join Microsoft Research (which I happily did) – but that experience just reinforced my questions about how technology interviews are done, especially at the bigger tech companies.  It didn’t really seem to have a point, beyond stressing the candidate and possibly seeing that they could write a bit of code.  A lot of the other questions I’d seen were algorithms – but even those were things I didn’t normally DO as a dev – like, use bit manipulation to reverse a string.  These were interesting questions, and when I was fresh out of school I’d likely be able to code away at them (doing it on a white board would be WEIRD, but I had at least solved similar problems recently).

The odd thing about this was that, as someone who had been building and running dev teams for years, I didn’t want to know if someone could write a quick sort algorithm – as a matter of fact, if one of my devs actually wrote a quick sort algorithm as part of the job I would be, at the very least, annoyed – why hadn’t they use a library? Do they really thing something they wrote in a few hours or days would be as robust, fast, etc. as Array.Sort in C#?   Did they REALLY want to take on maintenance of that complex piece of code? Is this something the team and company also wanted to now maintain!? The answer would generally be NO…

I’d ask this question to other Microsofties doing interviews – was the white board coding interview useful? Did it really help know if the candidate would be a good hire? The majority said “NO!”, and would gladly rant on the absurdity of it.  When asked why they still did it, most responded with “because that’s how it’s done” or “that’s what I had to do”. 


So I started to look at another way to do it.  I tried to step back and really figure out what question I was trying to ask. 

Was it:

“Can the candidate write code on a white board?” (NO)
“Can the candidate write complex algorithms on the fly, by memory, that I’d never want them to do for the job?” (NO)
“Can I stress the candidate out to the point where the break down and cry? (NO – even though I’ve seen some companies where this would be a good idea to at least test, as they’d have to deal with it on a daily basis)


“Is this someone who can do the projects the company needs done” (YES!)
“Is this someone I want to work with?” (YES!)

I don’t believe a white board interview coding up a Levenshtein function really answers these questions well very well.  So, when I started to build my own team at Microsoft, I stopped doing the norm and experiment with ways to really answer these two questions – Project day, and the Take Home.

Saturday, August 23, 2014

So long, and thanks for all the Checkins

Foursquare has been on the bottom row of my phone for something like 5 years.  Mail, phone, messages - and 4sq!  Lots of apps have moved on and off the first screen, but those 4 have always been my go-to apps.

I joined Foursquare in Sept 2009.  I've been a daily user since then - mayor of a lot of cool places, creeping up on 10k checkins, lots of tips and lists. I had checked into my favorite coffee shop so many times, as mayor I got a 20% discount on everything!  I'd made a lot of 4sq friends over the years, and just have generally enjoyed using the app. It made SENSE to put it on the bottom row - I used the others on the row a lot, but may have actually used 4sq the most (checkins, checking what others were doing, etc)

Today, after spending the last few months in frustration, something radical happened...

Bottom row something like this,
since 2009 (*) 


Foursquare is gone, as is its "replacement", Swarm.  Not only isn't it on the bottom row, it's not on my home screen.. I haven't uninstalled them, but they've been relegated to some other page where other apps I don't use go.

Not the end of the world, but certainly the end of an era for me.

I had written AnnotatedEarth in 2002, and have been huge into the potential of location-aware ever since, and had been happily amazed that someone had finally done something really cool, that I wanted to use, with location-aware tech.  With AE I'd nibbled around parts of the idea, but had never moved forward on that (for many reasons - see the AE -page for info).

I was disturbed a few months ago, when some of the functionality from Foursquare moved to a new app, Swarm.  I'm not a big fan of switching between apps, which these two apps started to do, but I continued to use it.

... and then, so much functionality moved from the Foursquare app to Swarm, that the Foursquare app really didn't do ANYTHING but list nearby places and launch Swarm.  Huh. Weird....

Then, one day a few weeks ago, I opened Foursquare and, to my surprise, it was a new app!  Basically a Yelp recommendation service.  In addition, Swarm had been slowly reduced in functionality. No more Mayor or badges (two of the things I had the most fun with).  WTF!?

I found myself using the app less and less, until I realized today that I hadn't used it since August 16th ( 13 days ago). I decided to make one last checkin to my favorite coffee place, and then move both Foursquare and Swarm off the bottom row and 1st screen.

Maybe Foursquare will find success with their new app, but I doubt I'd use it again.  I've read their blog, talking about putting back some of the functionality into swarm (but not really, from what I can see - mayor of your friends just sucks).  I really just have a bad taste in my mouth with what they did.  As a software developer, I get it - but it's something I'd never to do my users, and really think it was pretty slimy.

What I believe happened is that they wanted to roll out a new recommendation app.  They realized they had this huge, dedicated install base with Foursquare, so decided to quietly slip the entire Foursquare app to a NEW app, and then replace the Foursquare app with the recommendation app.  Brilliant, at some level - insta-massive install base for a new app, super-recognizable name (even my parents know what it is) - WOWZA! WE'VE GOT A WINNER!

As far as I'm concerned, it was bait and switch, and not at all cool.

I've been a  developer for a long time, and I LOVE my users.  Having people use and love my software is one reason I write software in the first place. The last thing I'd want to do is piss them off, and certainly wouldn't do something slimy to them, like Foursquare has done to their users.  If they wanted to create a new app, then by all means, do so. If they no longer wanted to support the old app, then stop doing so.

Anyway.  It was a free app so I really can't bitch too much.  I loved it for years, and I wish Foursquare the best of luck. 'course I will soon no longer get my 20% discount at Vovito, or my free cookie every day at the cafe down the road (not that I need more cookies!)

Anyone know of a good replacement app?

( (*) - Wow - they changed the icon.  Great... *boggle*  So the top screenshot was edited, to place the old icon there)

Friday, August 1, 2014


Latest version of StationRipper is up here:  

Minor update to recording/downloading Pandora.

Sunday, October 13, 2013

While my new job has been keeping my from PhoneBomber (and the other apps I planned on working on), I continued to think about it location-aware gaming.

I've recently been playing Qonqr - really the first location-aware game that I think has really taken off.  I've been enjoying playing it - even have driven to different areas to place bases in better faction areas. Fun :)

Some of the things I've noted, that I will take as feedback into my own games:

  1. The low levels are 100% grind, at least for players starting now.  Everywhere around me are players that are max level and Scope.  I really can't do much - can't really take a base fom my faction group, and can't really attack an enemy in any useful way. So I've been grinding exp.  I just made level 100 today - but really feel that I need to grind on scope upgrades now.

    The take-away from this is to make SURE that the lower level of the game has some point.  Even WoW and EQ had a bit of a point in grinding exp - quests and the like.
  2. They've done this to some extent - but figure out a way to extend the reach of players.  The location based part should be front and center, but there should be a way to reach out - through set portals, helping guild/faction mates in other areas, etc.
  3. Extend that reach outside of location-based.  For example, I should be able to create a portal, and then use that portal for a period of time from wherever (including via the browser on my PC).
  4. As part of extended reach, and the browser, the game should ALWAYS allow the user to do something.  If the game play would be upsetted by constant attacks, then come up with something else (crafting?  Let players, over time, create items that would otherwise have to be bought? New stuff? SOMETHING that lets me play more!)
  5. Give better feedback on what's going on.  I really don't get a sense of what others in my faction group are doing - like, who else besides the zone holder is holding the zone.  If an enemy attacks me, I'm not really aware of this (beyond noticing my bot levels go down).  A sense of in-game community is critical.
  6. Allow players to communicate and group in-game.  You can use in-game mail, but that's tough to really use at any kind of useful scale.  It looks like most player are going out-of-game to self-organize.  It would be great if you could form "groups" that worked together for a period of time + had good 
I'm not sure at this point if I'll be continuing with PhoneBomber.  Been thinking about doing a Google Glasses version (as it would be easy to do, and very playable, on that platform).  Really thinking of doing G&E, or Other World.

Tuesday, March 22, 2011

Was in a interview in the Bay Area and...

mentioned that, before the interview, I had been placing bombs all around the campus.

Thought that would be a good talking point, as one of the reasons they wanted to talk to me was my various apps, with a focus on PhoneBomber.

As PhoneBomber is all about placing bombs, disarming them, and blowing shiat up, I THOUGHT that would be ok.... did I mention that security goons just don't get massively-multiplayer, location-aware games!?!?! :)

Sunday, March 20, 2011

20K, Lots of Bombs!

PhoneBomber is doing pretty good - heading to 25,000 users.  At any given time there's over 10,000 bombs queued up - and there have been over 1 million placed.  Bunch of people look very active, and ALL over the place.

You can see details over at

Here's a map of all bombs that have blown up since the end of last year (ouch!)

Tuesday, March 15, 2011


The latest version has a Layar in it - so you can now SEE the bombs around you! Very cool AR app.  Working on getting the layar approved, and then will launch from PhoneBomber.  They don't have a embedded version for Android yet, so will look at just launching...