Ask HN: I just got fired for being a junior developer. What do I do now?

23 points by bsima ↗ HN
The official reason for the lay-off was "your services are no longer needed." Off the record, they wanted to hire more senior devs and didn't have the skills/capacity to train juniors such as myself.

In fact, while I was there, I never received any training at all: no pairing, maybe one or two UML-ish diagrams, only a few explanations of the code base. I taught myself Rails in order to get the job, and I learned the codebase with liberal use of `git blame` and reading commit messages. I thought my work was pretty good, all things considered.

What are other companies going to think of my situation? What should I do to recover from this and increase my chances of getting another (better) job?

I've only been programming professionally full-time for about a year, before that I did freelance work on the side while in college. I do Ruby, Python, {Java,Coffee}Script and Clojure, full stack (including dev ops) because I'm too young to have a specialization yet. One hundred percent self taught (studied philosophy and some biotech in college). Unfortunately I wasn't paid enough to establish much of a financial runway, so I've gotta hit the ground running and find my next gig in ~60 days. So on that note, if anyone is hiring, well you know how to contact me.

34 comments

[ 3.2 ms ] story [ 68.5 ms ] thread
A couple of comments. Sorry you were let go, but that is just business, they need people with more experience and likely learned the hard way that they can't pay lower prices for less experience and expect things to work out. That really isn't a reflection on you or your abilities so much as it is on them for bad planning. So don't look at this as you failed them as much as they failed you and likely others.

As for what you do next. Take a few days and chill and have some fun, spend a little time brushing up your resume and start sending them out. There are a lot of positions available. Remember this, when you are applying for jobs you are selling yourself and what you can do for the company. So many times I interview developers and they don't realize that they need to sell themselves. I am not talking about being a sleazy used car salesman, but recognizing you have to tell people what you are capable of and be able to back it up with mastery of some set of skills.

Last point, you mentioned you are to early to have specialized. I totally disagree with this approach but others may have different opinions. I think you should specialize in a couple of key areas, generally for someone with 1-2 years experience I expect them to know a single language quite well, have a little knowledge of others and be able to do some data queries in SQL (or the database they have been using) etc. I want new hires to have some depth not as much breadth, it is important to get a wide span of knowledge, but it is even more important to go deep in a couple of areas. You have plenty of time to master multiple skills, but focus first as it makes you more valuable. For a web dev, I'd expect decent JS, css, and whatever their front end language is to be fairly mastered in terms of syntax and core coding. I wouldn't expect advanced topics like concurrency or nuances of debugging yet (unless they have been heavily mentored).

Good luck, you should have plenty of runway depending on where you are at in the country, and whether you are willing to relocate.

There's a very salient point here that "full stack" development isn't something you can start out doing. If you advertised yourself as a full stack developer with only a single year of professional development experience behind you, it's likely that you were let go precisely because you aren't a full stack developer. It takes years to develop the body of experience needed to truly work effectively as a "full stack" developer. Now, as mentioned by the insightful parent of this comment, that is more a reflection on the poor planning of the company (and lack of due diligence on their part) than on you, assuming you were forthright in your resume and interview about your history.
The person that did the firing (the CEO) wouldn't be able to tell a difference between a full-stack and a frontend or backend dev. It's a small company, two backend devs (including me) and a frontend dev, though they are hiring 2 more backend devs. For a few weeks, I was the only backend dev. This means I touched all areas of the codebase: designed front-end functionality and aesthetic stuff, wrote backend services, setup devops workflows and did database stuff. So that's why I used the term "full-stack".

That said, I definitely plan on specializing over the next few weeks. Full-stack is hard! :)

Thanks for the thought-out response. I think it's typical among developers to think that their work stands for itself, so they don't have to sell themselves. I agree with your statement that selling yourself is important. I recently beefed-up my resume[1] because I kinda saw this coming.

Interesting point on specialization. I'm not quite sure where I want to specialize, though. I love functional programming (Clojure et al) but Ruby and Python are fun too. I started in front-end years ago (high school?), so I'm extremely fluent in HTML, JS, CSS, but I've been getting more interested in algorithms, machine learning, and related stuff in recent months/years.

