2008-08-05

Why Do Many Java/J2EE Resumes Fail To Make An Impression?
Resume is a key marketing tool in promoting your services. Most resumes fail because they
  • Fail to highlight achievements.

  • Fail to use action verbs and uses ordinary phrases without being results oriented and credible.

  • Markets him/her as just a techie (not as a well-rounded candidate) .

  • 5-7 pages packed with irrelevant and trivial information fulfilling HIS/HER needs NOT the employer’s needs.

  • Starts with “responsibilities included” in many places.

  • One size fits all resume. The same resume is emailed or reprinted as required. This is wasting an opportunity to present you in the best possible way.

  • Important information is scattered throughout the pages in the resume.

  • Starts with a standard format: Leaving out the objective, especially, if you are a novice or making a career change.--Elaborate career objectives.--Education details listing every course details and certificates.--Employment history listing every trivial and non related task.--Large skills list and failing to include relevant and highly sought after skills.

Want to learn more more about writing effective Java/J2EE resumes, then try http://www.lulu.com/java-success


2007-12-02

Are technical skills alone or just being a quiet achiever
sufficient to boost your career?

The answer is no. The technical, analytical and problem solving skills must be complemented with:

  • Effective marketing skills to promote your skills, knowledge, and achievements along with ability to negotiate your promotions, salary or contract rates. Now days it is a rarity for management to pro-actively recognize or reward their staff unless there is an immediate vacancy to fill. If you cannot determine your net worth, how the management can?

  • Effective communication, interpersonal, presentation, mentoring, being a team player and business skills. I have seen candidates with technical, analytical and/or problem solving brilliance getting either sacked or failing to make a mark in their careers due to lack of one or more of the above mentioned skills.

There are myriad of books and online articles that can help you on the second bullet point, so let me elaborate on the first bullet point based on my experience and observations. If you want to market a merchandise successfully, you must know the merchandise. The same is true in marketing personal services in Java/J2EE.

When and where do you market your technical, analytical and problem-solving skills?

  • Team meetings and design/technical sessions.
  • Pro-actively providing either verbal or written recommendations or suggestions on improving the quality of the software, development process, fixing design and/ or development flaws etc.
  • Demonstrating your work and achievements via team/stake holder presentations, conferences, training, hand-over sessions and/or road shows.
  • Casual chats/conversations.
  • Code review sessions.
  • Interviews and CV.


Note: Take care not to over do and not to point fingers or undermine others. You should have your facts and know what you are talking.


What is required to effectively market your technical, analytical and problem-solving skills?

  • Ability to look at the big picture and drill down as and when required.
  • A good understanding of the key areas of software design/development.
  • Ability to look at things not only from a technical perspective but also from a business/stakeholder perspective.


In early stages of my Java/J2EE career I was in a position to impress my team leads and architects by pro-actively pinpointing some of the critical performance issues, transactional issues, memory issues and threading/concurrency issues and more recently on design flaws, scalability issues, software development process and best practices. I call these the key areas in my book entitled “Java/J2EE Job Interview Companion”. Let me illustrate with some Java/J2EE related examples:


Technical:

  • Struts action classes and Servlets are not thread-safe.

  • Valuable resources like database connections, file handles and sockets must be closed properly.
  • Throwing an application exception will not rollback transactions in EJB.

  • Web search functionality that can return large result sets should consider using true pagination.

  • Improper implementation of equals(..) and hashCode( ) methods can cause indeterministic behavior that is hard to debug/reproduce.


Analytical:

This requires ability to think outside the square and analyze (i.e. What If scenarios) and think of exceptional conditions.

  • What if an exception is thrown or customer cancels the transaction? Will the transaction be rolled-back?

  • What if 100 concurrent clients access this search functionality? Will it be thread-safe? Will it scale well without any performance or memory issues? [Consultants/contractors spend lot of time fixing these types of problems]

  • What if these critical messages are published to the live system with some inappropriate and/or sensitive messages? Do we need an approval or work flow process to prevent any human error?
  • What if a JMS message is lost? Do we require a guaranteed delivery mode? Or is performance more important than reliability? Can this message be consumed by more than one consumer?

Problem Solving:

This requires ability to identify and fix root cause of the problem.

  • “Account” objects are not getting added properly to HashMap. A possible cause is that the equals(..) and hashCode() methods are not implemented properly in “Account” class.
    Cannot retrieve the stored objects from the HashMap. The possible causes are that the equals(..) and hashCode() methods are not implemented properly or mutable objects are used as keys.

  • CPU usage is very high. Possible causes are an endless while loop, never ending recursive method call, spawning a new thread every time instead of using a thread-pool, over-working the thread scheduler, memory starvation, improperly sized heap memory, inefficient Garbage Collection (GC) or GC alogorithm inefficiency etc .

  • OutOfMemory exception is thrown. Possible causes are not enough memory allocated for the working of the application, unintentional object retention causing the heap to grow and grow, not making unused objects grabge collectible, memory leak in the JVM etc.


