All social groups seek the company of people who help them reach their goals. For example a network-gaming oriented group will generally be composed of people with profiles compatible with the purpose of the group: gamers. On the other hand, people with generally incompatible profiles are rejected. This becomes a problem when someone still wants to join with an inconsistent group. The only solution for that individual is to adapt and align their goals with those of the group, or find another group compatible with their current profile.
In the case of a social group, this process is more or less unconscious. In a company, it's the same thing, but with the aggravating circumstance that you generally cannot choose. If you are not aligned with corporate goals, you will eventually pay the price. On the other hand, if you understand that the closer you get to the corporate goals, and show that you will help achieve them, you will become indispensable.
This type of person was recently named the Linchpin in the latest book by Seth Godin (which has the same name). Here is his description:
There used to be two teams in every workplace: management and labor. Now there's a third team, the linchpins. These people figure out what to do when there's no rule book. They delight and challenge their customers and peers. They love their work, pour their best selves into it, and turn each day into a kind of art.
Linchpins are the essential building blocks of great organizations. They may not be famous but they're indispensable. And in today's world, they get the best jobs and the most freedom.
This book is really worth every penny, and if you like this article, I strongly suggest you to buy it as it is full of similar content.
In this article I will tell you about a simple and effective way to become indispensable: make sure you do not create new problems, and on the other hand, that you solve a lot. Become a problem solver.
The trick in organizations is to identify what is "creating a problem" and what is "solving a problem". For example it is not necessarily creating or resolving bugs. It's evident that if you create many bugs, you're creating problems, even though when you solve them, you are solving problems. I will focus on another kind of behavior that can be considered, generally unconsciously, the same as the act of creating problems. Some problems that you are not directly responsible for will still be associated with you just because you report them. Or worse, you don't report them. Here are examples of behavior that will be seen by your management as problems that you create (or bring) while this is not necessarily the case:
- You complain to your hierarchy about your work environment.
- You indicate that your application has serious performance issues.
- You report that the components suite that you purchased is not suitable for your needs.
All these examples are your problems until you talk to your manager. They become the problem of the manager from the moment you bring them to him. Even if you are not directly responsible for these worries, you'll be automatically associated with them. The average manager has no time to deal with new problems and he will try to avoid anything related to them.
The first tip is to manage them yourself as much as possible and thus to take responsibility. You have everything to gain with this attitude. Because in this case, you do not create the problem, you are really solving them! Very few people have the ability to take responsibility for such decisions. But we can develop that talent by doing. When you face a problem, ask yourself the question "can I myself, or with the help of my colleagues solve this problem?"
Unfortunately in many cases this is not so easy. You will simply not be able to adopt that attitude for organizational reasons, such as hierarchical approval processes. If you can't be the decision maker, you must pass it to the management. Faced by what seems to be a great constraint, there is a very simple technique that is used by the indispensables and almost always overlooked by others: report the problem and your recommended solutions.
Too many people limit themselves to reporting the problem and then are inevitably associated with it. When reporting the possible solutions you are associated with them and then credited for what you've become: a person who solves problems. Someone absolutely essential to keep in the organization in contrast to those who create the problems and who it would be better to get rid of. The more you act this way, the bigger your circle of influence grows. Your opinion will have more and more value. While you are improving your company, you'll also improve your own working conditions.
Just like the basic concept, the technique is extremely simple to remember. When you encounter a problem that affects you or your company, do the following:
- Identify possible solutions to the problem.
- If you think you can solve the problem directly, without the advice or approval of a tier, do it without hesitation.
- You cannot (yet) make the final decision? Then report the problem with the solutions obtained in step 1.
Examples repeating the above examples:
- You complain to your hierarchy about your work environment: if the problem can be solved with a purchase, specify the references of the desired material as well as all associated costs. Don't forget to explain how you are affected and how it impacts the company.
- You indicate that your application has serious performance issues: don't excuse yourself, they don't care. Recommend potential architecture changes instead or at least an external expert that could come up with more advice.
- You report that the components suite that you purchased is not suitable for your needs: propose a few alternatives that you have tested and always give your personal opinion (what you would pick if you were the boss).
Additional tips to write an effective problem/solution report:
- Be convincing by using an appropriate response structure (see this article).
- Write your email so your boss just has to write the word yes or no in his reply.
- If you have many problems to report together with your solutions, send them in one mail only, even if it's more logical to have separate threads in case of discussions. The average boss will generally try to avoid discussions.
- Focus on the problem and the solution and only that. Avoid talking about people when possible.
Becoming indispensable to someone is a lot about solving his problems and having the same goals. Companies are seeking problem solvers. Become one of them.
The design of a resume, just like its content, is very important because a well-designed resume will improve your chances of getting selected from among hundreds of others. This post will give you a few tips on how to design an effective resume. For general guidance on how to create a good resume, there are plenty online resources that will do it better than me. Here I’ll give you extra tips that may help when you are specifically seeking a job as a software developer.
I believe the objective of a resume is not about getting the job. Not directly. The primary objective of the resume is to get selected from among all the others and get the interview. Getting the interview is a slightly different objective than getting the job. Getting the job offer is the objective of every interview. Then comes the final objective of getting that contract, after the negotiations. That’s a different way to see things and you should design your resume to get you past all the filters between your CV submission and signing your contract.
Getting interviews, getting offers and getting the contract are three steps that will be discussed on this blog in the coming weeks. Today, let’s focus on getting those interviews.
Understanding the process for hiring a programmer
To understand why it is important to have a well-designed CV, you must understand what it is like to hire new developers for a company. When a company identifies a need or position, it is described and then published. They publish it on their website, on specialized job boards, and in many cases, and this is one of the specifics of IT world, they hire a recruitment company specialized in IT.
These professional recruiters are usually wrongly called “head hunters”. Head hunters are generally involved in hiring very high profiles such as CxO. The kind of recruiter we are dealing with are processing a lot more data, talking to many more people and therefore can’t use the same soft methods.
At their level, there are 2 major filters involved. One is simple computer software, usually poorly written. The other involves very busy humans: the recruiters themselves. How those recruiters work is important to know because you must create a resume that will prevent you from being ignored by their system.
First, the recruiters need to process hundreds of requests in the very vast & rich domain which is IT. Recruiters generally don’t have any IT background. If they did, given the actual demand they would be working in an IT company for a better salary. They are usually people with more sales oriented profiles that are willing to learn the high level concepts of their customer’s businesses. This problem, coupled with the fact they have hundreds of thousands of resumes in their database make it almost impossible to avoid the use of a search engine to do a pre-selection based on keywords. That's our first filter.
Hopefully, they don’t blindly export the results and mass mail their customers. They carefully check every occurrence beforehand. Here the level of professionalism varies between recruitment companies. However they all have something in common: they are very busy. A study based on eye tracking technology determined that a resume is read in less than six seconds and they look for six main things: name, current company & title, previous company & title, previous position start and end dates, current position start & end dates, and finally education. The rest of the data was almost completely ignored. Once your CV is picked, the final step usually involves a quick chat with you to assess your availability & confirm their understanding of your skills.
Once your resume passes that second filter, there is at least an additional one. That’s the person responsible for the recruitment for the company that wants to hire someone. If you are lucky, it’s the team leader of your future team, but it’s not uncommon to have one or more intermediates in between depending on the size of the company. Each of them is a human filter you need to pass. In addition to everything that interests the professional recruiters, your future employer will look for additional details that will be discussed later.
When no professional recruiter is involved, you go directly to the company. It's what I call the royal way. The royal way is not necessarily a good thing. It usually involves an HR department you don't want to deal with and/or potentially more documents to be processed by the hiring company.
The overall system you need to pass through, simplified for the purpose of this article, looks like this:
Many of you should now understand why when you send your resume to 50 companies, you receive so few responses (positive or negative).
Let’s go through each filter and see what we can do about it.
The professional recruiter
At this level, we saw that we have 2 filters: the search engine and the actual busy recruiter.
The software is the easiest filter to pass for a developer. Despite that, I see many CVs that seem to have been designed to be stopped by them. As I said earlier, they are based on keywords and without google science. Therefore you must ensure that every single piece of technology you know well is specified on your resume. I’m still receiving offers for ColdFusion gigs despite the fact that word appears a single time on my resume and in a mission from year 2000! Yeah that makes me think, and you should be thinking too, about removing every unwanted keyword that would get CV selected for projects that you are not interested in!
Don’t hesitate to specify a technology multiple times if used at different companies. As a developer we naturally aggregate that in an area called skills. While it would be a good idea to have such section in your resume, it doesn’t help you to get enough visibility. Repeating keywords for every professional experience will put emphasis on your experience in a particular technology and make it more visible to the recruiter. If you have 5 years experience and worked only 1 year as a java developer, it’s like you have only one year of experience in that particular technology. Don’t abuse those keywords. Be sure to specify tools you have actually used. I usually recommend that you put the words in bold for the technology you have mastered particularly well. On the other hand, remove any irrelevant keywords. I know you learn COBOL at school, but it’s already 5 characters too much on your resume.
The number of pages in your resume doesn’t matter much. What matters however is the first page. When you do a search on your favorite search engine, you rarely look at the second page. Ensure that the essential information is there on the first page. Here is a list of things important to the recruiter that need to be there. There are other things that are important to the hiring company that will be added in the next section of this article. Here we focus on what the recruiter will look for:
- Keep contact information short.
- Choose a good title for your resume. Common mistake is to put your education there. I usually recommend putting “Software Developer” which is the perfect description of a software developer
- Start with a short description of your expertise. It should not be more than 2 sentences. Don’t be too precise there. You’ll get into details later.
- List your professional experience first, from the newest to the latest. Be sure that the 2 latest are present on the first page. Each experience should have a start & end date, a position title, the company name, a brief description of the project (3 to 5 sentences, easy to read) and of course the list of technologies you used.
- Don't abuse titles. They are deduced by the description of your mission. They will be discussed in the interview as well.
- Put all languages you speak on the last page. If it’s important for the recruiter, he will look there.
- Avoid including your picture. The average human will unconsciously judge you based on how you look and you want to leave that for the interview. A recruiter will put even more emphasis on it because he will try to anticipate the judgment of his customer.
Gaps & job hopping
All this advice is far from being enough. You have already polished your CV to seduce professional recruiters, now you need to ensure that you don’t have anything in it that will be a blocker. The recruiter is playing his reputation, so he will systematically eliminate any resume that seems too dangerous. Two things indicate you are a potential danger (even if it's not true): gaps and job hopping.
Start & end dates of your experience are very important. Gaps can have many explanations. As a coach for developers seeking for jobs, I see those gaps very often. When I ask what the candidate did in between I get all kinds of answers and surprisingly, the explanations I get from the candidates are actual extra bonus points instead of the expected negative impact. If you took one year out to start a company (even if you failed); put it in your resume. If you took one year to visit Asia with your family; put it in your resume. If you went back to college; put it in your resume. A single sentence explaining the gap is more than enough.
Gaps are not the only disqualifying thing related to dates. Job hopping can be a serious problem too. Having too much job experience in a short period of time can be seen as instability, and therefore a potential problem to deal with in the future. The hiring process, not counting the internal training every newcomer has to do, is a very costly process for the company. Therefore, it's easy to understand why every employer is looking for (very) long term collaboration. The only way to soften how this can be perceived is ensuring that you put lot of visibility on contributions you made for each company your worked for. Make it evident that hiring you will provide value, even if you don't stay there for years. Please note that while job hopping is generally seen as a bad thing for employees, the same is not necessarily true for freelancers.
The hiring company
From multiple hundreds of matching resumes, the employer can still receive dozen of CVs on a daily basis. Believe it or not, many of them match their profile requirement. It doesn’t mean every profile fits the position, it means that there is more work for the hiring company to filter them out (again, since the professional recruiter has already pre-filtered them). He doesn’t want to spend the whole day reading that pile of paperwork, especially when the person recruiting is a different person than the person who is actually in need of that additional resource. Another common situation...
More importantly, nobody has the time to interview dozen of developers. So a massive filtering will occur just for the interview. Your primary objective is to pass that very strict filter and be in the first selection, just like you want to be in the first page of a google search. You want to give your prospective colleague the chance to meet you. In addition to all the tips specified above here are some that are usually overlooked.
You solve problems, you don't create them
First if you have a technological blog, participate in developer communities, wrote a programmer’s book, or all of the above, that’s something you want to specify on the first page of your resume. This will give you extra bonus points and many recruiters, especially if they have an IT background, will give lot of value to that.
Secondly, the company wants to know how you will help them solve their problem. The best way to show you are the guy they need is to write a short description of the problem you solved for each experience listed. Don’t limit yourself to describe what you did, but write why and how.
I developed a new backend system for their e-commerce website using ASP.NET and SQL Server.
How boring! Instead put yourself in the shoes of the recruiter and write something like:
Developed their new backend system allowing agents to process an increased number of orders and provided them with tools to improve communication with their customers. Facing aggressive deadlines & heavy pressure we heavily relied on extreme programming and scrum. We exploited the possibilities of ASP.NET & SQL Server to the limit.
Of course, everything you write must be true. You will have already read on the many other resources about building a great CV that telling the truth is the golden rule.
The texts above have been invented for this article, but having worked on these with dozens of developers, it’s generally possible to get amazing descriptions just by thinking a bit. By extension, be sure to avoid giving unnecessary facts. By removing useless information, you free up some space to put what is relevant to your future employer.
Miscellaneous & hobbies
Knowing what is relevant is difficult and one area that is often overlooked is miscellaneous or hobbies. Too often, it is completely removed for the purpose of a clearer CV. I believe it is a mistake because it is a great opportunity to tell them a bit more about you and influence the decision to get you into an interview. It helps the recruiter to understand how the candidate manages his life but more importantly, it gives information on his soft skills. I will take two real life examples.
The first wrote “sports, computing & movies”. When you talk a bit more with him about that, you discover that he runs intensively and often competes in marathons. Marathons? Yeah, that guy knows what effort is doesn’t he? I also recommended that he mentioned what kind of movies. I bet it is sci-fi ones, and I bet it would interest many other recruiting developers
The second one had “scouting” in the hobbies he listed. After few questions I actually discovered he was a chief scout, managing dozens of kids every weekend and in summer camps. That’s someone I need in my team!
Which aspects of your personality do you need to say more about and which are important points for recruiters? Ask yourself the question “what am I doing when I’m not programming?” and put everything you think would interest the recruiter. Don’t minimize your skills. Instead, put emphasis on them, while staying as humble as possible.
Your resume should demonstrate you are a problem solver and should avoid any indication that you are going to create problems. It’s a document that is supposed to sell yourself so there is no shame on putting emphasis on every good thing in you.
Summary of the tips:
- The first page is the most important one. Polish it.
- Use appropriate keywords, and highlighted when appropriate.
- Fill the gaps with relevant information.
- Anything that differentiates you from the lambda developer should be on the first page.
- Write attractive experience descriptions focused on your problem solving abilities.
- Don’t underestimate what you do outside programming. Use it to tell more about your capabilities and soft skills.
As you build your career, you must make choices. One of the most difficult choices to make is in deciding which technologies to invest in. It is not unusual to see consultants who have invested years of their lives in a technology that will eventually be abandoned by the market or its designer. It is virtually impossible to predict the future at this level and the best strategy is to learn how to learn, and be a programmer, regardless of the technology or language. Above all it is always better to invest in things you enjoy doing. On the other hand there are simple ways to get an idea of what is in demand right now and act accordingly. Simply check for the skills that companies are currently seeking. The law of supply and demand - get it?
One effective method to get answers is to go on large sites offering jobs such as jobserve.com. At the time of writing this post, joberve.com offers no less than 14.626 jobs in IT, just for the United Kingdom! If you add other countries like the United States, France or Germany, the figure explodes. The ideal is to use a site that is popular in your region or country.
Browsing the latest offers of employment will give you a pretty good idea of what is being sought. The more criteria you add, the more accurate will be your answer. So if you can only work in the London area, there is no need to search in San Francisco. It is pretty obvious, the nature of IT projects developed in these two cities can be very different.
This research can be tedious. Fortunately, another site that offers jobs provides a faster way to determine the technology application, but at some cost. This is Careers 2.0 by StackOverflow and has an amazing technology tag feature.
I was able to obtain figures in under 5 minutes using the following technique: I created a sheet in my favorite spreadsheet. I typed each tag that I found, one after the other - for the latest 25 bids only (1 page) initially. I then aggregated the occurrences and found myself with a list of technologies and the number of times each was mentioned overall. The following result is for the latest 25 or 50 job offers near London (occurrences are in % for comparison).
I compared 25 to 50 because it is well known that the more data you have, the more accurate the result you have. With the 25 latest job offers, I got a total of 120 tags, reduced to 56 after aggregation. When I took the latest 50 job offers, I got 235 tags reduced to 89 after aggregation. You can immediately see without having to do much calculation that the latest 25 job offers is more than sufficient. Adding more offers did not change the result significantly, keeping a satisfactory validity for our purpose: having some indication of what is in demand.
Now that we have our results for Careers 2.0, can we generalize them (external validity)?
Of course not! And this is the main issue. There is an obvious website bias involved. Careers 2.0 provides us with a convenient way to test technologies thanks to their amazing tagging system, but companies posting on it are not representative. It has only 83 job offers for the London area at the time of the test (12th of July 2012). Jobserve.com on the other hand has 8,657 jobs available for the same criteria.
Careers 2.0 is growing fast, so we can expect that in a few years it will be the reference for programmer’s job vacancies and will provide more accurate data. For now, use them as an indication and nothing more. Until then, be sure to develop your ability to learn and give priority to technologies you love working with rather than just the ones that are currently in demand. Success almost guaranteed!