

Ask HN: After years at BigCo I feel like I'm becoming unemployable. Now what? - gettingrusty

I've been developing software professionally at the same large company since graduating college several years ago.  Over time I've come to realize that there's no such thing as stable employment, so I'd like to keep my options open as much as I can.<p>The problem is that at my job I've been repeatedly thrashing because direction keeps changing so suddenly.  I've written "production" code in PHP, JavaScript, C#, Java, C, C++, Perl, Python, and ActionScript, but I don't think I've developed any meaningful level of expertise in any of these.  I feel like I'm a jack of all trades, master of none, and I'd never even be able to hold a candle to anyone who has deeper experience in any subset of these.<p>On top of that, the company I work for has a very high degree of Not-Invented-Here syndrome, with lots of home-grown tools and frameworks of dubious quality, leaving me with completely non-transferable skills.  Projects are rife with mismanagement, and the only things I've learned from the pain points in my job are that they are social problems, not technical.  It feels as if I've only accumulated one year of experience, repeated several times.<p>In spite of this, I'm getting glowing reviews from management and would rate myself above the median among my colleagues, but that really doesn't count for much.  After all, in the land of the blind, the one-eyed man is king.<p>I've been trying to devote some effort to hobby projects and open source but never seem to have enough time to really get anything meaningful done there.<p>How should I try to escape this stagnation?  I'm getting the feeling that the best way out may be a different job with better learning and development opportunities, but it's also somewhat disturbing to me that my skill set is scattered so thinly that nobody would ever want me (particularly the sort of startups that are frequently discussed here on HN).
======
patio11
You may be underestimating yourself or overestimating the degree to which
startups need rockstar engineering. If you ship and it works, you're good
enough. Better is better, but most engineers can create plenty of value
without being e.g. DHH or Linus.

I was in similar straits at the old job: I was one of the more trusted
engineers, spending my time doing maintenance coding on an evolutionary dead
end. I used it as an opportunity to bone up on my general web dev skills
(System architecture, design, SQL, etc). I also used my "routinely delivers on
promises" karma to buy changes to the development roadmap that were useful to
my professional growth. ("This project would be improved by integrating
Prototype. I have taken the liberty of mocking up a screen. We should do more
like this, the clients will be thrilled. Of course, you'll need to assign me
to it since I am one of the only two competent JS engineers here and the other
is busy.")

~~~
gettingrusty
Patrick, as always your advice is very insightful, but it's going to be tough
for me to follow it. I've become very apprehensive about sticking my neck out
there for a new responsibility because in my work environment it has almost
invariably been equated with being assigned blame. I'd assume you are quite
familiar with the saying "the nail that sticks up gets pounded down."

The customer is quite far removed from the development team and honest
customer feedback is jealously guarded by management, either blatantly held
hostage or creatively misinterpreted to further management's own goals. My
immediate supervisor is very supportive, but the management further up the
chain that controls requirements, budgeting, and customer interaction hasn't
demonstrated the slightest bit of care.

------
noonespecial
You very likely vastly underestimate your actual expertise. I find that no
matter how far I've come, I always feel that I have yet to develop any
"meaningful expertise" and its easy to find someone much better than I am to
compare poorly against.

What you may be feeling, is that more and more bigcos are becoming not-so-big-
cos and discovering that years of what you've been doing and piles of
worthless development projects are just as useless to them as you already know
they are. The era when companies waste money reinventing (square) wheels is
rapidly drawing to a close.

My suggestion is to find an open source project that uses a technology that
interests you(1) and commit yourself to really diving in. You'll probably see
some good code, and then realize that you've got something to add. You'll feel
like a million bucks the first time code you submit is accepted on the main
branch, not because it was your job, but because people _liked_ it.

(1) Pick something you are _actually_ interested in. Don't fool yourself by
choosing something that you think you _should be_ interested in. You need the
passion to keep at it.

~~~
gettingrusty
Thanks. I think your footnote is especially encouraging, since I'd been under
the impression that not all open source projects are created equal, and that
writing process schedulers for the Linux kernel or optimizing JavaScript
execution in Firefox wasn't my cup of tea. I suppose there's no shame in
contributing a tiny patch to the install script for some no-name program X so
that it works on obscure platform Y, although it's not something I can brag
about on a résumé.

------
newobj
You definitely sound like someone who's afraid to quit their first job and is
doing everything in their power to convince themselves that they should.
Honestly the things you're complaining about you'll find in varying degrees at
jobs big and small, companies established and new, whatever. Your company is
probably not as bad as you think, and you probably haven't become as
unemployable as you think.

But that's fine. You want to move on, by all means move on! Don't be afraid,
and don't spend so much time trying to rationalize it... it's already
rational. :)