The analytical and problem solving skills can be business requirements or use cases related in addition to being technical.


When do you engage in negotiations on your promotions/remunerations?

Everyone wants more money, but it is something entirely different to be worth more!. Your value is established entirely by your ability to render useful service or ability to induce others to render such service. Before you even start to negotiate your salary be sure that you are worth more than you now receive.

  • After having proved and promoted your abilities and worthiness (say 6 months to 1 year).
  • After having an alternative job offer that is more attractive but you are happy where you are.
  • After having multiple job offers if you have decided to move on. Do not rush in to accepting the first offer you get while you have more interviews to attend or waiting on other interview outcomes.



Note: Study the market rates, demand for your skills etc. Do not be unrealistic.

So, shape up your Java/J2EE career by learning and applying the key areas & core-concepts and subsequently selling your personal sevices more effectively.

2007-10-24

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), 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. [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.

2007-10-13

Have you got 4-year Java/J2EE 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. calibre 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 and/or coding, aptitude test of all the applicants.

  • 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 that isn't that important part of any job hunting process? Yes that is correct but CVs can lie or exaggerate also look at my next point.

  • Large vs. Small Company? Also 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/J2EE 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/J2EE 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/J2EE 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/J2EE developers.

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



  • Learn to market your skills, achievements and experience through an effective CV. Also never under estimate the power of networking. Keep in touch with your former colleagues. Free CV guide

  • Acquire the knowledge, skills and experience in sought after Java/J2EE related technologies & frameworks. Highlight those skills and experience in your CV. For example, I saw an online banner advertisement saying "Java/J2EE developers required Spring & Hibernate a plus." Free tutorials on sought after technologies/frameworks


  • Get certified if they are well received by your prospective employers in your country or if you thing it can add value to you. Do your research first.



DZone

2007-05-09

Java/J2EE CV or Resume tips:

A CV or a Resume is an essential marketing tool in your job search or career progression. When writing a CV look at it from your employers' point of view in order to stand out against the competition (i.e. other candidates). Preparing effective CV presents a real challenge due to length, which can make them boring and result in important information being buried or lost in a long document. As a result your CV should be concise, your top skills and experience should be prioritized in the first or upper most section of your CV, well organized with the following sections: Profile, Achievements, Experience & Skills and last but not least your CV should be nicely formatted.
Refer sample Java/J2EE Resume PDF download.


Profile: Convey your technical expertise in Java/J2EE . Don't list all the skills here (you can include the rest in the skills section).Just pick your major strengths like design experience, team lead experience, mentoring experience etc and highly sought after and relevant experience like Spring, Hibernate, EJB, JSF etc. Also can mention the relevant industry experience like finance, insurance, telecommunications, software house etc.

  • 4 years of experience in design/development of Java/J2EE (Sockets, EJB, RMI,Servlets, JSP,JMS,JDBC,JNDI etc) based systems.
  • 3 year experience in financial sector and 1 year in insurance sector.
  • 2 year working experience and excellent knowledge in Spring, Hibernate and JSF.
  • Experience in Websphere, MQSeries, and JBoss
  • Solid background in Object-Oriented analysis and design.Good at various design patterns (GoF, J2EE patterns etc) and UML.
  • Excellent knowledge of XML, SQL, XSL and Web Service.
  • Experience in Test Drive Development (TDD) and agile methodology.

Achievements:
Convey your achievements in Java/J2EE, which had benefited the application, department or organization. In addition to technical skills bring your personal qualities like passion, ability to communicate effectively with technical staff as well as business users (i.e non-technical), problem solving skills, ability to think in high level as well as drill down to detail, ability to handle pressure, ability to recognize and respond to objectives of an organization, ability to work in a team as well as independently etc. You can also mention your teams' achievements in addition to your specific contribution.

  • Migrated a poorly performing and outdated application to Spring, Hibernate, JMS and JSF based system for MQR Banking Ltd.
  • Identified and fixed performance and transactional issues for Fine Australia Technology.
  • Reduced the monthly commission Java based batch runs from 75 hours to 18 hours at Sure Insurance Corporation .
  • Mentored junior developers, provided technical guidance and motivated them to meet the tight deadlines at Online Banking Ltd.

Experience:
List your current and previous posts (Most recent first) and how you applied some of the major strengths and highly sought after skills in Java/J2EE. List all the major projects you have worked on and your specific contribution. Also mention where you applied some of the key areas like design, fixing performance issues, concurrency issues, transactional issues, memory leaks etc. Also be aware not to turn this section into only technical stuff. In addition to technical areas mention any team lead experience or mentoring junior developers, how you managed to meet a tight deadline?, how you worked well with the business users? how well you applied your knowledge? etc.

Refer sample Java/J2EE Resume PDF download for experience examples.


IT Skills: List all your current & relevant Java/J2EE related skills. This section is not only vital for the employer but also for the employment agency to match your skills with the employer requirements.

Refer sample Java/J2EE Resume PDF download for skills summary


Finally never settle with the first draft and always find ways to keep improving your CV. Spending enough time in your key marketing tool is definitely worth it. You can get more ideas and tips from the Java - personal & J2EE - personal sections in the Java/J2EE Job Interview Companion. Also you can Google for Java Resume or Java CV for plethora of sample CVs, ideas and tips.

http://www.dzone.com/links/javaj2ee_career_companion.html
http://www.dzone.com/links/book_review_javaj2ee_job_interview_companion.html


2006-11-02

Java Interview Tips:

Tip #1

Be honest to answer technical questions, you are not expected to remember everything (for example you might know a few design patterns but not all of them). If you have not used a design pattern in question, request the interviewer, if you could describe a different design pattern.

Tip #2

Every body is nervous for interviews and being a little nervous is natural. But if you are too nervous then you can overcome this by preparing for your interviews and by treating each interview as a free technical/behavioural training course. Have an attitude that even if you are not going to get the job, you are going to learn something good out of it. If you go with this attitude you will put yourself in a win/win situation and you might really get the offer. If you take this attitude you can learn a lot from your interviews. Also never think that you have to answer all the questions correctly. Do not get put off by a tricky or a difficult question. What really earns you a job is the combination of your knowledge + experience + attitude

Tip #3

Where possible briefly demonstrate how you applied your skills/knowledge in the key areas like design concepts, transactional issues, performance issues, memory leaks, best practices etc as described in the book Java/J2EE Job Interview Companion along with your business skills and interpersonal skills. Find the right time to raise questions and answer those questions to show your strength in the technical key areas, business and interpersonal skills.

Tip #4

Tell me about yourself or about some of the recent projects you have worked with? What do you consider your most significant achievement? Why do you think you are qualified for this position?

Above mentioned interview questions are very common and the interviewer will be mainly looking for 4 qualities:

1. Passion.
2. Ability to understand potential failures (transactional issues, concurrency issues, design issues etc).
3. Ability to see things at a high level as well as drill down when required.
4. Ability to think dynamically to deliver solutions to complex problems and ability to analyse “what if ” scenarios (What if I want to support a non Web client?, What if I want to support other types of products? etc).

Tip #5

What was the last Java related technical book or article you read? Which Java related website(s) or resource(s) do you use to keep your knowledge up to date beyond Google? What do you think of some of the emerging technologies/frameworks like AOP, IOC, Spring, Tapestry etc? What recent technology trends are important to enterprise development?

The interviewer will be mainly looking for your:

Curiosity to learn: How eager you are to learn new things and keep up to date with the technology.

2006-10-12

Java J2EE Job Interview Questions with Answers

Learn the Java/J2EE Core Concepts/Key Areas with an easy to understand questions and answers approach.

The best way to make an impression in any organizations is to understand and proactively apply and resolve the issues relating to 14 Key Areas covered in this book.

Lulu books Top 100 best seller.

Free Java J2EE Interview Q&A PDF download.


  1. Language Fundamentals

  2. Specification Fundamentals

  3. Design Concepts

  4. Design Patterns

  5. Transactional Issues

  6. Concurrency Issues

  7. Performance Issues

  8. Scalability Issues

  9. Memory Issues

  10. Exception Handling

  11. Security

  12. Best Practices

  13. Software Development Process
  14. Coding


This book will assist all Java/J2EE practitioners to become better at what they do. Usually it takes years to understand all the core concepts and design/coding issues when you rely only on your work experience. The best way to fast track this is to read appropriate technical information and proactively apply these in your work environment. It worked for me and hopefully it will work for you as well. I was also at one stage undecided whether to name this book Java/J2EE core concepts and solving design/coding issues or Java/J2EE Job Interview Companion. The reason I chose Java/J2EE Job Interview Companion is because these core concepts and design/coding issues helped me to be successful in my interviews and also gave me thumbs up in code reviews.