Category: Software engineering career tips
How to Prevent Crying During Your Technical Interview
A recent blog post Technical Interviews Make Me Cry by Pamela Fox tells the personal tale of a technologist and conference speaker who gets a Skype/Stypi interview for her dream job, becomes stumped on a technical question, breaks down in tears, almost abandons the interview, fights through it, and eventually gets the job. Everyone loves a happy ending, and it was courageous for the author to tell her story so publicly as a service to others. However, I think some of her takeaways and the advice she provides can be improved upon.
So how can we prevent crying or freezing up during a technical interview?
Let’s start with the author’s advice. She offers that interviewees should prepare for the format and not just the material, and writes
Why You Took The Wrong Job
The decision to join a new employer and the process leading up to the move can be fraught with emotional attachments, irrational fears, and incomplete information. Since job searches in technology often include self-interested third parties of varying influence (e.g. recruiters, founders, hiring managers) acting within a highly competitive hiring environment, the job seeker can be pushed and pulled in several directions, sometimes based on half-truths and distortions. The result of the job change (or the decision to refuse an offer and stay put) in many circumstances is buyer’s remorse, where regret can be felt rather quickly.
First let’s look at the more common reasons that candidates regret taking a new job, and then explore one rather simple solution to avoid the mistake.
Recruiters Are Pretty (and How to Find One)
You would need to be blind not to notice that tech recruiting firms are now tending to hire young and attractive female rookie recruiters, which is an obvious strategy (similar to the so-called “booth babes” at trade shows) to get the attention of the predominantly male tech audience. Some of the LinkedIn recruiter profile photos border on racy, and perhaps sad. I should confess here that I too use a LinkedIn profile photo, which is probably best described as smug (included below, for science).
Since I started blogging I have been regularly approached by readers living hundreds of miles away asking if I know a recruiter in their geography that might be able to help them find new work. For every ten people that hate on recruiters, there are at least a couple that see value. Many tech pros complain that they are only being approached by the aforementioned 22 year old crowd with an average six months of recruiting experience, sending canned messages with a pretty LinkedIn profile photo. How much solid career advice can you get from a new liberal arts or PE grad who was waiting tables until a couple months ago? Very little, and I should know – because that was me 15 years ago (except Economics and bartender).
I deal with internal recruiters that work at my client companies, but readers want intros to people who do what I do. These internal recruiters only represent their company, whereas agency recruiters like me can provide several job opportunities. Instead of just replying with “Sorry, I don’t really know anyone in your area”, I thought I’d provide some thoughts on methods to find someone you will want to work with in your job search.
Job Hopping For Geeks
I first wrote about the topic of job hopping back in 2007 and I feel the advice I gave then is still relevant in 2013, although the perceptions and attitudes of most hiring managers have evolved significantly. The post in 2007 was partly inspired by a past client (financial trading firm) that would only accept résumés of software engineers that were employed at their current company for a minimum of seven years. Today, it seems more likely that my clients would discourage me from submitting candidates that have had too long a tenure. Times have changed.
As a refresher, the term job hopping is used to describe a history of somewhat frequent moves from one employer to another after spending little time working for a company. Some use the one year mark as the measure of a hop, but multiple moves before a second or third anniversary should also earn you the label with most traditionally-minded recruiters and managers. However, being tagged a job hopper in the tech industry is not nearly as troublesome as many would want you to believe.
A survey of 1500 recruiters and hiring managers last year had the following results:
“According to 39% of recruiters, the single biggest obstacle for an unemployed candidate in regaining employment is having a history of ‘hopping jobs’, or leaving a company before one year of tenure. 31% consider being out of work for more than a year as the greatest challenge in regaining employment, followed by having gaps in your employment history (28%).” – Bullhorn survey
Unfortunately, this result was misinterpreted by an article on job hopping that appeared in Forbes earlier this year. Let’s see if you can spot the subtle difference.
“Nearly 40% of recruiters and hiring managers say that a history of hopping is the single biggest obstacle for job-seekers, according to a recent survey conducted by recruiting software company Bullhorn.” – Forbes.com
Did you catch the difference? The Forbes article calls job hopping the biggest obstacle for job seekers, while the Bullhorn survey clarifies that job hopping is the biggest obstacle for unemployed candidates. One could agree that having a job hopper reputation while being unemployed is a tough combination, but anecdotally I’ve found that employed job hoppers have a much easier time. After all, job hoppers are clearly skilled at getting hired.
Why is it necessary to make this distinction between job seekers and unemployed job seekers? Because unemployment acts as a sort of multiplier or catalyst towards the “unemployability” of the job hopper, which explains why almost 40% of managers and recruiters would essentially call unemployed job hoppers the least attractive group. It is also useful to point out that in high-demand labor markets with relatively low unemployment rates such as the market for software engineering, the job hoppers almost always have a job.
The data also seems flawed for another reason. 39% cite job hopping as the biggest issue, while 31% point to lengthy unemployment. One would think that the gap between these two numbers should be much greater. In my experience, a candidate that has been unable to get a job for over a year probably has more serious marketability issues than someone who was able to get hired twice in a year. There could be countless extenuating circumstances to either situation, of course.
A few thoughts on job hopping and the alternative.
Extreme longevity at one company can be viewed as a detriment in a job search (worse than job hopping)
20th century hiring managers viewed your 15 years at COMPANY as a sign of employee loyalty, while 21st century managers feel that if you were any good another company would have hired you away by now. I typically consider extended stays (>10 years perhaps) with one employer as a potential challenge to overcome for a job seeker in today’s tech market. Making a series of moves that allowed you to progress your career and skills will often be viewed more positively than stagnating in one role for an extended period.
Don’t get fired
Job hoppers that lost jobs due to a documented and significant reduction in force or company closing shouldn’t have too many problems, as they aren’t viewed as true job hoppers (rather victims of circumstance). Those that made multiple moves to pursue better opportunities will only be negatively impacted if they are not staying in jobs long enough to improve their skills and to accomplish something valuable. Having a pattern of being fired, even only twice, is where the major employability problem lies for job hoppers.
If your performance is a known issue and you resemble a job hopper, find a new job before they have a chance to fire you.
Have at least one or two stints worthy of highlighting
One of the problems with making quick moves is that you often don’t have enough time to do anything worth putting on a résumé. As an exercise for writing this post, I looked back at the résumés of the candidates I’ve placed in the past two years. The results were telling.
Only about 5% of the candidates I placed had been in their current job for more than three years at the time of placement, and most had been in their past two jobs for less than two years each. Almost all of them, however, had an impressive stint of three to six years at a company within the last decade with obvious accomplishments. The sample size isn’t significant enough to call this a study, and my client base tends to be small companies that are probably less likely to exclude candidates solely based on some jobs per year metric.
It appears that candidates who have had two or three jobs over a short period of time will be forgiven for job hopping if they had at least one stable stretch in the recent past. Just as a former league MVP should be able to find a spot on a team’s roster even after a couple sub-par seasons, candidates that have somewhat recent success stories will overcome the stigma of job hopping.
Job Tips For GEEKS: The Job Search DRM free ebook is available for
$9.99 (reduced to $6.99US in December 2013) on most platforms. See the book’s page for details and a free sample.
Why You Can’t Work For Google
Many new entrants to today’s technology job market are obsessed with the handful of high-profile companies that set the trends in the industry, and the next generation of software engineers seem to think that the only companies worth working for are Google, Microsoft, Apple, Facebook, Yahoo, Twitter, and Amazon. Software development has become both a celebrity culture (where companies and their CEOs are the stars) and an oligarchy in the eyes of recent graduates and teens, who set their sights on employment with this small number of firms. Young developers in foreign countries appear to be particularly susceptible to this hyperfocus on a tiny segment of the hiring market. If you don’t know how widespread this is, I’d suggest a visit to Reddit’s CS Career Questions section to see what people are asking.
When Yahoo changed their remote work policy the web exploded in debate around the value of remote employees, and the more recent news around Google dismissing GPAs, test scores and answers to Fermi questions made many tech companies reconsider their hiring procedures. Not a day passes where a piece on one of these companies doesn’t hit the front page of most major news sites. A cottage industry has erupted with authors and speakers providing guides for aspiring engineers to create résumés, land interviews and answer technical questions to get jobs specifically at these companies. The focus seems to be less about becoming skilled and more about being attractive to a specific subset of employers.
These companies are glamorized amongst budding engineers much like Ivy League and top-tier schools are with high school students, and the reason you probably won’t work for Google is the same reason you probably didn’t go to MIT. Because they are highly selective, and they simply can’t hire everyone.
Of course some of you can and perhaps will work for Google and the other companies listed here, just as some of you may have attended top universities. But the majority of
you us won’t – and that’s OK. Follow your dreams, but be realistic about the outcome.
So here comes the good news! Beyond Google, Microsoft, Apple, Facebook, Twitter, Yahoo and Amazon, there are hundreds of awesome places to work that are highly regarded by engineers the world over, and most people outside the industry (and many inside) haven’t heard of most of them. Experience with these shops, much like the above list, will get you noticed. Companies like Netflix, LinkedIn, Salesforce, eBay and GitHub are well-known but not typically mentioned in the same breath as the top celebrity firms, though they certainly could be. I’d venture that most college CS majors haven’t even heard of 37signals or Typesafe, where smaller teams are doing work that is regularly recognized by the engineering community.
And again the bad news. You probably won’t work for these companies either. For most of the world, these are still reach schools that employ relatively few. Although they may not be held by the general public in the same esteem as that list up top, they are incredibly selective, and most in the industry will view the difference between this group and the Googles as incredibly slim.
And now for some more good news. Beyond the lists of companies above are thousands of great places to work that I guarantee you have never heard of. These may consist of startups that fly under the radar or smaller specialized technology companies that serve a niche market. They could be the development groups for major banks or 25 year old mom and pop shops that have an established customer base and solid revenues. Game developers, ecommerce sites, consulting firms, robotics – the list goes on.
In almost every city, this group is the one that employs the overwhelming majority of engineers. This is where most of us will likely end up – a company that you will surely need to describe and explain to your parents and significant other.
In the city where I focus my business (Philadelphia) and run our Java Users’ Group, we have some Googlers and I’ve known engineers who have worked for Amazon, Yahoo, and Apple. And I know many many others who either turned down offers or likely could have joined those companies, but chose instead to work somewhere else. Just as some students may reject the offer from the top-rated school to stay closer to home or to accept a more attractive scholarship package, many of the world’s top engineers simply don’t work for Google or Facebook, or anywhere else in the Valley for that matter.
Philadelphia is by no means Silicon Valley, yet there is a fairly robust startup scene and a large number of software shops that are doing valuable work. Over the past 15 years I’ve worked with hundreds of Philly companies to hire engineering talent, and 99% of these places would be unknown to the typical developer. I almost always have to describe my clients to potential candidates, as most of these shops have not built a reputation yet, and these are firms ranging from 20 to perhaps 20,000 employees. And the vast majority of them are great environments for technologists where developers work alongside at least a few top engineers that could (and some that did) pass the entrance requirements for the Googles and Facebooks of the world.
All the great engineers in the world aren’t in the Valley, and they don’t all work for Google. This fact is obvious to most, but fewer than I’d expected and hoped. If that is the goal, go after it. The rest of us will be here if it doesn’t work out.
Job Tips For GEEKS: The Job Search DRM-free ebook is available for just $2.99 – more info here.
Why You Didn’t Get The Interview, Part II
In August 2012 I published a blog post Why You Didn’t Get The Interview, which received a good bit of attention from readers and was republished a few times (most notably by Lifehacker). Of course one article could not list every possible explanation that an employer or recruiter might use to discard a résumé, so I decided to revisit the topic once again. This is not intended to be a comprehensive list, but rather an addendum to the previous post that may help explain a lack of response to your job search.
No submittal content – Online applications often consist of several fields and check boxes that don’t always give job seekers an opportunity to express interest or differentiate themselves. However, when you send a résumé via email or are provided some space within an online application to craft a custom message, you are foolish not to take advantage. Simply sending a résumé without any supporting information about your experience or interest in the job comes across as lazy or aloof, and can give the appearance that a job seeker is simply blasting résumés indiscriminately (perhaps even in an automated fashion). SOLUTION: Tell the employer at least one or two things that drew your attention to the job and company.
Multiple applications to the same employer for vastly different roles – Sometimes I will open my inbox and find an email from a job seeker about one job that could possibly be a fit, and then find another four or five emails from the same applicant for other jobs that are not remotely connected to the candidate’s experience. This applicant may have received some attention if he/she only sent the one semi-targeted application, but the additional blind stabs have too many negative implications. It typically signifies either a lack of self-awareness regarding qualifications, immaturity, or desperation. SOLUTION: Before submitting your résumé, check several of the company’s listings to make sure that you are applying for the one or two jobs that best fit your experience and goals. If you have a strong desire to work for a specific employer, sending a targeted application to one or two listings is much more effective than spamming your résumé to all of their vacant slots.
Many small red flags – My original article last year referenced 14 fairly obvious reasons that job seekers are not interviewed, but often it’s not that simple. Many times a résumé/application package will contain a handful of items that would not be a problem when considered individually, but when combined add up to a rejection. The recruiter or hiring manager will feel that too many special circumstances would have to occur that make the candidate’s hire unlikely. Perhaps a candidate has a slightly elevated salary expectation, requires relocation assistance, is minimally qualified, and lacks any easily identifiable positive indicators of talent or ability that stand out from others. An applicant with only one of those characteristics would likely be considered, but the aggregate picture makes it too much of a longshot. SOLUTION: There is no real fix to this. You could always try to explain what could be perceived as a red flag. For example, if you are relocating to a specific area, make it clear why you are looking in that specific market to avoid being viewed as someone open to jobs worldwide. Displaying some level of interest or passion for the employer could also help overcome objections and get you a shot.
Personal reputation and your employer’s reputation – It shouldn’t surprise anyone that if you apply to firms where people either know you or are connected to those that do, a decision to interview will typically be based on how these contacts feel and talk about you. However, your employer’s reputation may also come into play here as well. If a particular company has interviewed multiple former employees of your firm without much success, chances are they will not waste time interviewing another. As a recruiter, it is fairly common for companies to tell me “Unless they are outstanding I’m not overly interested in candidates from COMPANY, as we see many and have not had any luck.” Your company’s reputation is more likely to work in your favor if you are employed by a firm known for having talent, but it seems the trend to discriminate against employees of certain shops continues. I wrote about this a bit in a past post regarding discrimination by startups against workers from large enterprises. SOLUTION: Keep your personal reputation in mind when dealing with co-workers and particularly when leaving jobs. Minimize stints at employers that have a negative reputation in your market.
Inconsistency – This can be the result of discrepancies between a résumé and cover letter/application, between a résumé and LinkedIn profile, or just something fishy in the résumé itself. If you changed professions more often than Barbie (impressive list) or have travailed up the corporate ladder and come back down multiple times, your application will raise suspicions. Candidates that list titles progressing from CTO to CEO and then down to Junior Developer will be scrutinized. SOLUTION: There isn’t anything you can do to change the past, but explanations could go a long way if you left an industry to pursue a passion. Make sure all of your online profiles match your résumé details before sending applications. Try to use job titles that reflected your actual duties if you worked for a small firm and had an inflated title. Even if you were CEO or CTO of your dorm room software company, it may not be helpful to list the job that way.
“Meh“ – Your qualifications and history are virtually identical to the others in the stack of résumés received. You may have met what was listed on the job spec, but so did everybody else. This is of particular importance for jobs where it is expected that most applicants will have similar qualifications, such as entry-level positions for new graduates or jobs that list highly generic specifications. SOLUTION: There has to be something different about you that you can add to give some positive spin to your candidacy. Review the requirement again and try to find an area where your background exceeds the expectation, or a specific experience you have that others probably don’t.
My ebook Job Tips For GEEKS: The Job Search was recently released and is available for
$9.99 (reduced to $6.99 in December 2013) on iTunes, Amazon, Barnes and Noble, Google Play, and Kobo. I can provide a PDF version for sale by request.
When To Leave Your Programming Job
I am often approached by programmers that are thinking about leaving their job but want to discuss to see if they are making a wise move. These conversations are quite sensitive in nature and I do not take them lightly, as the decision is rarely easy to make and will have a lasting impact on the programmer’s career and livelihood.
The thought of potentially leaving a job is often accompanied by the fear of being labeled a job hopper. In my experience, far more programmers tend to overstay their welcome and later experience difficulty with limited career prospects than those that move jobs too often. As I’ve written before, some positive flow in career moves is expected and even desired by hiring companies.
Technologists often rely on the more common and obvious signs to leave their employer (company product failures, layoffs, or reductions in pay/benefits) as primary motivators for making an exit. One could argue that experience at a failing company can be infinitely more valuable than time spent at a highly successful shop. Waiting for those alarms to sound, which could be false alarms, is a mistake for your career.
When should you think about leaving your job?
You are clearly the ‘best’ programmer at the company and/or have no teacher or mentor available – Many people may get this wrong due to overconfidence, so you need to assess your skills honestly. Even if you acknowledge you are not the best, do you have access to others that you can learn from that are both able and willing to share their knowledge with you? Your company may have hired loads of great talent, but if these individuals are too busy to help or not interested in dialogue you are no better off than working alone.
The technologies employed are static and make your skills unmarketable – The extended use of dated, proprietary, or very specific technologies can kill your marketability. If the firm is still using very early releases of popular languages or frameworks this could be a good indicator. Multiple years in a stagnant tech environment is much worse than the same tenure in a shop that consistently improves their tools.
You have accomplished nothing – This is often not your fault. Perhaps your company is consistently delaying releases and never seems to deliver on time, where the problem could lie in the development process or management decisions and not on tech talent. If you look back on your stay with the company and can not point to any significant accomplishments (given a reasonable amount of time), consider the reasons why.
You are underpaid with no upside – There are at least a handful of justifications to accepting compensation below market rate. The ability to work with great people is probably the #1 reason, with learning a valuable skill a close (and related) second. If you took less money with the expectation of a future positive that just hasn’t panned out, it’s time to look at your options.
You are consistently passed over for interesting projects or promotion, and your ideas are not considered – If you are rarely given the plum assignments and not even a candidate for higher responsibility roles, the company simply doesn’t value your service. The firm feels you are doing enough to keep your job, but they do not see you as a true long-term asset. Keep track of how often you volunteer for a new venture and the company response.
You are no better off today than you were when you joined the company – The phrase ‘better off’ can take on a few meanings. Traditionally one might use better off to refer to improved financial standing (raises), but you should add more qualified as well. If your skills, marketability, and compensation have not improved after a reasonable amount of time, you need to question why you are still there.
You see little change in what you do – A consistent and small set of responsibilities for long durations tends to be a career killer. Working on one small part of a very large project/product is usually the culprit.
You have no inspiration – Many domains in software development might not be all that interesting to you personally. In those situations, the technical challenge at hand or the opportunity to do something truly innovative may trump the lack of industry interest. Building a website for an insurance company might not be a dream, but scaling for millions of users could make it fulfilling. If you are finding no value in the work you do and lack any inspiration, there is probably something out there that will get you excited.
Job Tips For GEEKS: The Job Search ebook is now available in most ebook formats. Find out more here.