A Surefire Way to Blow the Job Interview


This is a short post but worth sharing.  You probably already know this but bears reminding.  We once had a candidate who came in for a pretty competitive position, meaning there were several very good applicants.  He had the traits you would want – great understanding of the position and skills needed to succeed, relevant experience in a similar industry, strong “toolbelt” of skills relevant to the role, seasoned people management experience, and strong communication skills.  Still, he blew the interview and never got an offer.  Why?

He talked about his existing employer in a negative fashion too frequently.  Yes, in some (or many) situations it’s okay to state up front that you are looking for a new situation.  Maybe your company is laying off people left and right, maybe your company got acquired or went through a merger and there is no longer a “fit”, or maybe the company moved.  All of those are legit and you can still paint them in a non-negative light.

This candidate had been at a very successful company for some time, yet it was undergoing change to adapt to the market.  He simply got caught up with what I call the “good old days” syndrome; he couldn’t help himself from bringing up examples of how they used to do things and the new changes just weren’t working.

Needless to say, many interviewers caught on to this and it was enough of a negative where the hiring manager decided the candidate was not worth pursuing.  No manager wants to hire a complainer – most people are great when things are going their way, but how will they react when or if things go south, even if temporarily.

It just goes to show even the smallest things can cost you an offer…so don’t complain about former employers or even portray them in a bad way (even if it is justified).  It shows a lack of common sense, especially in an interview.  Of course, this seems obvious but I have seen this occurrence happen time and time again over the years – I can’t remember a single one of those candidates ever being hired either!

 

IT Salary Information – Highest and Lowest Paying


Okay, if you’re already in the IT/internet/software industry, you might have a pretty good idea of what the various positions pay.  It does vary greatly from position to position, as well as location.  Here are some general guidelines first:

  • Metro areas pay the most, with Silicon Valley (San Francisco to San Jose), New York, and DC (lots of gov jobs) leading the charge.
  • Large, *successful* companies (think Google, Apple, Microsoft, etc.) pay more – there is very high competition for talent and these companies have deep pockets and stock to compensate aggressively.
  • Rapidly growing startups, mid-size, or pre-IPO companies can also pay more handsomely (think Facebook, LinkedIn, Netflix); they compete for the same talent and often outbid their larger counterparts.
  • Finance and trading are the other areas where talented IT folks make a salary premium with large potential bonuses.
  • Non-technical companies usually pay the lowest – they are not competing for top talent across the board and their software/support requirements are usually not as stringent.
  • In terms of relative salary ranking of IT areas, from highest to lowest:  software development roles, operations roles, sales/professional services roles, quality assurance and test roles, IT support or helpdesk roles.
  • Management salaries can vary, but it is not uncommon for senior or principle level engineers to make more than their managers.  Top level tech talent is hard to come by!

Now how do companies actually compensate their staff?  Each company has their own philosophy.  Obviously, every position will have a salary component (some *only* have a salary component).  Others may throw in cash bonuses, stock, options, or other perks.  A quick list below.  Just a disclaimer – the information in this article is based on 2012 and what I have observed (or heard from reputable sources) regarding Silicon Valley based companies.

  • Salary – your salary based on a 40 hour (yeah, right!) work week.
  • Sign-on Bonus – a one-time cash bonus to get you onboard and to offset other expenses or compensation you might be giving up in your current role.  Typically anywhere from 5K-50K.  Managers may get a heftier amount.
  • Stock Grants – more popular recently, these are grants for actual stock shares (not just options).  They typically vest (when you actually own the shares) after some period of time.  It is usually some time function like 20-25% per year.  For example, you may be granted 400 shares that have 25% vesting schedule over four years – at the end of each year of employment you would be given 100 shares of stock.
  • Stock Option Grants – these give you the right to buy some number of stock shares at a predefined price (but must be exercised).  For example, you may be granted 40,000 options to buy the same number of shares at 10 cents each.  If it was a 25% four year vest, you could exercise the option at the end of your first year to buy 10,000 shares, which would cost you $1000 to exercise.
  • Annual Bonuses – these are cash bonuses that could be based on your performance, your department’s performance, your company’s performance, or some combination of the above.  Of course, they’re not usually guaranteed.
  • Commissions – if you are in sales, this is likely a large component of your overall salary target.  There are typically escalating commissions as you sell more.
  • Employee Stock Purchase Program – not really part of salary, but if the company offers and ESPP, it usually means you can buy your company stock at a discount, typically 15% below the lowest market price.  This can be a nice little bonus as well.

Continue reading

IT and Computer Science Jobs


If you look at the job and career discussion boards, there are many questions about information technology (IT) careers.  Two specifically we see a lot:

  • What kind of jobs in IT can I get with a computer science degree?
  • What types of IT jobs are available?