I've got a few books from the library on programming that I plan to read, I think this will help me decide which direction to specialize in. Next I'll decide on a project to establish my specialization. The books are: The Joy of Clojure, Functional Programming Patterns in Scala and Clojure, Seven Languages in Seven Weeks, and Web Development with Clojure. I also want to read The Rails Way (or something similar, since I don't have formal training in Rails) and a book on algorithms.

[1]: https://docs.google.com/document/d/1OrBr3KPDjeJBcXdKFJ2vE3tg...

Your welcome.

I get not knowing where you want to specialize yet, but just because you say choose Ruby or Python today, doesn't mean you won't then after 2-3 years move to something else. Specialization in this case teaches you more than the language, it teaches constructs, data structures, loops, algorithms, debugging techniques, error conditions, testing theory etc. Then once you have a handle on those it is easier to apply them in a new language and you start learning how to architect solutions more efficiently regardless of the language chosen.

The coolest part to me about being in Software is we are almost never locked into one language or framework, but you have to get rooted somewhere. And as fapjacks points out, if you advertise yourself as full-stack with 1 year professional experience it looks funny to most employers because you just can't start out there. It takes time.

What are other companies going to think of my situation?

There's a specific language to hiring and firing. Make sure you get it right. They'll think it's quite bad if you say you were fired. Fired very specifically means you were told to leave for some sort of misconduct. You weren't fired - you were either layed-off or you were made redundant.

"Laid-off because the company can't support junior developers at this time" is what I was planning on going with.
Too much info. Just say "laid off" unless someone specifically asks you for more information. Most people won't.
Indeed. Your objective is to get yourself in front of a computer so that you can demonstrate to the company that you are worth what they're paying you. Dishonesty is a bad idea for a zillion reasons, but you also shouldn't be giving them unnecessary doubts about hiring you. That you're a junior developer (but critically with 1 year of paid experience!) is apparent, you don't need to further emphasize it.

And, honestly, you didn't get fired because you were e.g. screwing up, you got laid off because the company perceived it just didn't, at net, need or was able to afford you.

Yeah you just need to say "laid off". Startups come and go all the time. Nobody would bat an eye at it.
Perhaps a different business culture:

Staff are given a record of their employment history, and companies have to follow strict rules when dismissing employees:

* Fired is a big negative. It goes in the government sealed employment record. But you do get 3 months salary on the spot. * Chose to resign gets a month's salary and (usually) no need to come to work and get on the job hunt. * Released (made redundant), a pain for employers but great for employees, as they get the 3 months' benefit plus it is not their fault.

Focus on the 3rd option, especially when getting a contract signed. Powers out of your control are out of your control, don't get blamed for them.

>you do get 3 months salary on the spot

That doesn't sound right. I think it's up to the employer's discretion. If you're fired, I think you're far less likely to get a severance package.

Yeah I looked into this. At least in NY, I don't get any severance package or benefits. I only worked there for 5 months (6 is required[1]) and I'm still under my parent's health insurance and never bothered to sign up with my company's plan.

However, this is definitely something that people should know. If someone is reading this and aren't clear on what their rights are, it's super beneficial to read up on this stuff before you get let go.

[1]: source: NY Unemployment office http://labor.ny.gov/ui/claimantinfo/beforeyouapplyfaq.shtm#0

Edit: I misspoke. I might be eligible for unemployment benefits from the state (I'm putting in an application), but I certainly don't get a severance package from the company.

A different culture (country but more than that - approach to labour management). There's a probation period when the employer can dismiss instantly (3-6 months' in duration), after that period the company is seen to have 'approved' you as a regular worker with worker's rights defined in law.
You've got the magic word - experience. That first year of real-world experience opens more doors than you might expect.

Where are you? People here might be more able to point you at promising openings if we knew that.

I'm in Rochester, NY, but I'm open to relocating just about anywhere. I've got a few friends in the Bay Area, so I'd love to move out there.
Maybe it's obvious and should go without saying, but you should file for unemployment.

I wouldn't give the reason "they wanted someone someone more senior" on your interviews, their official reason is a lot nicer.

Your resume in the link says 'traditional resume'. Is that on purpose? I'd just call it 'resume'. If you have several, just put them in different folders, and call each file 'resume'. Not really sure it's important though.

Good luck.

I just checked your resume linked to from your website. To be blunt, you have mentioned too many unrelated things on your resume and it sends out the message that you are a jack of many trades.

My sincere advise would be to organize it so that someone can know what you are looking for and whether you'll be the right fit for them now rather than when their E-commerce company has a computational biology division. Since you already have had a year of Rails experience, why not highlight it there? (The world rails doesn't even show up on my tablet above the fold.)

Well, to be honest I kind of am a jack of all trades ¯\_(ツ)_/¯

But as I'm increasing my job search efforts, I'll end up making a few resumes tailored to different roles. So thank you for the advice, I certainly take it to heart and will act on it .

