Interviewing Right

There are countless online articles that get hits when someone is preparing to get interviewed: “10 things to keep in mind”, “10 don’ts while interviewing”, “How to interview well..”, and so on. This works well for the times we live in. You get people in the door for a typical 4-6 hour interview, they act nice and everyone tries to play by the rules.

What’s wrong here?

Interviewing is a tough skill. Think about the things that the interviewer is doing, within a 45-60 minute window:

  • assessing technical capabilities
  • assessing success potential
  • assessing seniority
  • assessing team work capabilities
  • assessing <insert buzzword here>

That is a lot to assess. Relevant signals from the candidate can get lost. Depending on the interviewer, they can become too critical or too positive and amplify signals that are one-offs for the candidate, or play down those that give more insight into a candidate’s nature.

Additionally, the clock. Less than an hour to go, and so much to discover in an interview. Possibly, more time is spent on the right car to buy (reviewing, comparing, discussing etc.), than on a likely co-worker.

Then again, not all interviewers will take extensive notes. This leads to lost information, and sometimes, to distorted memory about the candidate. A common trap to fall into is the gist-based memory and associative memory errors (see this article).

Interviewing skills get better with experience. Not being true for everyone, some are good at assessing others while others will just never be good at forming reliable opinions in small time windows. Since there is a learning curve here, it will have to unfortunately come at the cost of hiring misfires.

Given that interviewing is conducted by a panel, the idea rooted here is that judgments passed by a group are less likely to be at fault. Though, more senior or well-respected interviewers tend to dominate the jury.

Referrals by current employees, of past co-workers, is a popular hiring method. Referrals (mostly) get interviewed in the standard ways.  Yet, employee referrals have an added data point. This makes a  difference.

To summarize,

  • interviewees may not be themselves
  • too many skills / behaviors to assess
  • not enough time to appropriately assess
  • not enough record of the interviews conducted
  • interviewers gain experience at a cost
  • interview panels may be dominated by seniors
  • referrals get a bias

Avoidances

What follows is a list of some of my personal practices to avoid these problems.

Pre-interview notes on the candidate

  • Decipher the candidate’s resume, to highlight their strengths, !strengths and anything else of note to brief the interviewers prior to the interview. Your help with this will set the stage and prime interviewers’ experience with the candidate. It is important to get it right and not (bias it).
  • Job descriptions help, but often, the panel needs to be reminded of what exactly is it that you are looking for. Think outside the job description – personality traits, seniority levels (for real), specific personas (like someone with a customer oriented mindset, or someone who’d be more heads down).
  • Keep “referral” biases out, as much as possible. Instead, talk to the person who referred this candidate, and include notes in your pre-interview notes.

Develop focus areas for interviews

  • As a hiring manager, a lot of thought needs to go into the kind of person needed on the team for a position. Some times, when you are building a team, you need to create a few different personas.
  • Every interviewer gets a couple different focus areas. The tricky part is to match the focus area for the interviewer as well. I typically read through past interviews from these interviewers to determine what they naturally focus on.
  • Although interviewers give additional feedback, appreciate it, but remind them to “concentrate” on their areas
  • Keep them real. Write out focus areas for what the team is actually doing over 3-6 months, instead of asking for things that lead to optimizing the number of triangles within 5 overlapping circles.

Share focus areas with the candidate

  • Well, why  not? You want to earn the trust of the candidates so that they can be themselves.
  • What if they make up things? If someone can make up a fantasy about an architecture that they never worked on, or only read about, and explain it well, you probably want someone like that.
  • Won’t everyone just know what we ask? Every interviewer would have their own set of problems and will be discussing very different scenarios. The idea is to make the candidate comfortable and forthcoming.

Make note-taking easy

  • I’ve printed out focus areas in the past, on paper, and given a page of blank space that has multiple of following markers (to interviewers) under each focus area:
    • Asked – what the interviewer asked. 
    • Response –  what the candidate talked about.
    • Analysis – refers to notes that the interviewer is encouraged to write out their analysis for the asked/response pair (under that focus area).
  • Interviewers should be encouraged to go back and fill in the analysis after the interview is complete so that they can fill out as much information as they can before their cache expires.

