This post will be the beginning of a technical series that will help “developers” with the basics on keeping their development environments clean and updated. Enjoy!

Oh those in-person technical interviews. Gotta love them. You walk in, you’re greeted and it seems each founder tells the same old story about a dream to solve a problem. I’m sure most of you know what I’m talking about, once the b.s. is over the fun really begins. In-person technical interviews are a way for the prospective employer to test your technical chops, nothing wrong with that. It’s also a way for the person interviewing to see how technical the company really is, or if it’s just all smoke and mirrors.

Two weeks ago, I applied for an open position at a small “marketing boutique” that also does both in-house web and mobile development. I answered the Craigslist ad, wrote an amazing e-mail, cover letter and attached my resume. I also included live links of web work that I’ve done and within the hour of sending my application I got a call for a phone interview. After speaking with the founder for about 30 minutes he asked me if I would be able to meet him at his office within the next few hours. I guess I nailed the phone interview so I agreed to meet in person that same day.

Once I walked in the office I waited for a few minutes while the founder was getting his notes ready and setting up a macbook pro in the conference room for me to show him my technical abilities. After everything was setup, the founder walks over and greets me with a firm handshake and ask’s “show me what you know!”

I sit down and I noticed that the macbook pro is mirroring the desktop to an HDTV through airplay via the apple tv. I thought this was pretty cool since I’m the type of person that likes to do more of a visual type of interview than just sick and cram around on a 15″ laptop screen.

I was also told that the macbook pro belonged to the main developer and he was out to lunch. Even better, I got to see the development environment of the “main developer”. I’m always curious to see the tools other developers use.

When asked to show live examples of my work I always begin with the basics! I like to show sites that I’ve actually hand coded in ‘ole HTML, CSS, JavaScript and PHP, nothing fancy. I then move to explain why I decided to do them in (HTML, CSS, JavaScript and PHP) the pro’s and con’s, and why I didn’t use a more “modern” approach (CMS, Bootstrap, etc). Remember this was for a position in a “marketing boutique”, I said the key phrases budget, timeframe and SEO. Not that a CMS site can’t accomplish the same but most first time small business owners have a budget between of $1,200 to $2,000 for a site, If you’ve worked in an agency environment you’ll understand what I mean.

Fast forward, I then moved onto CMS sites that I’ve worked on (WordPress), I always like to login into the backend and show the plugins I like to use and why I use them. Again cover the basics, be proud of your work and own it. By covering the basics and knowing your way around the more relax you will be in the interview room. After the small chitchat I then got hit with the standard technical questions.

The following question-set lead me to write this blog post.

Founder: Here at “marketing boutique” we are proud of the technical work we do, we use industry standard tools and practices.

  1. Can you tell me what is git? And, the main differences between git and SVN?

Me: Really? “Own thought”

  • Great question, git is a distributed version control system and source code management (SCM) system with an emphasis to handle small and large projects with speed and efficiency.
  • The difference between git and SVN is: (a. git is less preferred for handling extremely large files or frequently changing binary files while SVN can handle multiple projects stored in the same repository. (b. git does not support ‘commits’ across multiple branches or tags. Subversion allows the creation of folders at any location in the repository layout. (c. gits are unchangeable, while Subversion allows committers to treat a tag as a branch and to create multiple revisions under a tag root.

Before he asks another question, I quickly tell him I can show him an example. I immediately notice that the “main developer’s” macbook pro does not have Alfred installed, really dude?! I try to find iTerm and nope, iTerm is missing too. I open Terminal and no Oh-My-Zsh? Just for fun I type the following into Terminal:

brew update

Homebrew is not installed, amateur hour (thought to self). While the founder is patiently waiting and looking onto the HDTV screen, I then type the following into the Terminal:

which git

Terminal returns:

/usr/bin

I was beginning to see the smoke and mirrors here. The following command prompted me to begin to question the boutiques technical ability:

git --version

Terminal returns:

git version 1.8.4

When I saw that I asked, how often does your dev team use git? The founder responds, we use it daily. He then asks if there is a problem? I reply, yes “marketing boutique” is not a fit for me.

I stand up, I thank him for his time and I walk out. Shitty move? No. Now I can sit here and speculate, after all it was just an interview. Or maybe the “main developer” did a fresh install of OS X Yosemite and the macbook pro was not ready for the dev environment. Who knows, but I do know this I went to the interview ready and prepared for anything. Don’t waste someone’s time with the same b.s. story everyone tells, “we are solving technical problems, we have the best technical team, etc.” When even the basics are not even covered.

My next couple of blog posts will be a series on how to properly setup your development environment on a mac. Setting a global git version, installing homebrew, Oh-My-Zsh, node.js, grunt, susy, sass, heroku toolbelt and setting up ssh keys for github. I’ll be covering the basics for all “developers” out there, ha.

Keep your shit clean!