I completed the free online CS50 course and immediately got an internship as a junior developer 10 months ago. I was working on a legacy project, started using Java 5, Oracle, UIX and after about 3 months I could do the things they asked me to do without any help. After 4 months internship ended and they hired me as junior developer.

I was told to do the same thing every day for 10 months (making some configurations to the code). I wanted to try unit tests and TDD, but my mentor said that it is impossible in this project. I believed him (shouldn't have). Asked if I could help configure SOAP services, was denied, because deadlines were pushing.

Looking at other jobs, I see that they ask for experience with at least Java 7, Dependency Injection, TDD, Agile, some frameworks like Spring, etc.. Currently I can just say that I have minor experience with Java 5 and I know basic SQL commands. I was getting mad, because they told me to do the testers tasks, because that would make me a better developer (the tester intern was ill), so currently I am just clicking on forms that are created, watching if something breaks, checking if the fonts are correct and so on. I feel like I am not growing as a developer. Feels like they are using me for tasks nobody wants to do and I am not gaining knowledge to get other jobs in the future.

Brought these concerns to my boss and was told that I will become a good and well respected developer if I help the team achieve its goals by doing anything that is necessary and that knowing TDD, DI, modern frameworks is not as important.

So I ask you guys, is it true what my boss said, or did he just tell me that, so I would just shut up and keep doing what I am doing? Does the lack of experience with modern developing frameworks/standards/tools drastically reduce chances of landing a good job as a developer in the future?

Thank you in advance!

  • 1
    We cant really give you career advice in this format. What keeps you from learning theses techniques on your own time? – Daniel Feb 6 '18 at 9:35
  • @Daniel, I am learning at home, but from what my boss said, seems like I shouldn't concern myself with modern techniques, but concentrate on doing what is better for the company, because that way I gain better knowledge and experience. That is why ask if what he said was true. – Robert Feb 6 '18 at 9:44
  • currently I am just clicking on forms that are created, watching if something breaks There are automation tools for exactly this. For example Selenium. You should implement some automatic UI tests and then present the results. Remember: it's better to beg forgiveness than ask permission. Otherwise nothing gets done. – Juha Untinen Feb 6 '18 at 10:04
  • @JuhaUntinen, thanks for the tool, will look into it, but they will not allow me to use it. They often tell me not to write unit tests, because they take up too much time. But maybe I shouldn't listen to them as much... – Robert Feb 6 '18 at 10:21
  • @Robert your boss is shining you on - they are taking advantage of you being new and dumping scutwork on you. The good news is, not everywhere is like this. The bad news is, you will have to find one of the good places. The middle news is, you have almost a year's experience, and with the right emphasis on your resume you can improve your chances of moving on. Just remember to secure a new job before quitting this one – HorusKol Feb 6 '18 at 13:19

This is perhaps an incomplete answer for you, as you have taken steps to correct it and been shot down. For people in the future, I'm writing this as "what to do if you find your job unfulfilling". I acknowledge this doesn't answer your question on whether your boss can be trusted or not - but realistically, you know your own goals and will have an idea if you truly think what you're doing is working towards those (following somebody blindly, even if they are correct, is never going to make you feel fulfilled).

1. Identify what needs changed

Before taking any action, it's important to look at what you are actually wanting from the role and what would need changed to make this work for you. Whether that's needing more training, needing to work on something more challenging or having too much to do - you need to find the specific items that can be changed. You should be able to write a statement along the lines of:

"If I was given more coding tasks and my input was taken into account when designing systems - I could see a future with this role".

This may include multiple goals or changes needed - but whatever those are need to be your "I can't work here if they don't change" list.

2. Identify what you can change yourself

Now you have a clear idea of what is lacking in the role, you can start to take action to change this. It will rarely be a particularly fast process - but sometimes even a few small steps in the right direction can help rebuild your motivation.

Things you may be able to look at changing are:

  • Spending the last half hour of a day researching something interesting to you
  • Building tools that automate parts of your job that are boring
  • Testing out new techniques on a sandbox project
  • Writing small tests or tools that provide immediate benefit at little cost

3. Talk to your manager about things you can't change

Now that you've changed anything you are able to personally, which may be a lot (or may be nothing at all); you can escalate the remaining items to your management.

It's important to be extremely clear what the exact things you want to change are here. Ideally, you will go into this meeting with a list of problems and the solutions. It also doesn't have to be an all-or-nothing discussion; you are trying to make traction towards changing your role - even small steps in the right direction may be enough if you can see how you might take them further in future.

For example:

"Right now I feel that I am not developing my skills as I am not writing code at all, and just making configuration changes. I understand these are necessary, but if I was able to make change and then I we can reduce the workload every time we deploy - which is good for all of us."


"While I understand that the code needs tested continuously, I'd like to take some time each week to write some unit tests to cover the areas I'm seeing bugs in most commonly. I feel that this will allow more time for testing other areas and improve the quality of the product overall. All I need for this is access to the codebase, and a test branch on the source control I can work from - to avoid interfering with the main development effort".

4. Decide if anything is going to change

After trying to make changes and discussing it with your management, you should take some time to evaluate what has been decided and what you feel the future is going to be like.

Again, evaluate what the situation is against the initial problem statement. As described - it made it clear that if it wasn't changed you would not be fulfilled in this role.

It is possible that the answer you come to is "these changes will not be enough", and at that point it would be a good time to start a job search to find somewhere that can address those needs. If this is the outcome, as long as you honestly tried your best to transform your role into what it needed to be - you shouldn't feel guilty for leaving or worried that you're leaving too soon. In future interviews, if this role comes up - you can now clearly tell them what you felt needed changed, and they will be able to tell you if it will be different there or not.

Best luck with this process, it's one I've used personally to make a lot of changes to my career and avoid being stuck in a role I hate. It will not always get the result you want - but it will help to ensure you try what is possible, before accepting you may need to move on.

Not the answer you're looking for? Browse other questions tagged or ask your own question.