My observation while looking at his resume: Why so much emphasis on functional programming? Most shops are much more OOP than functional, and making it seem like you care more about the intellectual aspects of programming than actually solving problems is not good. Employers don't care if you like functional programming if they aren't also huge functional programming people. HR managers sure as hell do not know what functional programming is.
Indeed. Back when I was hiring for jobs requiring e.g. C++, that would have caught my eye and been a big positive, but going into any length about it will not help you with most people, and at best be a negative for typical HR units.

Mention it once in addition to or with the mention of Clojure so someone like me will notice, and only send the full exposition to companies and positions that are "actually solving problems" with FP; I seem to remember Wal-Mart (and you might like Bentonville, Arkansas after the cold of Rochester :-) and Amazon are using Clojure in production....

Emphasis on functional programming because I made this resume when I was still working there, but wanted a job with more engineering and I like functional programming in particular. I will update my resume and even make a few resumes tailored to different roles later this week.
I had one interview where this was mentioned as a bad thing and I didn't get the job, the next interview I got the job for exactly the same reason.

Both interviews were for the same kind of job.

I would suggest walking through the list at https://news.ycombinator.com/item?id=9812245, finding things that interest you (more so than location, really like what the company does) and reach out to them. As one of the companies on that list that's hiring, having someone reach out that really wants the job helps quite a bit. It's a super long list with a lot of options.

In the meantime, since you don't have a ton of experience, i'd work on your Github. Right now it's a lot of small learning projects but nothing that shows how to build anything in particular. Personally, I was looking for some Ruby that wasn't boilerplate or some Javascript that wasn't other people's libraries.

Yeah I'll definitely work through the "Who is hiring" posts. I haven't had a lot of time recently to work on my Github, but I will focus all my time on that soon. The most mature OSS (+ hardware) project I have is Nebula Bio[1], which is what I usually share, but I think I'll put together a Rails or Django app or something like that for fun next week. Or maybe actually finish creating a library (I've started a few, never finished).

[1]: https://github.com/nebulabio/protochip/wiki

Sorry to here that, I know it sucks. Business is cyclical, goals change, there's no point in taking anything personally [which is easier said than done]. Finding another job will make the moving on easier.

Good luck.

I think you might have to brush up/learn common algorithms and data structures for your interviews - I remember being in a similar situation and found that my round of interviews afterward were the hardest I had to go through. Most of them were asking questions way above what a Jr. Dev should know and it was pretty disheartening; I think most had their set of questions they'd ask in any interview and don't really adjust for the junior status. So yeah, don't get too discouraged and keep going
A jack of all trades is great in a senior developer who's had time to learn one or more things "deep". In a junior its not much different from labeling someone as a bit of a dilettante.

Strive to be a T shaped developer eventually, but early in your career, go for being an I shaped developer.

I was working with a friend whom I consider as a very good programmer. She had just joined our company. She told me that she was fired from the previous company as the company was not doing well. I was surprised to know that how a company could let go such a good resource. It seems she was in 'entry level' category. As the company was not doing all that well financially, they had to let go most of their employees who were at 'entry level'.

While it seemed unfair to me, she was actually happy about it. She said as the company was not doing well there is always a tension around as who will be fired next. And she was glad that this finally happened to her. It was then she started searching for jobs and realized her true potential. Now, she is getting paid really well. The challenge with the companies which are not doing really well is that there is always a knife which is hanging around your neck. And you ll never know when this knife will be dropped. Now that you are relieved from this company(knife), you should start feeling better. There are nice companies out there. You ll find them. Everything happens for a reason.

This is almost exactly what happened to me. Internal turmoil, people moving around. Thanks, this was encouraging.
Go and get another role, hopefully with better pay. It's not super unusual as a junior. No training is completely normal, it sounds like you know what your doing. 60 days sounds great.
I didn't realize no training is normal. I've heard from friends and blog posts that juniors tend to be taught by a senior via pair-programming or something similar.
That sort of training would probably be a best practice and most efficient, but I think there are a vast number of companies--especially small ones--operating in an ad hoc manner. Even ones who pay lip service to certain methodologies will struggle to get them right. Rather than expect them to train you, do your best to observe the practices of the company, while learning what you can and work toward a contribution. Always carefully consider a problem before asking for help--and at that point don't be afraid to ask for help, but do so in a polite manner.

I am older than you, but came to programming late and consider myself a junior developer. I'm impressed from what I saw on your resume, especially for such a short period of time. Good luck.

Thanks, I really appreciate your comment and kind words. As a self-taught junior, I find I have gaps in my knowledge that I'm not even aware of sometimes. Reading books and talking with coder friends helps me patch these over. I'm not sure what languages you work in, but if you want to pair on an OSS project sometime, maybe we could help each other. I'm @bensima on Twitter and @bsima on Github