While there are some positions in IT that usually require some working experience, in general the jobs are the same.  As far as the degree, it depends – while it is not require to have computer science or engineering degree, we know of many engineering organizations that do require it (more in the midwest, less on the coasts).  You may already know we think computer science is on of the top college degrees, so it is an advantage over other candidates.

So let’s take a look at some of the positions you can get during your career.

Software Development Careers

These positions are software engineering positions – you will be designing software and writing code.  Computer science degrees are preferred.

  • Software Engineer (aka software developer, development engineer, computer programmer, coder) – gather requirements, design/architect software, write code. You could be working on a small feature in a product or teaming up with others to code the entire backend of a large scale system.
  • Software Architect (aka principle engineer, staff engineer, member of technical staff) – very senior level within the software development organization.  While you may write code, it’s more likely you are architecting systems, writing prototypes, mentoring other engineers, writing white papers, and related senior level activities.
  • Web Developer (aka UI developer) – varies from company to company, you could be on the web dev side doing html, php, javascript, etc. for the look and feel of the product or site.  At other places, it might be java, perl, python, or ruby to code any component used for a website.
  • Release and Configuration Management Engineer (aka build engineer, SCM engineer, tools engineer) – this role can also lie in QA or Operations. You may be doing everything from codebase management (branching, automated builds, etc) to releasing to production.  You need excellent scripting and coding skills since there is a lot of automation work.  Attention to detail is a must.

Operations and IT

The focus is here is on systems management and support – typically large inhouse infrastructure, labs, or production systems.  The scale varies depending on role and company. Again, computer science degrees preferred (especially in large web companies), but there are more folks in IT Ops without them than in development positions.

  • Systems Administrator (aka sysadmin, systems analyst, linux/unix/windows admin, systems engineer) – focused on the health, maintenance and scaling of a company’s infrastructure or server farms. You need to know the operating systems well and have strong scripting skills to automate many repeated tasks.  You may also support applications, databases, networks, etc.  In many companies, this means managing everything not under software development, databases, or QA.
  • Operations Engineer (aka Site Reliability Engineer, systems engineer) – more prevalent in very large web orgs or companies using the cloud.  Your focus is enhancing, managing, and scaling the production applications. Systems admins focus on the hardware and OS, you may be writing software frameworks (monitoring, automation, installs) to support large scale deployments. These are really software developers who enjoy working in production so you need to know OSes as well as development. Can be a stressful position when oncall.
  • Network Engineer (aka network administrator, network analyst) – depending on role, you may need to be a deep expert in networking and related hardware (switches, load balancers, firewalls, etc).  In other roles, it may be more of a simple support admin, who monitors the network, handles upgrades/installs, or just configures devices.  Having network certifications is a big plus.
  • Security Engineer (aka security analyst, information security engineer) – you focus on the overall security of your company’s software (both inhouse written and purchased), hardware, networking, etc. This is a specialized role but most have a strong systems engineering/admin background with a deep understanding of the OS; should understand cryptography.  You should like to dress in black too :)
  • Performance Engineer (aka capacity engineer, scalability engineer) – this role could lie in engineering or QA as well, depending on the company. You’ll be devising systems or methods to measure the scalability of your production system or product.  You should have strong coding and scripting skills; ideally experience with many of the automation tools out there.

Helpdesk and IT Support

These roles are typically staffed by folks without a computer science background but still excel technically – they are great entry level IT jobs and can often lead to positions within operations, QA, or engineering.  These are the classic thankless jobs – you only hear from people when something goes wrong.  Make no mistake, though, these folks keep a company ticking and are very important!

  • Support Engineer (aka Infrastructure admin, technical support admin, helpdesk admin, desktop support admin) – a classic technical support administrator; you handle everything from customer desktop support, technical phone support, troubleshooting systems, and building new systems for employees.  You need to have good customer services skills and a sense of prioritization

Quality Assurance (QA)

QA folks are responsible for the testing and quality of inhouse written software before it is released.  They typically signoff on software before it can go live.  Depending on the organization, QA can be staffed by people with lighter technical skills – however, orgs are increasingly demanding the same computer science background as developers.  As more software is written, there is a need to automate infrastructure so manual testing is no longer required.

  • QA Engineer (aka QA analyst, software tester, test analyst, test engineer, product assurance engineer) – you will be writing test plans and cases by working closely with engineers then executing those cases. In some places, this is all manual (black box testing).  However, most companies now want engineers with a deep understanding of the code so they can write test frameworks and large systems that can crank through test cases in an automated fashion.  You should have good coding and systems skills since you may be managing prod-like test systems. Continue reading