Keep information flowing

  • Most importantly, during the interview. Having brief discussions while the interview is in progress with the interviewers, helps to adjust focus areas. Additional context is added for incoming interviewers to re-evaulate certain areas. Orchestrating the feedback so that it flows to and fro, helps.
  • The slight downside to this is that bias from earlier interviewers can flow to and fro too. Conscientious effort is required to avoid this.

 Post-interview debrief and go/no-go

  • Many organizations have a central committee that decides the outcome. This committee’s judgment is only as good as the feedback captured, the hiring manager’s overall note and the focus on what you need for the position v/s what the candidate has to offer.
  • Sitting down with all the interviewers for a brief amount of time and discussing everything with the panel is very important. It highlights the panel’s own performance, along with the interviewee’s.

Other Problems

Reading through interview reviews on sites like glassdoor, I’ve often seen many other problems that interviewees bring up. Common themes are, interviewers that…

  • …aren’t empathetic
  • …dominate airtime
  • …don’t give enough context
  • …lean into the candidates
  • …never smile & keep things tense

My approach is to find the best way on how to use such personalities (with these unique qualities), such that the interview process is not affected. Often, it means, not using them.

Final Note

After a few cycles of doing this rigorously, this was easier (mostly cloning prepared documents for ongoing interviews). In the beginning, I had detailed focus areas . Later on, I would compress the focus areas to be brief.

There is a lot that can be improved, and I’ve not yet seen all the pitfalls. There’s a possibility that some of the techniques above have serious downsides, but this has worked better than anything else thus far. Well, there’s definitely a better way…

This is all good “for the times we live in.” Interviewing today, is still constrained in a short time window that an interview is conducted in. The future of interviewing will probably not look like any of this. Take home assignments, short projects lasting 1-2 days, contractual work leading to permanent roles and may be even (crazy idea) separate organizations acting as frontiers for people who could to try things out.

I’ve been surprised a couple of times on how certain people who were hired, turned out to be really good at what they did despite shaky panel feedback and an almost “no hire”. There are probably many more that were never interviewed, not hired due to process flaws or hired but weren’t the right fit. This has to change.

Flying From Twitter

Twitter Journey
Twitter Journey

This last Friday, after just over two years at Twitter, I decided to drive down the street to Uber.

The most difficult part of this decision was the fact that I only spent, what seems like an extremely short time at Twitter. The experience was amazing – the methodologies, the technologies and above all, the wonderful people I’ve had the honor to work with.

Will truly miss the relationships I’m leaving behind, especially my immediate team (Aras, DRob, DavidJ, Jeff, Joe, Mike, Toby and Zeke). And then, there’s Ian – who has become a very close friend in this very short time.

Really looking forward to the next adventure.

Sanity

About 20 or so years ago, I had the privilege of having a guest at our place. Amazingly enough, we would almost always have dinner on the dinner table, unlike how I’m used to with my kids (on the couch, bed, standing and sometimes, on the table meant for this exclusive function).

This guest was from a part of India, now known for its exceedingly high PM2.5 (particulate matter). The air pollution itself is responsible for lung and neural diseases. Add to that the fact that you have sewage seepage into drinking water pipes and we’re talking serious long term damage to the brain and lungs.

Cut: back to the guest at our dinner table. As is customary, you serve your guests (with generous portions of food), and acting the good boy, I started doing so. Taking the lid off of one of the bowls, I kept it facing down on the table. “WHAT are you doing?” said the person, very perplexed and a bit chidingly. Looking confused, I asked, “What am I doing wrong?” – as that was obviously the question instead. “Don’t put that lid facing down on the table, ‘germs’ will get back into the ‘daal’ from the table when you re-lid it.”

This was a lesson that I haven’t unlearned since. The transfer of biological hazard from a dining table that looks clean, but really isn’t – through a lid’s internal surface. It made total sense. My father did laugh in a way that made me think that he disagreed with the phenomenon, but didn’t want to argue unnecessarily.

Many many years on, an offspring of this guest was infected with Typhoid. If you don’t know, the only reason you can get Typhoid, is when you have consumed human fecal matter. The only sane way for that to happen, is through contaminated food or water. The only places with the highest reported typhoid cases in the world, are Africa and India. Note, “reported.”

