Since we started writing this column, we've gotten lots of inquiries from engineers who want to know the best way to reach the level of senior Java server-side engineer.
The trouble that many engineers have in breaking through to this level typically has to do with a lack of key training and the right experience, and, most important, a résumé that doesn't show a clear career path.
Some of this may have to do with a lack of solid career counseling in school. Perhaps aspiring engineers don't seek advice at an early enough stage, or the schools don't know enough about rapidly changing technologies in the real world.
For starters, a typical résumé for a junior or mid-level engineer shows that the person may not have the right degree. An EE, for instance, is less effective than an MS in computer science for a Java server-side engineer.
Next, the person may take the first attractive offer without realizing the consequences.
They may work with languages like Visual Basic, Visual C++, or other MS languages.
After a year or two in their first position, they often move to unrelated technologies by taking a job that seems attractive at the time. They may be working with COM, DCOM, MFC, or Visual C++, which doesn't really give them the right experience. Or perhaps they're working for a large company building internal tools or software with Java but not working on large, scalable, enterprise projects.
With four or more years of what appears to be good, high-tech engineering experience, this person now wants to be a senior Java engineer. But by taking jobs as they come along and picking up whatever technologies are used at each company, this person now has a patchwork résumé that has no cohesion or logical progression to it.
An analogy might be the house contractors who start out building decks, move on to garages, then remodel kitchens. Now they want to be senior lead contractors, building the whole house or even a new development. But what construction company will hire these people to do a job they have no proven experience in?
Although we are talking about smart, talented people here, it's very hard to convince hiring managers that these candidates with the patchwork résumés are the senior Java engineers they're looking for. Even if they get an interview, they won't pass the technical screening.
It's always an uphill struggle.
During the recent high-tech gold rush, companies were settling for less than senior people for these positions. The gold rush is over. Nobody's settling. It's harder now.
So what's a better approach? If you're just starting out, look at your career. Decide what you want to do. Then map out a plan and follow it. What's your ultimate goal? If it's to be a CTO or a "big gun" server-side Java engineer, follow this path:
Another key to this kind of senior experience is having had full life-cycle ownership of a significant portion of a major project. Many engineers have been individual contributors or worked on a team for a large project, but personal ownership and responsibility through a full cycle is key.
- Get a BS or MS in computer science at the best school you can get into. Make sure it's a school that's known for its computer science department, like Berkeley, Stanford, MIT, Purdue, Michigan, or Carnegie Mellon. Managers want to see that you've gotten comprehensive computer science training at a well-known school.
- Make sure that the program offers you training in distributed computing and object-oriented systems. The school should also offer you a solid foundation in software design and construction for large-scale systems along with OO principles.
- Remember that it takes several years to reach the senior level. When hiring senior engineers, managers look for eight to 10 years of server-side engineering experience, including C++, Java, and OO technology. With only six or seven years of experience, the person needs to be extremely talented to land a senior position.
But what if you're in mid-career with substantial commitments and it's not possible for you to go back and start from scratch?
Take as many C++ and Java courses as you can, try to get Java certified, and get your hands on as much OO experience as you can. You may have to take a step back for a while. But unless you're lucky and get a position in a friend's start-up company, it's going to be almost impossible to make the change without some sacrifice.
It's also a good idea to rework your résumé to highlight the Java and OO direction you're heading in and downplay the experiences that aren't relevant to your current goals. Remember, working on many facets doesn't necessarily mean you're a well-rounded engineer.
Would you try to drive across the country without a map? We wouldn't. So why put any less thought or planning into navigating something as important as your career? And when you need directions, ask.
Bill Baloglu is a principal at ObjectFocus
(www.ObjectFocus.com), a Java staffing firm in Silicon Valley. Prior to that he was a software
engineer for 16 years. Bill has extensive 00
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 principal of ObjectFocus. Before that 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.