I've been working as a Junior Web Developer at a very small company for nearly 1.5 years. I've learned a fair amount and have been able to develop small applications and learn new frameworks and languages but I can't shake the feeling that I haven't been able to grow as much as I could have had I tried for a much larger company.

The company is so tiny that mentorship, code reviews and training is nonexistent. Most of what I have done has been little side projects that I've worked entirely on my own to do with no guidance whatsoever.

I just started working on the website but was never given training as to how to navigate the codebase. Then the original developer who hired me left and two new developers were brought on who did receive proper training. One is now the CTO and I'm often left with nothing to do. I have looked at the documentation left behind and have asked the new guys who are more senior level for help in figuring out how to navigate the codebase for website but most of what I've been able to do (small bug fixes and new features) I have done entirely on my own with a bit of trail and error.

I'm rarely assigned things to do so I just try to make small improvements here and there. Sometimes I'm given something to implement at the last minute and nothing gets tested or reviewed so it gets shipped kind of buggy and I feel bad or I'm given something to do and instead of giving me time to do it they'll just take over and I never learn anything. So mostly I spend my time learning on my own and following tutorials but I'm thinking it may be time to move on.

In terms of training and growth opportunity, are there major differences between small and large companies that might impact my career?

  • So your current company employs and pays you but no task/goal is explicitely given to you ? Either they have too much money to care or something else is up. Anyway, have you voiced your concerns to your current manager ? What did he/she say about it ? You seem motivated but is this motivation clear to the people managing you ?
    – ereOn
    Jan 3 '17 at 18:09
  • It's kind of bizarre to be honest because when I was hired by the original guy he knew I was a junior. Being that this was my first development job I didn't know what to expect but I had things to do so even though I wasn't being mentored I was happy with the situation because I felt productive but then he left and now I have two problems: nothing to do and no guidance. The company is rather disorganized if I may be honest and I'm not even sure why I was hired in the first place if there wasn't a plan to groom me but I'm not sure how to bring it up.
    – terratunaz
    Jan 3 '17 at 18:22
  • 1
    It can always happen that people in charge don't know that you have nothing to do and that they let you go when they realize it. This would actually mean that your manager is really not good at his/her job. But to be honest, if they have nothing to give you anyway, you may want to take advantage of the fact you are out of the radar to be "ready" (as in "brush up your C.V and look for other offers"). I once kept a job where I was given nothing for 2 years and it almost killed my motivation forever.
    – ereOn
    Jan 3 '17 at 18:27
  • Yeah that sounds horrible. I'm glad you finally got out of that situation. Out of curiosity, why did you stay so long before finally moving on?
    – terratunaz
    Jan 3 '17 at 21:55
  • 11 weeks of holidays, a big pay, full lunches (wine included) for 2 euros/day, -30% on all banking fees including loans (it was a bank) and no hours checking of any kind. I was learning new stuff on my own and sadly unrelated to my job as you could not do anything without a manager's approval (and those had often nothing to do either...). I left when I realized that happiness isn't necessarily bought. I took a salary drop as I changed but it was worth it.
    – ereOn
    Jan 3 '17 at 22:29

Software engineering is team work and it's obvious from your narrative that either your seniors are not working well with you or you are not working well with them or both. You are not learning new stuff except for what you taught yourself.

Self-teaching is like self-medicating. When it works, it's great. But you're more likely not realize that you may have some blinders on and you're likely to miss a few key points and concepts if not the big picture altogether. Self-medication, by the way, is how I ended up strapped in the back of an ambulance speeding to Bellevue Hospital several years ago :)

You know exactly that your skills set is not up to par. You're getting zero institutional support to get your skills up to par. Your only realistic option if you choose to stay is self-teaching, which has its pluses and some pretty significant minuses. Extrapolate as to which way your career is going if you choose to stay. At this point, you have all the facts you need to draw your own conclusion as to whether you should stay or go.


If you're going to leave, make sure you're able to determine if your next job is going to be an improvement in this area. You can ask directly during the interview, but you need to know when they're not being truthful with you and probably themselves.

