Becoming a Successful Java Consultant

by Michael Scepaniak on April 18, 2013 in entrepreneurship, software development

Lamar Valley Sunset

[I] saw that you are a senior Java consultant for many years, which is what I want to be, too. So I thought I’d connect to you and ask what it takes to get there…”

Somebody actually sent this to me. Somebody that I’ve never met. Pretty cool. ๐Ÿ™‚

So, what’s the answer?


Well, first, what sort of credentials do I have that make me feel like I can or should answer this question? And why should you give that answer any credence? (When listening to any advice, you should always consider the source. In other words, you should only take advice from someone who is doing, or has done, what you want to do.)

So – let’s take a look at my LinkedIn profile. Lots of “senior”‘s and “developer”‘s all over the place – going back (to some degree or another) a good 15 years. And that’s not at just one or two shops. There’s more than a half-dozen companies represented there, with stints lasting anywhere from 4 months to 4 years.

From where you’re sitting, it’s completely fair to doubt that I know what I’m talking about, regardless of background. But, compiling that sort of work history (both landing and keeping those gigs) without a good amount of demonstrable technical ability would require a whole lot of faking people out.

As far as raw technical intelligence, I don’t have a ton of publicly-facing evidence to put forth. I’ve pretty much got this blog, which isn’t necessarily packed to the gills with software development genius. But, I have written a few choice posts about Hibernate, JSF, etc. that people tend to stumble upon on a fairly regular basis and find helpful.

As far as success goes, the only objective measure I can serve up is my compensation. And while I’m not comfortable putting hard numbers out there like Patrick McKenzie does, I’ll simply say that when I read threads on HackerNews or Business of Software about salary and rates, I don’t feel underpaid. (Of course, I always feel that there is some unrealized upward flex available for the taking, but that doesn’t necessarily translate into me feeling underpaid.)


OK, so much for credentials. (You either accept them or you don’t. I’m not going for a hard sell here.) Looking back at the original question, the word used is “consultant”. I’ve read discussions in the past where the participants debate the both fine and (to them) blatantly obvious differences between consulting and, well, non-consulting. I don’t believe there is a universally-agreed definition. So, for the record, I consider myself a contractor. Not a consultant. And not a freelancer.

In my mind, consulting gigs are short, specialized, and high-level. And freelance gigs are short, repeating, and low-level. What I tend to do doesn’t fit either of these molds. My gigs are long(er) – months or years. My skillset is general(er) – Java, the Swiss army knife of enterprise software development. And my deliverables are mid-level(er) – typically hands-on project design and development work, but not production support or maintenance.

Frankly, what I do doesn’t differ all that much from what a number of the salaried employees I work with do. The two most significant differences are 1) I get paid by the hour and 2) it’s very straightforward for my client to cut me.

With that being said, my ultimate answer to the “what it takes” question applies just as equally to consulting as it does to freelancing as it does to contracting. For that matter, the applicability of my answer isn’t limited to Java, or even software development.

The Answer

So enough with the build-up. What’s my answer? For the most part, I’ve already told you. Find someone who is doing (or has done) what you want to do and follow whatever advice they have to give. That’s it. Now, while that may not be entirely satisfying or even actionable, you’ll find that all concrete answer(s) flow down from this high-level answer.

O-o-o-ka-a-ay. That’s great, but…

Yeah, I know – “what do I do next?” Simple. Find your “someone”.

Find someone you respect, at least professionally. Someone that impresses you. Someone that you’d be happy to pattern your professional self after. Solicit their advice. Listen to what they say. Learn from them. Earn their respect in return for the time they offer you.

Of course, there’s a word for this practice: mentorship. But, I avoid using that term because it sounds so formal. And how does one go about being mentored anyway? Well, I can only speak from my own experience, but I’d say the best way is to do it on the job. (I realize that there are other possible options such as hackathons and co-working spaces, but I have no personal insights to share regarding them.)


Look around your office. If you don’t see any mentor candidates, and if you work in a larger company, try to move between departments. If you’ve exhausted the possibilities at your current workplace, change companies. If you’ve exhausted the possibilities in your current community/town, move. I know that might sound extreme, but there’s a few standard reasons in life why people choose to move. Career advancement/enrichment/satisfaction is one of them.

I suppose that you could also find a mentor online, but again, I have no advice to offer on that. I feel that it would be pretty difficult to take a purely online relationship and foster it to a sufficiently personal level where the mentor would feel the desire to go out of their way to help the… mentee. ๐Ÿ™‚

Looking back on my career, I was very fortunate to find myself working (at an early point) with some sharp, seasoned contractors. I worked alongside them for a couple years. During that time, I listened to their outlooks on the software development industry, profession, and craft. They helped guide me through the transition from salaried employee to independent contractor – a transition that, to this day, I consider invaluable. It was life-changing. Those few years spent working with them, feeding on their advice, got me to where I am today. And that’s what you get from a good mentor.