As I was reading an article on Delhi’s PM2.5 levels (close to 1000 now), and the mention of contaminated drinking water, I realized something.

People often obsess over things they’ve been brought up with. There is a lot more to be obsessed about, but the key learning for me and my kids is to constantly evaluate your obsessions. This guest’s freak out, made a lot more sense in 1970s may be, but there are way more things to worry about in 1996 – and the perspective changes even further, in 2015.

The last place to get bacteria in your food is from the dining table. FWIW, those bacteria are probably going to help strengthen your immunity. Worry about the lavatory more, or, if you’re in Delhi, about the sewage pipe running next to your water supply. Welcome to sanity.

Setup and Play Unreal Tournament 2004 Natively on Ubuntu 14.04 LTS (x64)

Recently learned from a colleague that UT2004 runs perfectly on Linux – natively. Figured from Ubuntu forums, that it does indeed work perfectly.

What is this post going to tell you that others don’t? How to buy UT2004 online, download it and set it up on Ubuntu (without having to worry about a CD, because it’s 2014 and not 2004).

  1. Install wine:
    sudo apt-get install wine
  2. Get wintricks:
    wget http://winetricks.org/winetricks
  3. Make it executable:
    chmod u+x ./winetricks
  4. Install steam:
    ./winetricks steam
  5. You’ll see something like this downloaded:
    /home/$USER/.cache/winetricks/steam/SteamSetup.exe
  6. Run setup with wine:
    wine /home/$USER/.cache/winetricks/steam/SteamSetup.exe
  7. If you didn’t change the path to install, launch steam with wine:
    wine ~/.wine/drive_c/Program\ Files/Steam/Steam.exe -no-dwrite

    (That -no-dwrite is important because the text disappears without that on Steam. We don’t want to use this for gaming any way, so this is fine).

  8. Create account or log in to your existing account on Steam.
    (space)
  9. Search for Unreal Tournament 2004.
    (space)
  10. You’ll get an option to buy UT for about $8 (real cheap right now) – buy it.
    (space)
  11. Download the game and install it (took me about 30 minutes).
    (space)
  12. Now copy (or move) this game from ~/.steam/drive_c/Program\ Files\ \(x86\)/ into another location.
    (space)
  13. Download the mega pack and linux patch bundle from http://www.utzone.de/forum/downloads.php?do=cat&id=19 (titled UT2004 Mega Pack Linux + LinuxPatch)
    (If this link is dead, search the Internets).
    (space)
  14. Overwrite the mega pack and patch files into this other location where you moved your game to.
    (space)
  15. Install this:
    sudo apt-get install libstdc++5
  16. Also:
    cp /usr/lib/x86_64-linux-gnu/libSDL-1.2.so.0.11.4 /Wherever/Your/Unreal/Dir/System/libSDL-1.2.so.0
  17. Finally, get the CD key by running:
    wine regedit
  18. Search for UT2004 (and you should find a key with the CD key in it)
    (space)
  19. Copy this CD key into a file named cdkey that is placed in /Wherever/Your/Unreal/Dir/System/
    (space)
  20. Launch /Wherever/Your/Unreal/Dir/System/ut2004-bin-linux-amd64
    (S
    ome of these steps will change if you are running this on a 32bit system.)
    (space)

(space)
I did not come up with all these steps, so I’m linking all the resources below in case you need additional help/instructions:

  1. https://developer.valvesoftware.com/wiki/Steam_under_Linux (for steps 1 through 6)
  2. https://bbs.archlinux.org/viewtopic.php?id=146223 (for “no fonts/text appearing” – the -no-dwrite in step 7)
  3. https://help.ubuntu.com/community/Games/Native/UnrealTournament2004 (for the mega pack installation steps 13 through 16 and 19)
  4. https://support.steampowered.com/kb_article.php?ref=1572-EOPC-1358 (for the CD key step 17)

 

 

 

 

 

 

 

Moved to digitalocean.com

Moved this blog to digitalocean.com. To trace things back, fryol.net started with being hosted on Yahoo Small Business, moved to virpus and now to digitalocean.