Everyone thinks they're a great mentor, but often they're not given enough time. Find-out what the workload and pressure is like. Will you receive regular training and how much time is set aside? How long do they think it will take you to get up-to-speed before you're handling production code? How will they know when you're ready.

These are just a few questions, but you need to be prepared to dig deeper. Many people have the best intentions, but too little time or they're in a situation that rewards get code out the door in the short-term over things like testing, having solid release procedures, mentoring, training, code reviews, etc.

Until you feel capable of being a bit of a sleuth and finding this out, you're just rolling the dice in hopes your next job will be much better. Be prepared to turn down a few jobs if it means you're right back where you started and begin to look like a job-hopper.

  • Great advice, thank you. I definitely need to make sure that I don't make the same mistake twice. Your statement, "Many people have the best intentions, but too little time or they're in a situation that rewards get code out the door in the short-term over things like testing, having solid release procedures, mentoring, training, code reviews, etc" describes my current work environment perfectly which is largely why I feel like I cannot thrive there. I will find out what I need and begin searching for a position that can provide that for me. So thanks for the perspective.
    – terratunaz
    Jan 3 '17 at 21:48

In my opinion, I would say leave. I work in a company that is small as well but quite the opposite. I have a boss who is continuously encouraging us to learn new things and bring new technologies to the table. He communicates new concepts and ideas to us and would even sit down with us and work through a problem until it gets solved. We have the option of taking courses which the company is very willing to pay for. We have coding standards meetings every month and new ideas are highly welcomed. The IT field is ever expanding and ever evolving, if you don't join the bandwagon, you will miss the flow and you will lag behind. If you can weigh your options properly and make sure that when you leave, you are leaving to go to a place that fosters self-improvement and team work, I would say leave and go better yourself. Don't feel like your experience at your current position is the modus-operandi of other companies. There are places that really care about the personal growth of their employees because in the end, you are regarded as an asset and not a defect.

  • Thanks you're completely right. I accepted this job with the hopes that I would be able to get the training I couldn't receive on my own. Since I'm not receiving it and am essentially stuck doing what I was before (self-teaching, figuring out things on my own, etc.) I should look for something better.
    – terratunaz
    Jan 3 '17 at 21:58

I am a person that prefers working in smaller environments. Just because this small company may not work out, doesn't mean that all small companies are rubbish.

This isn't a question anyone can answer. But, consider the following points:

  • Could you ask for formal training?
  • Is there scope for you to mention to your peers about code reviews?
  • Can you introduce some sort of formal testing plan that others need to follow before release of your development?
  • Are you asking for work and not being given any?

If you can't really answer any of the above positively, then this could be a time to move on from this small company. But don't take it that all small companies are bad. I progressed the most in my career when I was the sole developer hired to take over a lot of crappy, undocumented code in a very small firm. I had the freedom to implement whatever I wanted. From this I was able to do:

  1. Introduced Bug Tracking System (and used this as a call reference system too)
  2. Introduced Responsive Web Design that increased business to the company
  3. Introduced Code Standards Documentation
  4. Introduced a Standard Testing Framework (for non technical staff to follow)

All of the above you wouldn't be able to do as a junior in a large company, and this role kick started my career from a Mid Level Developer to a Technical Lead. Don't get me wrong, large companies clearly have benefits with formal, usually paid for training and clear progression plans, but a small company can give you a hell of a lot too. You just gotta find the right one perhaps.


I am in the exact same shoes as you. This question perfectly illustrates the struggles that I'm in, so I may have some personal advice for you.

It would be best if you leave for another junior position. Being at a place you're in, you learned the basics of office culture, project management, the struggles of deadline and that's the best type of experience you can get at a place like that. The situation will most likely not get better for you. The more you work there, the more detrimental it will be for you because you are not learning the essentials of a software developer. The more years you add on that resume without know these things will be rough.

Not the answer you're looking for? Browse other questions tagged .