In order to become successful as a software contractor, you need to work with someone who is currently doing it – and soak up their advice. Every other, more-specific concrete recommendation flows down from there. With that being said, if you’re looking toward me as your “someone”, and you want my specific bits of advice – ask. I’m happy to write more if anyone would find it valuable.

Want to be notified when new articles are posted?
Enter your email address:

{ 4 comments… read them below or add one }

John April 18, 2013 at 9:46 pm

Another good one Mike. One thing I would point out (having only contracted for two years) is that it requires patience. Often times contractors are treated as bodies until someone realizes that you actually know more than they do… This can take some time!


Michael Scepaniak April 19, 2013 at 4:42 pm

Thanks, John. Personally, I can’t say I’ve ever really noted this as being an issue. Mind you, I’m not saying it doesn’t happen. And even when it has happened, it’s given me the opportunity to take pride in watching my voice progressively carry more weight as my contract keeps being extended and my clients’ respect for me grows.



Dave Seinberg April 18, 2013 at 10:18 pm

Very good article, and I’m sure the OP will find it insightful. I once aspired to be an independent consultant as well – I relished the independence, the pay, the freedom. But mostly the quick bump in pay.

One thing I found missing in your article is: ask yourself why, and whether, you truly want to be a consultant/contractor/whatever you want to call it. Understand your goals and aspirations. Understand the inherent advantages and limitations of consulting.

In my view, the main advantages of successful consulting are the independence and high starting compensation; to some extent the respect that might come with successful consulting; the variety of teams and technologies you see; and some tax loopholes to take advantage of.

But the limitations are equally large. One has less skin in the game, which means different things to different people, but to me meant less willing to give *myself* to a project, less willing to put in extra time because I believed in and was engaged in a product direction. And perhaps equally important, there’s a (relatively speaking) low ceiling in career growth after a certain point. You top out much quicker in your ability to influence product direction, broad hiring decisions, technology direction, etc. You may be more talented, more efficient, and overall bigger ubergeek than most people, but a consultant’s one-foot-in/one-foot-out relationship has inherent limitations.

Unless you’ve started your own business and use consulting to kick-start your growth — a questionable tactic, but separate conversation — this also translates to compensation. Imagine a graph with two lines. One line is the consulting line, starting mid-way up on the left, and the other (full-time) starting in the lower left; at around the 5-10 year mark, those lines intersect. By the right-hand side of the screen, the consulting line is still approximately flat, while the full-time line continues to grow toward the upper-right side. The difference is the compensation in forms other than salary that a full-timer starts getting in considerably increasing doses: perks, 401k matching, tax advantages (e.g. some loopholes for up to $51k/year in tax-sheltered retirement savings), increasing amounts of equity compensation, yearly and spot bonuses, etc. What you pay for these advantages are personal time and emotional investment. But if you find a company in which you believe, it’s far more rewarding (and *fun*!) to some people.

I’m not arguing for either side — although I think you know the side on which I ended up — as different people have different needs and desires. But understanding one’s needs, clarifying goals, and zeroing in on desires is perhaps the most important part of defining a career trajectory.


Michael Scepaniak April 19, 2013 at 5:09 pm

Fantastic comment, Dave! Thanks.

> You top out much quicker in your ability to influence product direction, broad hiring…
In general, I agree with you. But, this very much depends on the client. For example, I’ve served as dev lead as a contractor, in which capacity I provided the top technical voice and had a significant say in project strategy.

> …a consultantโ€™s one-foot-in/one-foot-out relationship has inherent limitations.
For me, the nature of this relationship frequently is the only thing that keeps me sane. ๐Ÿ™‚ My typical posture is to push as far as the client wants to be pushed – at which point I back off. And I’m able to back-off because I can tell myself that, ultimately, it’s their choice, not mine. “Let it go, Mike.”

> The difference is the compensation in forms other than salary that a full-timer starts getting in considerably increasing doses…
– Perks and 401K matches don’t end up amounting to all that much. A few thousand dollars.
– If you set-up and bill through a corporation or LLC, the same $51k/year is available for you to shelter.
– Bonuses, yes – that can truly blow up the equation in favor of salaried. However, my issue with bonuses is that they are not “guaranteed” and can easily be yanked away from you at management’s whim.
– Equity compensation, yes – this will always tilt in favor of salaried. However, this only proves to be truly lucrative given a high-growth employer.

For me, given the profile of my typical client, I’ve never found a situation where I’ve been willing to concede that salaried is the better route (again, for me). And, as I get older, my standards just keep going higher. At this point, they’re almost impossible to satisfy.

However, I do believe that the right situation is out there for me. I’ve just never properly searched for it. ๐Ÿ™‚

Again, awesome comment. I love a good debate.



Leave a Comment

Previous post:

Next post:

Member of The Internet Defense League