The Engineering Interview

A large part of my job involves interviewing perspective candidates, specifically front end engineers. I’ve seen all types, from the social powerhouse to the introverted coder. Candidates that have come in knowing exactly how the process goes, and candidates that come in having not talked about themselves in three years. The more successful candidates follow some basic guidelines, and almost always at least get themselves on site for the balance of the process.

Confidence and Communication

Being confident is easily one of the most important qualities. Nothing sets off more flags to me as an interviewer than a candidate that isn’t capable of talking about what they do, how they solve problems, and generally just explaining their attack plan when it comes to a new project.

At LinkedIn we call this your technical communication. Make sure you can explain what it is you do all day and how you would help a new engineer get up to speed. Documentation and communication is vastly important when you get to the codebase size that some of the giants run at.

Domain Knowledge

Engineering, and specifically front-end engineering, has virus like evolution. New libraries, adaptations and frameworks are springing up by independent developers weekly. Most of them can be ignored, but there are some that should grab your attention. Be able to talk about new technology and how you are constantly finding a way to be a better version of yourself. It’s very easy to get complacent with your position at a company and stop furthering your education.

Practice Coding

This is obviously the most important skill. You’re going to code. This is an engineering interview. Research the stack as best you can, notice some things they’re using and some improvements you could make. There’s a chance I built some of the things you’re going to be mentioning, so I wouldn’t come off as critical as much I would inquisitive. Practice as much as you can and make sure that your practice is being evaluated by your peers. The one excuse I absolutely cannot stand is when a skill is listed in the job req, listed on your resume, and you inform me that you haven’t used it in years and aren’t comfortable answering questions in it.

Ask Questions

Not just any questions, not what my morning through afternoon looks like, not what the benefits are, and not what kind of lunch we serve. Ask about how you can make an impact and how can you work on XYZ. Talk about something with the product why / how a certain feature was developed. If you can end up with question where I don’t have a direct answer for, I guarantee it will be positively noted.

I know a lot of these seem like they would be obvious, but you would be surprised how many people don’t come close. They let arrogance get the best of them and end up with a short interview and a lot of radio silence.

Free and Easy VirtualBox IE 7, 8 and 9 Setup

Simple and easy way to set up testing IE on OSX.

Install VirtualBox for OSX. See Oracle’s download page here.

Open terminal locally on your computer, enter the following:

curl -s | bash

This install could take some time, it’s installing IE 6 – 9. Make sure you have enough space on your HD, all said and done this requires about 10GB.

If you would like to install just one of the binaries instead of all 4, they’re listed here:


curl -s | IEVMS_VERSIONS="7" bash


curl -s | IEVMS_VERSIONS="8" bash


curl -s | IEVMS_VERSIONS="9" bash

Once install is complete on all, or your select VMs, boot up VirtualBox and you’re good to go. Should you be prompted for a password, the default password is Password1. After 30 days, VirtualBox will complain about running out of a license. You should be able to revert back to the original snapshot within VirtualBox and avoid that entirely. You will lose anything you’ve changed there, but there really isn’t a viable alternative.

jQuery Benchmark Tests Between Selector Methods

There are several different ways to select, child, select and traverse the DOM to find an element, its parents or siblings. Arguably, it’s whatever is easier to read since a lot of these queries are done one off and stored in a variable cached for later.

For example:

$('#someID .other-class > li[3]');


$('#someID').find('.other-class > li')[3];

One being a bit more readable than the other. However, when it does come down to raw iterations on a larger scale. jQuery’s find method proves to be the fastest given context.
jQuery Selector Benchmarking

Again, this would only really have an effect when running at a larger scale. This is definitely something to take into consideration when optimizing site speed and trying to keep memory costs low.

You can run the benchmark tests for yourself on JSPerf, here.

The Five Minute LAMP: Linux, Apache, MySQL, PHP

The basic LAMP structure, I set it up continuously on just about every new box I spin up. Up and running in five minutes, using apt-get.

Set Root Access

sudo su -

To start with, ssh into your vps or if you’re working locally – skip this. You’ll need root access for this whole process if you’re not ssh-ing as root.

Install Apache

apt-get update
apt-get install apache2

Let’s start with apache, in your terminal, type the above

If you’re working locally, you can test this later in your browser at http://localhost or if you’re working remotely, enter your server’s ip address.

Install MySQL

apt-get install mysql-server libapache2-mod-auth-mysql 

MySQL is next.


Run the MySQL install.


Followed by the secure installation to set your preferences

This will take you through a series of questions on configuring the server. Very self explanatory, if you don’t set a root password now you can take care of it later.

Install PHP

apt-get install php5 libapache2-mod-php5 php5-mcrypt php5-mysql

Lastly, the PHP installation.

vim /var/www/html/test.php

Now lets create a dummy test.php file to make sure our server works. The dummy file you saw earlier was just the default index file apache creates at install.

<?php echo('test'); ?>

Once in vim, or the editor of your choice, enter some PHP to make sure it’s working.

service apache2 restart

Since much of the installation occurred after installing apache, you may need to restart apache.

Visit the host via the methods we talked about earlier and append /test.php. You should your test message print out, and we’re done!

Pointless Emoji’s for Everyday Coding

Completely useless, utterly pointless, but inherently necessary for proper development. The emoji cheat sheet. This is all the available emojis within Github’s commit / pr infrastructure. goes Open Source

Github’s new popular editor goes open source. A coffee script foundation with deep integration of Chromium and Node have followed in the footsteps of Emacs and Vim to make the best things open source. Their entire repository is opened, with pull requests already coming in.


The Best Packages for Atom

Github’s shiny new sublime clone is garnering interest rather quickly. It’s a bit bare bones in it’s standalone version, but install these packages to ramp up usability.

  • Editor Stats: Just like it sounds, view click stats and mouse movement
  • Color Picker: Color display modal for quick selection
  • Visual Bell: Visual cue for beep noise, good for those who listen to music at work
  • Project Manager: No drag and drop folder sets, Sublime-esqe project management
  • Tabs to Spaces: Easily convert all tabs to spaces / spaces to tabs in a document
  • Highlight Line: Highlight the current line you’re on
  • Asteroids: For obvious reasons
  • Autocomplete+: Auto completion for methods and properties
  • Monokai: Monokai color theme

If I missed any important ones, I’m definitely interested in expanding my list.