Java Jobs is our new column. Each month we'll focus on different aspects of working with Java - in-demand skills, up-and-coming technologies, hot cities, salaries, rates, and other tips to help you plan and further your career in the Java marketplace. Whether you're a Java developer or manager, you'll find this column full of useful information and tips. We'd also like to hear from you about related topics that you'd like us to cover as part of this column. Please send your suggestions to
The intense demand for highly qualified engineers has not only produced serious challenges for hiring managers but also two kinds of Java engineers.
At our firm we provide skilled engineers to fill our clients' needs. This means reviewing resumes, screening, and qualifying candidates on a daily basis. The two basic types of engineers we come across most often are: those who know Java and those who understand Java.
Engineers who know Java may have a strong background in database-centric applications with skills in SQL, Oracle, or PowerBuilder. They may have done a lot of front-end or UI development.
Aware of the strong demand (and the high rates and salaries paid) for those with Java skills, these engineers will typically pick up a Java book, take a Java course, or "teach themselves Java."
"I know Java, it's just another programming language," is a comment we hear all the time from engineers with about six months experience "working with Java."
The know-Java engineers enter the job market asking for $100 an hour or $150K a year, and staffing agencies are often quick to place them on a contract or full-time position with a major client.
One thing is certain in the fast-paced, high-stakes, high-tech world. Hiring managers don't put out a call for engineers unless they needed one two months ago. They need an expert who can hit the ground running, solve their problems, and get the job done right.
The know-java engineer often gets on a mission-critical project and (having oversold his or her Java skills) becomes quickly overwhelmed and can't do the job. This all-too-familiar scenario is a sure-fire career killer.
The know-Java engineer has now burned bridges with the hiring manager (whose precious time and budget have been wasted), the client company (who tracks these incidents in a database), the recruiting agency, and other co-workers on the project.
A series of short-term contracts (or worse, short-term, full-time jobs) listed on a resume is a serious red flag for anyone who's hiring, and it's hard to get a good reference from a manager you burned.
While it may take only a few weeks to learn the syntax of Java, it takes a lot of in-depth experience to understand it and know how to deal with critical issues and avoid pitfalls that are exclusive to Java.
Engineers who understand Java typically have an extensive OOP background, most likely with C++, and a strong grasp of object-oriented methodologies, development techniques, and design patterns. They have Java programming experience (typically more than two years) and have worked with EJB or J2EE among other skills, such as CORBA, distributed network computing, and multithreaded programming.
As a mid- to senior-level engineer, you're not being paid a high hourly rate or salary to simply know the language of Java, you're being paid for your expertise and experience in avoiding and fixing critical problems that come up in the development process.
The understand-Java engineer has experience in developing scalable, robust, high-performance, and large-scale applications. He or she knows what can and can't be done with Java. If there's a problem, he or she knows where to look and how to fix it swiftly and efficiently.
Hiring managers, faced with aggressive deadlines and budget constraints, often make the mistake of trying to cut corners by bringing in engineers (from rent-a-programmer shops at an "apparent" low cost) with minimal local experience, technically and work-culture wise.
Too often these managers end up paying for a know-Java engineer who's read the book and knows the syntax of the Java language, but is not experienced enough to look at the bigger picture. That relatively low contract rate of $75 an hour doesn't seem like such a bargain when after two months the manager has wasted $24,000 on an engineer who couldn't get the job done.
But what if I'm a know- Java engineer who wants to become an understand- Java engineer? How do I gain the experience I need without overselling myself and getting in over my head?
There are a few smart steps you can take to make the transition from junior to mid or senior Java engineer:
- Don't fool yourself. Realize what skills you have and what you need to learn.
- Look for a full-time position in a Java environment of a large company and plan to spend about two years there.
- A large company is much more likely to hire someone who's a bit junior and invest in training you.
- Bring all the skills and value you have to the company, and get all the Java development and object-oriented programming experience you can from them.
- Or try to find a long-term contract (six months or more) in a Java development environment offering your services at a reduced hourly rate.
- Make yourself a great value proposition for the company - you'll be getting an even greater long-term value from the experience you'll gain.
- Remember that your goal is not just to know, but to understand Java.
Bill Baloglu is a principle at Object Focus (www.ObjectFocus.com), a Java staffing firm in the Silicon Valley. Prior to ObjectFocus, Bill was a software engineer for 16 years. He has extensive OO experience and has held software development and senior technical management positions at several Silicon Valley firms.
Billy Palmieri is a seasoned staffing industry executive and a principle of ObjectFocus. Prior to ObjectFocus, he was at Renaissance Worldwide, a multimillion dollar, global IT consulting firm, where he held several senior management positions in the firm's Silicon Valley operations. [email protected]