The SSDs on digitalocean sold me. Another neat thing is that they have the latest releases of Ubuntu, CentOS, Debian, openSUSE etc. Compared to virpus, this is huge, because even though virpus’ images are all about LTS/stable releases, they were a few releases behind . On a different note, Ubuntu LTS releases sound like pun to me: Life’s Too Short – what the hell are you doing clinging on to this release.

Being able to do 2 factor authentication on digitalocean took care of my recent upshot in paranoia (owing to the heartbleed). This is quite a step up from the virpus management interface. Nothing against them, but virpus gave me “too many options”, which led me to worry about all those databases that have passwords. Their images contain a copy of directadmin, which I always hated (it would just blow open your site’s administration, with zero encryption). Then, there was myvirpus.com, and again manage.virpus.com. If they can take something away, it would be to collapse everything into a single interface and stop giving directadmin for free, especially when there’s no https.

A word about Yahoo Small Business, it was a nightmare on various fronts. As much I love some of the other Yahoo products, Small Business was a huge mess. I was one of the first few customers to pilot on the SMB India project, and FWIW, installing and running wordpress was such a big deal that fryol.net featured as an example for customers. I could still not do quite a few things (like slug permalinks), and it was pretty frustrating to run anything that was based off of Perl. If you’ve worked at Yahoo ever, you’ll see what an irony that last statement is.

Beaming Out of Yahoo

After 7+ years, I am leaving Yahoo. Going to join “the flock” at Twitter.

This is big and then, not so big for me. My role and responsibility remains somewhat unchanged as I go from Yahoo to Twitter, but I’m moving to San Francisco (the movers finished that yesterday). So, living in the city will be new. I’ve not taken very kindly to the traffic there so far, but this will change I’m sure.

Yahoo is an amazing place to work for. I’ve repeated this, that I’m not that good at transactions. When it is not time to buy a house, I go and buy one. This, was probably not the best time to leave Yahoo. The share price is kicking and the products coming out are simply amazing. I can’t say here, but there are some amazing surprises on the way for people using Yahoo products. I don’t say this because I work(ed) there, I really mean it. If you want to join Yahoo, this is the time – and it is not going to be easy. It is well worth it.

Then why did I decide to move? I was getting very comfortable. Things were  smooth, stuff was getting done and all the wheel-work needed was just some oiling here and there. I felt that this was the best time for me to get out of the groove as well as the team and people I would transition things out to/for wouldn’t be as affected. Taking a lot of time and careful thinking for the transitioning, I am happy that it has been very successful. Much better than leaving a ship that’s about to sink.

People in my team have extended amazing support for this decision. I am very moved by their kind words and actions during the last few days. This has been a big surprise, since a big part of me always felt that I was not doing enough for them. I want to call out (and in no particular order): Alex, Deepthi, Hitesh, Sudip, Ram, Mike, Muthu, Tom, Jason, Sachin and Srinivas for everything they’ve said and done. Thank you folks, you all are simply awesome. Selling Yahoo is extremely convincing when I give examples from interactions with people like you.

Twitter is an equally amazing place to go to. Seeing the amazing energy in the Twitter office, I’ve been very excited about what they’re doing and about to do. I am yet to find out more, but from what little I’ve seen, the people there are super nice (just like Y) and the culture is alive and kicking. Their technology platform stack is either mostly open or about to open up, something that excites me even further.

All said and done, it is no lie that if you cut me, you shall see that I bleed purple.

Hacking fryol.net

So I see that there’s some bots coming in to ssh into fryol.net. I can’t stop those guys. As long as there are doors with locks, there will be attempts to break in. Even though this site has everything turned inside out, bots don’t care, they’ll try to get in anyway.

Anyway, the purpose of this post is to warn folks out there that you shouldn’t keep your usernames (on your ssh port) that are a part of the list in this text file: https://fryol.net/r/?attachment_id=1264. Actually, there are a lot of ways to make sure that your ssh port is well protected, and disabling all users but the one that you would actually only use (AllowUsers setting in /etc/ssh/sshd_config) is a great way to do this. Also, please disable password authentication. Use keys only. If you dunno what I’m talking about, it might just be a good idea to not run sshd at all. Heh.

