Oct 24, 2007

How to choose from multiple Java/J2EE job offers?

In Java/J2EE career forums, interview candidates often ask how to choose from multiple job offers? This is not an easy decision to make and often this dilemma is made worse due to not asking the right questions about the position or role at the interview. Interviews are two way process where the interviewer(s) assess the suitability of the candidate to the position or role while the candidate assesses the suitability of the position or role to their interests and career aspirations. Asking the right questions can not only help you make an informed decision to choose the job of your dreams but also can help you negotiate your remuneration and market your skills & strengths more effectively based on the answers.

Some of the questions you can ask are:
  • If I am successful, what type of projects will I be involved in and what type of technologies/frameworks will I be exposed to? Will this role involve liaising with the business users and/or mentoring opportunities?
  • What types of candidates succeed in your organization?
  • Is this a mission critical project? How big is the team? What is the budget for this project?
  • What are the key tasks and responsibilities involved with my role? Does this involve new development, enhancement or support work?

How would you go about choosing from multiple job offers? It is not an easy decision to make but some of the things to consider are:
  • Remuneration and other benefits: This is an important criteria but not the only one. You need to look long term. [E.g. weight = 30%]
  • Opportunity to learn and/or work with popular, emerging and sought after technologies like (e.g. Spring, Hibernate, JSF, Ajax4jsf etc) and opportunity to acquire new skills like integration technologies (e.g. JMS, Web Service, SOA, BPM, etc), new frameworks, business skills, team leading and/or mentoring skills (i.e. one can learn more from mentoring others). By acquiring emerging and sought after skills, you can stand out from your competition and by getting more interview calls next time you start hunting for job [E.g. weight = 25%].

  • Type of project (new project, enhancement to existing project, support): You tend to learn more on new projects. [E.g. weight = 15%]

  • Brand, company culture, business acumen etc. Brand does matter - it helps you to get more interview calls next time you start hunting for job - but again what skills & experience you will be acquiring matters more. You may get more interview calls but may find it difficult to get through your interview stages if your skills are not enhanced through good hands-on experience. [E.g. weight = 10%]

  • Type of role and opportunities (mentoring role, liaising with the business, travel etc): Would this role have active involvement with business users etc? You can learn more by mentoring and also will look good on your CV. [E.g. weight = 5%]

  • Type of organization (Insurance, Finance, Software house, multi-national etc). In some types of organizations like finance, insurance etc you tend get better remuneration. In some software houses and consultancy roles you tend to acquire wider range of skills. [E.g. weight = 5%]

  • How comprehensive the interview was. The more comprehensive the interview the better chance of working with high calibre staff. [E.g. weight = 5%].

  • Location and lifestyle choices. [E.g. weight = 5%] .

Total weight should be 100%.

Note: Weights are for illustration purpose only and may vary from individual to individual.

You can analytically work it out as follows:

You can give some weight to each of the criteria as shown above. The weight needs to add up to 100%. Now say you have offers from company A, B and C. You give some points out of say 10 to each of the above criteria and then multiply each point by the weight (i.e. importance to you) and then add them all up. If the difference is negligible or not conclusive enough then go with your heart. Otherwise you know which one(s) to choose or pursue with salary negotiations.

Related read: Are you feeling stagnated?


Oct 13, 2007

Have you got 4-year Java/JEE experience or one year repeated 4 times?

Some employers and recruitment agencies seem to put more emphasis on quantity (i.e. number of years of experience) than quality (i.e. caliber of the candidate). Some candidates are more pro-active and passionate about their achievements, skills and widening their horizons while the others get into a comfort zone performing repetitive tasks.

So the point I am trying to make is that the recruitment process (at least the initial screening) should be qualitative not quantitative. For example:
  • Initial assessment should be via phone screening, written tests with coding, and aptitude test of all the applicants. Many good companies do this.
  • Followed by face to face technical & culture fit interview of the short-listed candidates. Written code can be reviewed in addition to other technical interview questions.

Q. What are the benefits of the above approach?

  • Lieing or exaggerating: Candidates won’t be tempted to lie or exaggerate in their CVs.
  • Nature of the experience: Employers can potentially identify who has 4 year experience and who has 1 year experience repeated 4 times in the earlier stage of the interviewing process.
  • Effective CV: High calibre candidates won’t be penalized for lacking marketing skills i.e. failing to write effective CV. I can hear some of you saying thatisn't that important part of any job hunting process? Yes that is correct but CVscan lie or exaggerate also look at my next point.
  • Large vs. Small Company? CVs can be assessed not based on achievements but based on the number of years of experience and the type of the organization (e.g. large multi-national). It shouldn't matter, which company you worked for but what matters is what you did there and your achievements. For example: My first Java/J2EE role was in a large financial institution (i.e. a stock exchange) where I was screened via a technical test, a technical interview and a HR interview. The type of project I worked on and skills I gained there was more like repeating 1 month 6 times. So I decided to move on after 6-7 months (lucky me it was the Internet boom time). I moved on to a small software development house where I was fortunate enough to work with some of the top-notch Java/JEE developers & architects. It was a mission-critical project for a telecom client and was like acquiring 2 years worth of skills & experience in 6-8 months. This assignment not only boosted my career prospects but also my confidence. But when I applied for my future jobs, my experience with the large finance company (i.e. a stock exchange) stood out to my prospective employers & recruitment agencies. That is when I decided to change my CV to more skills & achievements driven.
  • Peaking at the right time: Some employers and recruitment agencies put more emphasis on your past academic (e.g. grades in your degree, high school etc) achievements, which is not a bad thing but I have worked with talented Java/JEE professionals who peaked at the right time in their career. These are the candidates who get through their schooling and degree as an average student and develop a passion for their chosen career. These candidates will be pro-active, hard-working, studious and take pride in their achievements.
Finally, in my opinion all come down to whether employers want to hire the top-notch Java/JEE professional or someone who can just do the job. This can make a big difference to the quality of the code written, ability to meet deadlines and achieving the project goals. For example there are companies like "ThoughtWorks" who take recruitment process very seriously to hire the top-notch Java/JEE developers.

This little blog is not going to revolutionize the recruitment process. So how do you stay ahead of your competition?

  • Acquire the sought-after skills through outside work activities like self-taught projects, open source contribution, and voluntary work.

  • Get a good handle on the 16 key areas of software development.  If you rely only in your on the job experience alone, it will take time to master these key areas. The best approach is to proactively learn these key areas via good books and blogs and apply them at work.

  • Learn to market your skills, achievements and experience that you had acquired through on the job and outside work by blogging and  adding them to your CV. You can learn more about the importance of a technical blog at Why must you have a technical blog?
  • Prepare for your interview. Brush-up/learn/familiarize yourself with Java/JEE fundamentals and FAQs. Don't be afraid of the stringent interview process. The more thorough the interview process, the better opportunity you have to work with some of the best developers in the industry. The job interviews are not just a technical contests to see who gets the most questions right. It is all about judging your technical skills, experience, soft skills, attitude, and cultural fit.