Today I am a senior
software engineer at Mattersight, a SaaS company. But it has not
always been that way. Five years ago I
was starting my first true software development job as a junior developer at NCSoft.
10 months later, as the most recent hire, I was let go in a round of layoffs.
I've had four years to think about it, and can see at least five indicators
that it was not a good position for me.
Programming language paralysis
Coming out of
college, I figured I was capable of learning any language needed by a
reasonable development team. Scripting languages in particular were my strong
suite. Then I met Perl - and found a
language that just didn't click. I tried
my hardest to really grasp the language. I even made quite a bit of
headway. But, it still wasn't code I
wanted to show off. Quite honestly, it
was confusing - and it paralyzed me.
Had I been in the
job longer, I might have recognized just how serious this issue was. Or, I
might have realized that there was a deeper issue at play.
Objective Unknown
One of my early
tasks was to groom the backlog. Find a ticket I thought I might be able to
handle and show initiative. No specific target, no true goal. I started in, got
my environment all setup, and then the backlog blues arrived. This continued
for a while - maybe it was a good starting task, but mostly it involved asking
the senior dev's how to fix their bugs.
There was a good
amount of time that did have an objective, but with these exceptions, there
wasn't a clear objective.
The 'strike force' team, no, that's not you.
Now, this by itself
is not a huge issue, but, it can be an indicator. For me, the stealth team
concept is a harsh one. Let's grab these few devs, stick them on a project, and
sequester them. If you're on the team, you're probably somewhere you are supposed
to be. If you aren't - and you aren't doing anything you appreciate, maybe ask
about it. I didn't, but I should have.
Communication: Zero
One thing I ran into
as time went on was a drop off in communication. I had finally gotten a good
strong project. I went after it with a
gusto. Along the way I asked my supervisor questions about my approach, and conferred
with others. I thought it strange, but I
did not get much in the way of feedback. In fact, I didn't get much in the way
of any communication. But, I had a
project.
As the deadline
neared, I finished up on my work. At
this point, the department head wisely instructed a different senior dev to
review my code. Turns out, it had a security vulnerability. A rather large vulnerability according to the
senior dev. It was something I'd
specifically asked my supervisor about.
Now, I don't blame anyone but myself for missing the vulnerability.
However, had there been communication, even minimal communication, the project
would have been steered in a better direction at an earlier point.
Doing nothing
Unlike the other
issues, this one is probably the most significant. If you are not doing something, then you are
not needed. And towards the end, I was not doing anything. Sure, I hit the
backlog - but in the end, I was no longer producing. In fact, many were not producing. And there
were layoffs. My advice, if you are not doing something, reach out. If you are still not doing anything, get out
while you can.
A Final Note
There were many
political motivations for my layoff, but not politics I was party to. An exec
left the company, and everyone hired under his vision was laid off. Or, if they
were exceptional, replaced someone less exceptional. I had a lot of family issues that summer (I
could write a book!) But my performance
was, from self evaluation, mediocre at best during that time. Had I known what
to look for, I would have seen the layoff. But I did not know what to look for.