Some very interesting names in there. Who the hell is praktikant that made it into that list? Lucky bastard.

Lenovo S400 IdeaPad – Upgrading RAM & Wireless Card + Installing Ubuntu

I bought a Lenovo S400 IdeaPad back in December last year, and well, it wasn’t such a great decision. To begin with, the pros of this laptop distract you so much that it is hard to get away from the idea of owning it. It’s very:

  • lightweight and sleek

That’s about the entire list of its pros. Can’t think of anything better.

So I decided to get rid of the cons. Here they are:

  • 4GB RAM – not enough sometimes
  • wireless card – very slow
  • no linux

Things that I haven’t been able to fix, but are annoyances nevertheless, are:

  • glossy screen – somehow I like a matte screen much better
  • weird touchpad – almost all these “Pads” in the market have this “no button” touchpad now which is hard to get used to

Requirements and Purchases

Things that you will need to upgrade your RAM and Wireless Card:

Now the last thing on that list was the most time consuming of all. In a nutshell, Lenovo has locked down supported wireless cards to only the ones that they would like. So, you have to take a backup of your BIOS, give it to an expert and then download it back with a flash utility and flash your BIOS to whitelist every card. If you don’t do this, after you have changed your Wireless card, you will get a “Unauthorized wireless card; power off and remove it” message from your BIOS.

You may ask, why do you have to backup “your” BIOS and get it altered, isn’t there already a copy on the Internet that you could “just” use. Yes, there are copies but they have customizations that will not go well with your laptop. Hence, you want to keep things simple – flashing a BIOS with someone else’s copy is not to be taken lightly (it may brick your laptop).

 So that I don’t have to keep replacing my Wireless card until I got my BIOS flashed, I also bought a:

..that I used until the wireless card started working. All this time I had to keep my Wireless card disabled in BIOS, so that I don’t get the “Unauthorized..” message.

 

Getting BIOS modified to whitelist Network cards

Now, to get into the BIOS, you have to use the “Fn+F2” key (or just F2 if hotkeys are disabled) on the “Lenovo” screen.

If you are only looking to add RAM to your laptop, you can skip this section.

To get a copy of your BIOS which has wireless cards whitelisted, you will have to use Windows and follow these steps (CAUTION: use the following at your “own” risk, I take no responsibility if you brick your laptop):

    1. go into your BIOS (Fn+F2 key or just F2 key if your hotkey (Fn) is disabled) and note your BIOS version and other details and post it on the forum (in the next step) along with the backup of your BIOS (see third step)
    2. post it on this forum http://forums.mydigitallife.info/threads/5866-LENOVO-(IBM)-Bioses-especially-Thinkpad
    3. post your current BIOS on the forum above by first backing it up using this utility: https://fryol.net/r/wp-content/uploads/2013/03/backup_bios.zip
      1. to use this utility, copy the files into C:\ so that C: has _BACK directory in it and then open a command prompt “Run as Administrator”
      2. go to C: (just type C: and press enter) and then cd C:\_BACK
      3. run backup.bat (just type backup.bat and press enter)
      4. you will get a .bin file in that directory, zip it up and upload it using http://sendspace.com and give the folks in forum a link to it along with other details from your BIOS – also, make sure that you tell them that you need wireless whitelisting plus give them a hint to use the “prr” tool for this
    4. if the forum guys tell you to flash from a pure DOS environment, try the following steps, if not, then you just run that utility from Windows and things should go well. For me, Lenovo had locked the BIOS by disabling flashing and I had to flash it from pure DOS environment.
    5. once you get a link back with the whitelisted BIOS, create a DOS bootable USB drive using this link
    6. you have to now flash your BIOS from a “pure DOS” environment, hence you have to create this disk, copy stuff from the archive you got from the forum, reboot into DOS and then run “flash.bat”
    7. just copy the files from the archive you got the link back as (don’t copy extra drivers utilities as some sites suggests – you will need as much memory as possible and copying CD drivers etc. blocks up all that space and you will get failures)
    8. to boot from the USB disk, make sure you have enabled “legacy” boot in BIOS and have selected USB as the first boot device. If you don’t see boot device order, restart your computer again to see it (InsydeH2O supposedly has a bug)
    9. once you boot up into DOS, all you have to do is run flash.bat (or whatever the forum post instructed you to run) and you should see a rewriting of BIOS