It's all about reframing yourself for the next opportunity. If the next place
you _want_ to work at is a Java shop, play up your Java experience, and spend
some time at night making sure you're mostly airtight Java-wise.

Not-invented-here is not a big deal. If you actually helped develop FrobbcoDHT
versus simply using memcached, you can just say "Built proprietary DHT for x y
z reason." It looks good on your resume. If anyone questions why something off
the shelf was not used, you can either explain why something proprietary was
necessary or that the company culture was not-invented-here and your
manager/lead disallowed it. If you merely _used_ FrobbcoDHT internally, just
say that you have experience with DHTs in general. This isn't a big problem.

Maybe it's also been a while since you interviewed anywhere? Apply for some
random jobs as practice/reexposure. You'll probably get some offers and can
reboost your confidence.

I would just strongly advise you to stop focusing on your current employer so
much. You have to play this mental game of "I hate it here it's ruining me my
career is over" to give yourself the push to quit... but that's lowering your
confidence, warping your sense of reality, and might make you come off as
bitter/whining while interviewing. Just accept that you're going to leave,
stop feeling the need to justify it, working on marketing yourself, work on
honing a couple things depending on who you're going to talk to next, and try
to work some confidence back up!

------
rrrhys
Write a story about each of the projects you have worked on.. The problems,
the discussions, the plan of attack and the outcome, cost savings for the
company, technology used. As though they were all separate consulting jobs.

Take out company names and specifics.

Have an objective look at what you have done and assess it again, because now
you've taken the emotion out of it ('repeatedly thrashing' etc) and you are
left with cold and useful facts about your projects.

You then have a portfolio that you can show new potential employers. I am in a
similar situation and am currently doing the same.

~~~
gettingrusty
I'd love to do that, but none of the projects I've worked on have succeeded or
shipped. They're all rotting in the deadpool of neat proof-of-concept types
that will never see the light of day.

I can't even say that I've saved the company money here or there. The most
credit I could claim on that front would be that I chased down a problem
enough to know that is not worth wasting more effort trying to solve it in the
manner prescribed.

------
dools
A long tenure is often attractive, and you can truthfully say that after
giving them a good shot and investing a lot of effort in trying to make the
situation better, you're ready to move on.

The fact that you haven't "shipped code" isn't your fault: you're not in sales
or business development. The glowing reviews and the fact that you've stuck it
out for so long are both examples that you're a good employee.

As for "transferable skills" - yeah - it's a problem because douchebag
recruiters just look for little acronyms.

If you can afford to take 6 months off, you could do a course in something or
other. Self motivated continuing professional development is often looked upon
favourably.

During this time you could also make it your business to develop in open
source communities to broaden your knowledge and take up some pet projects.

------
jlees
I'll just jump in now before the rest of HN gets here and say "Leave your
job".

See, among others, <http://news.ycombinator.com/item?id=1960437> for an
excellent discussion of "why".

(Specifically: you will suddenly find time to devote to those hobby projects
you can't focus on right now, for one. That will lead to at least some degree
of skill set specialism or broadening, which will rejuvenate you, which will
help you decide whether to continue hacking around and turning it into a
consultancy gig -- or finding another, better job.

That or you run out of money and end up at Starbucks, which would at least be
a change!)