Above was all of the software part to get your Wireless card done. What follows is how to disassemble the laptop and get the Wireless card and RAM installed physically.

Physical Changes (Installing the Wireless Card/RAM)

To upgrade the RAM and Wireless card, you have to open up the laptop. It’s pretty simple though, and here are some photographs of how I did it.

      • Get rid of the battery first:
      • Start by unscrewing the left-most screw below where the battery was:
      • The second screw in the middle:
      • And then the right-most one:
      • The uncover more screws beneath those soft pads (notice the direction in which they open) – you would need a tiny flat screwdriver to pop them open:
      • The one on the right to battery opens towards right:
      • The one on the left of the battery, open towards the left:
      • The front ones both open towards the back (or towards the battery):
      • Make sure ethernet cable is detached (if you have one connected) and then slowly work your way to open this thing up. Don’t exert too much force, but keep applying tact to open it. ;)
      • Now in this photo here, you can see that the RAM is on the lower right hand side. The RAM comes off very easily if you use a flat screwdriver to unlock the holding gate (a shiny one). I forgot to take more photos of that, but you can very easily find something elsewhere on the internets (you don’t have to though, it’s easy to figure).
      • Now the wireless card is beneath a black bus wire that needs to be disconnected by opening up another locking gate (black and plastic in nature) towards you.  Please be very careful.
      • Again, use a flat small screwdriver for this and very gently latch open this thing. Notice how the gate is now facing upwards (v/s it was latched down in the previous photo). It’s hinged to the white bank.
      • Once the gate is open, you can hold the bus and drag it out. Gently, very gently. :) See the next photo.
      • As I hold up the bus wire, you can see the wireless card that is connected by two cables – one black and one white (these are supposedly the “antennae” wire) and it’s again “banked” into a black socket.
      • Unscrew the only screw that’s holding this thing in place:
      • After you’ve unscrewed it, it’s very easy to slide this thing out from the black bank (it kind of pops up a little bit already), gently pull it out:
      • Notice how I disconnect the wires, you don’t need any tools to do so, just gently twist and pull them out. They will come off with just the right amount of pull. The following photo shows the “black” one out already (also notice that the black one goes on the left, the white one on right – although it shouldn’t matter a lot).
      • Now, I keep the old one down and take the new one up (notice that my new card has “three” sockets v/s only “two” on the old one). The new one has an extra socket but you can use the ones on the sides only and you’re good.
      • The black one is now being connected to the left most socket, the white one on to the right most socket.
      • There, it’s all connected (gentle pressure puts them in).
      • Slide the card back into the bank.
      • Push the bus wire back in from the top and latch the black gate in.
      • Covering the laptop up is just as easy you pulled it apart, just drive the screws back in after you’ve latched the cover on.

Installing Ubuntu

My objective of having Ubuntu installed was to make sure that I can dual boot into Windows and Ubutu from the GRUB menu with UEFI enabled. A rough outline to keep things in mind follows

    • Download 64bit Ubuntu from ubuntu.com when you want to burn the image to CD
    • Make sure you disable “Secure Boot” in BIOS under the Boot Options menu (use F2 or Fn+F2 key to get into BIOS)
    • To boot from the CD you will have to enable “Legacy Mode” instead of UEFI Mode – also, reboot and go into BIOS again to select Notebook Bay etc. in boot priority above the hard drive
    • Once you get into Ubuntu installation, make sure that you give Ubuntu it’s own /boot and select “Grub” as boot method
    • Ubuntu will load up GRUB but you will not be able to load up Windows since UEFI has been disabled in BIOS, hence go back into BIOS and enable UEFI boot mode
    • Now get into Windows (and you wouldn’t see Ubuntu boot options by the way) and install something called “EasyBCD” which lets you install an EFI image for Ubuntu (it can auto-detect and do so) – there is documentation online if you search about how to use EasyBCD to enable Ubuntu dual booting with Windows
    • You will have to go back into Ubuntu and modify /boot/grub/menu.lst to fix the Windows UEFI boot image there in case it’s not working