11

I'm a young fresh graduated software engineer, I have started at my first position 5 months ago (once I graduated as a Software Development Engineer, basically a Java EE developer).

I am getting more and more bored, the job is about taking bugs tickets and fixing them. I haven't written a new Java Class since I work here and barely even written any new method, just some very small pieces of code to fix the bugs, which usually takes a few hours / up to a few days to find where the problem is and only between 10 minutes and 2 hours to fix.

That makes me bored and more and more frustrated, however there are some "projects" (addition to the current software) that are running each release but not all people are assigned to it. I feel like I lost the confidence of my team leader (maybe I don't perform as well as I expected, though I think that I am doing a decent job for a fresh graduate but also I could probably do better if I was motivated in my job), and that's also why I am not assigned to them: vicious circle.

What I am satisfied by:

  • The process are well organized and gives good habits: continuous integration, some code review, skilled workmates.
  • Salary is pretty decent, actually lower than the local ones but the standards of the country are very high in term of wage.
  • Location.
  • Work time (time of the employee is respected, if we do 1 minute overtime, we can take is as holidays another day later).

What I'm dissatisfied by:

  • Strict company: There is "locked schedule". They pretend to be flexible but we can't come after 8:30 am and leave before 4 pm. Sometimes I come at 8:31 or 8:32 and even though this has zero impact in the job, I know that it bothers my team leader (who has as habit to come pretty early in the morning). The proxy blocks everything, spotify is not accessible for example (small issue) but we can't download any software from web (which can sometimes be useful to do the job). We have to make a request every time we want something (for example DB access) which takes from 24 to 48 h etc.
  • My tasks (as said above, only fixing bug).

Important considerations:

  • Leaving my job now could be bad for my future job hunting as I have no experience of more than 6 months (only internships, so it is normal, I did not get fired) and interviewer may thinks I am not reliable.
  • I want to stay in this country (I am a citizen so there is no visa issue, but I am dual citizen and didn't grow up there).
  • I am not really confident in finding a new job, my studies are not focused on solving algorithm problems (that's not a standard in my home country) but here it is one (I trained using leetcode but I am still far from being very skilled in that).

Due to my current job and the fact that I am a fresh graduate, I am starting to think that I am not made for that job and that I had expectations that are not how real world of software development works.

What should I do? Quit my job now but being in trouble to find a new position here? Stay but be bored?

The best compromise I see is trying to handle the job for about one more year without getting fired because of too low motivation so it will give me an experience that counts on my CV and gets me out of the "fresh graduate" category and then find a new job. In my opinion leaving now is not viable as I will have no money to live, will have to go back to my parents home and home country etc etc.

closed as off-topic by gnat, espindolaa, J. Chris Compton, Dukeling, Anketam Sep 30 at 18:38

This question appears to be off-topic. The users who voted to close gave these specific reasons:

  • "Questions asking for advice on a specific choice, such as what job to take or what skills to learn, are difficult to answer objectively and are rarely useful for anyone else. Instead of asking which decision to make, try asking how to make the decision, or for more specific details about one element of the decision. (More information)" – Dukeling, Anketam
  • "Questions require a goal that we can address. Rather than explaining the difficulties of your situation, explain what you want to do to make it better. For more information, see this meta post." – gnat, espindolaa, J. Chris Compton
If this question can be reworded to fit the rules in the help center, please edit the question.

  • 9
    My partner was in a similar position but he stuck at it and worked hard and now (around a year into the job) is being put on the projects and writing from scratch. You probably just need to prove yourself to the company before they let you loose! As you mentioned, you're a fresh grad, reviewing and fixing other peoples code is often the best way to learn industry standards. – Bee Sep 30 at 9:13
  • 9
    What @JoeStrazzere says. I'd add that maintenance is 70/80% of real world job in computer programming - and gives you good hints about what is good and what is bad in terms of maintenance, for the day you'll actually create real code. Most people who never do real maintenance believe their code is clean. IT's not. Enjoy the opportunity to learn the dos, and the donts. – gazzz0x2z Sep 30 at 14:25
  • @JoeStrazzere I expected to have more something in middle between writing new piece of code and fixing bug, I did not expect to only fix bug and not write any new class in 5 months of full time work. – user108322 Sep 30 at 14:28
  • 1
    You can click the "edit" button and update the question. – Tomas By Sep 30 at 16:30
  • 1
    @JohnK I do, and most of us do, it was just to underline some senseless restrictions that we have. – user108322 Sep 30 at 17:59
6

To expand on a comment from @Flater:

This is totally expected

You haven't mentioned how long you've had the job, but a standard way of "ramping up" new team members (especially new graduates!) is to have them work on nothing but bugs for a while. This allows them to get familiar with the code base without the additional complexity and deadlines of trying to fit new functionality in.

When I was freshly graduated, I was tasked with coyping data from excel into C header files, and subsequently helping QA one of our products, before I ever even got to the bug fixing part! Suffice it to say, after a few months I was working on new features, etc.

Learn the codebase, get better/faster at fixing the bugs (this usually comes with familiarity), suggest some potential improvements (don't expect them to necessarily be implemented) and you should begin to get a piece of the more "interesting" work. That being said, as others have noted, you need to expect that good chunks of your time will be maintenance/bug-fixes on a mature software system like the one it sounds like you are working on.

  • Correct, it is standard practice for all new hires to do the random bugs that take tons of research and little work. – Trevor Sep 30 at 17:48
  • @Trevor I don't know about the last bit. I try to assign anyone new/junior a task that it seems like they could handle (ie, not critical or complicated). Ideally it wouldn't take that much research. – BradleyDotNET Sep 30 at 18:28
  • 1
    I mean research into how the code works. Not project research. Just learning how the code flows, learning the styles, etc. – Trevor Sep 30 at 18:48
  • @Trevor Understood, sure the intent of most starter tasks is to add familiarity – BradleyDotNET Sep 30 at 19:19
  • "When I was freshly graduated, I was tasked with coyping data from excel into C header files" I hope you automated this. – Shadetheartist Sep 30 at 23:43
37

Maybe not what you want to read, but being able to read and understand code is a VERY important skill for a developer and fixing (and searching for) bugs is an excellent opportunity to improve this ability.

Moreover, coding is not about writing code, but about thinking how to write good, maintainable and efficient code. I suppose this is a pretty complex (and maybe legacy) system, so this is a chance to understand how not to do things and try to find ways to improve stuff.

This website doesn't answer what you should do, so I won't tell you to keep working there, nor will I tell you to leave. Just remember that you can search for other jobs while you are employed. You don't need to quit before resuming your job hunt.

  • I agree on that fixing bug is a good way to understand software architecture and get skills but I don't see myself only doing that for the next 40 years of my life. I believe that something in the middle (developing new pieces of code and fixing bug) would be much more stimulating to me. Anyway I know that I can search a job before leaving, thought there is still the problem of too short experiences :/ – user108322 Sep 30 at 8:14
  • 3
    If you got this job with little to no experience, you are able to do it again, and again, and again. Also, your first job usually doesn't define the rest of your career. You might be doing this today, but in five years might be doing something completely different. – undefined Sep 30 at 8:17
  • That's true, the thing to consider is that for good jobs, companies usually ask experience with a specific tool / language: I would like to work with Python which is a language that I like but if I have 5 years experience with Java, it is unlikely that I'll get a job where 5 years of experience with Python and X library is required. – user108322 Sep 30 at 8:20
  • @stbr: You're a new starter. Don't just assume that the rookie tasks you are started on are going to be the next 40 years of your career. Most chefs started as a dishwasher, and most developers start on bugs before development (both with juniors or when new to a team). – Flater Sep 30 at 11:45
  • @Flater Then my question is how to deal with an interview let's say as my previous exemple where the company asks for 5 years of experience with Python when I did only Java bug solving ? Do we always have to be "passionned" aka improving all the time from home on our own time (tbh I don't find it really fair, our spare time should be used the way we want) ? – user108322 Sep 30 at 11:59
25

TBH, you come off as a little bit entitled in your question.

"I can't listen to spotify."

"I can't download software from the internet."

"I'm bored with my tasks. They don't give me anything exciting to work on."

"They get upset if I arrive late."

Well... the company doesn't exist to make you happy. They don't exist to fulfill your desires. Your job, which they pay you for, is to fulfill the tasks they give you, and to abide by the rules and policies that they have implemented.

If that isn't sitting well with you then perhaps you should look for employment elsewhere. Some companies are better at creating a fulfilling, satisfying, relaxed, and open environment than others. If this company isn't to your liking then find one that is.

  • 8
    I think that you misunderstood the point of my question: you highlight things that I don't really consider as important, but to illustrate (aka the example with Spotify that I especially said it's minor). The point of my question is how to manage it, I know that I'm not happy but leaving now is not a real option (I wrote about 10-15 lines to explain why, I expect people who answer to at least read it...) – user108322 Sep 30 at 14:12
  • 3
    I did read it. There are only two choices: 1. Stay. 2. Go. If you stay then you'll need to "suck it up" as they say. If you leave then you'll have to assume the risks that you laid out in your question. There isn't anything else to say about it. – joeqwerty Sep 30 at 14:15
  • 5
    OP: I also read your question and came away with these perceptions. I'm honestly not sure what, exactly you are looking for. You disagreed with an answer that basically said you should be using your time to learn and you've now disagreed with an answer telling you your only real two choices. It appears you've asked the question with an answer already in mind and are really only wanting validation. If you'll save us all time and submit your own answer, you can even select it as your chosen answer. That way you validate the answer you really want. Sorry if I'm harsh, but really.... – CGCampbell Sep 30 at 14:33
  • 4
    This seems like an overly-simplified answer. Yeah, I guess with almost any conflict in the workplace, you have those same two options (stay or go), but the "stay" option usually has a lot of actionable items within it. There are many strategies OP can apply to make the most out of their situation before abandoning it altogether., as other answers have suggested. – maxathousand Sep 30 at 17:20
  • 4
    "Well... the company doesn't exist to make you happy. They don't exist to fulfill your desires." These are terrible points. Exact same rhetoric would be used to shackle employees to unfair labor practices and abuse. – 8protons Sep 30 at 17:42
4

At this point if things are running smoothly your manager doesn't have any reason to change things. What you should do as you read code and fix bugs is look for opportunities for improving the existing code. Not "features", but cases where there's repeated code, fragile code, whatever. Think about "why" the bugs are occurring, rather than just fixing them.

When you identify something, think a bit about how to refactor to improve it, then ask your boss if you can go ahead. If you've identified a problem and have a clear fix with real advantages over the existing code, your manager should give you the goahead. That should give you a more substantial piece of work, and also start giving your manager a feeling that you are ready to do more than simple bug fixes.

  • Good suggestion, although it is not easy to refactor stuff as the software is very complex and refactoring one class would imply a lot of changes in many other areas of the case (+ the code is not so horrible, usually it does not require a full refactoring). Maybe I should pay more attention to it and try to find some piece of codes that I might be able to improve when I'm bored. – user108322 Sep 30 at 17:00
  • @stbr Yes, I'm thinking not some major restructuring. Maybe a case where you see some (semi)repeated code. Or you see some "utility" methods that really belong together in a class. Something small enough to be doable and approved by your manager, but big enough that it moves you along to bigger things. – DaveG Sep 30 at 17:31
3

Ask your boss if you can be involved with some of the new features, as well as bug fixing.

You probably don't know your way around the company code well enough yet to write something big on your own, but you could be part of a team working in a new area, at least some of the time.

Everyone wants to work on new features, no one likes bug fixing old code, so you will be competing with all the more senior people but a good boss will try to keep you happy.

You will get faster at finding bugs as you learn your way around the code, and bug fixing is a good way to learn the code.

I know it's not glamorous, but that's why they're paying you. If a job was fun, they would find someone who would do it for free! Stick with it for at least a year and see if things improve after your annual review. If a few people leave and the company recruits a few new people next year, you could become a 'senior' faster than you'd expect.

  • Thanks for your answer. I'd like to add that it's a big company and one of the rare company that needs IT of the area, which means people usually stay long and most of them are "family father", so they're okay with the job as long as they can earn money and get their work schedule respected. I mean here that it's not so easy to become a senior, in such old fashioned companies, only years within the company counts. Still even the senior do the same tasks as me (although some of them get to work on some projects more often), so even if I would be senior I would probably still be bored here. – user108322 Sep 30 at 8:25
  • In that case, it might be worth moving to a city with more IT companies once you've got a year of experience, before you get tied down by a house and a family that doesn't want to move. – Robin Bennett Sep 30 at 9:27
  • 2
    I talked about it to my manager last time we had a meeting 2 months ago, then a new release (spring of 2.5 months) came up and I wasn't assigned to any project, I'll try again to ask for it for the next release which will be in about 2 months, thanks for the suggestion. – user108322 Sep 30 at 14:42
  • I wouldn't assign you to any new feature either. The idea that with 5 months experience you'd bring so much to design is iffy at best, and your already-bored-in-5-months attitude doesn't bode well for your longevity in the company – user90842 Sep 30 at 17:36
  • 1
    Lack of flexible hours would be a dealbreaker for me, and is really detrimental to a decent work environment. But the problem with you is that you expect your job to entertain you, and that's not an easily fixed attitude – user90842 Sep 30 at 18:38
3

Change your mindset.

You are an employee. You are not a superstar. You don't set the rules.

Learn to be an employee. Work hard. Get things done. Learn how to function in an office. If you show your manager you fix bugs faster than experienced programmers, come to work on time, follow a schedule, and act professionally, they will likely entrust you with more challenging work.

If you show up late, challenge policy, argue, cause trouble, they will reluctantly keep you employed. If you have to be in the office at 8:30, you should be there at 8:10 every day. You should never be a minute late.

Work is hard. They pay you for it. If you think you are far better than all your colleagues, look for a better job where they recognize your skills. It's more likely that your just another junior employee having trouble adapting to working life.

  • 2
    I am not a superstar, I don't think I am above my colleagues, I am not every day late nor everyweek, it's rare. In total I worked about 2 years counting internships and part time jobs during my studies in the IT industry and always worked hard during holidays to pay for my studies. Seems like you hate the new generation. I get the point of your answer, and it completely makes sense but your last sentence is clearly border line. When I leave the office at 5:30pm in the evening I don't say about others "damn seniors that leave everyday at 4". It is clear: I am working as much as the others. – user108322 Sep 30 at 15:48
  • 1
    I have no problem with the new generation. This is a problem for all new employees at a company. Perhaps the company is just a bad fit for you? – David Sep 30 at 18:09
  • I do think that indeed the company is a bad fit for me. My question was rather about knowing if the majority of IT developers tasks was such, if not, what would be the best for me, getting some experience and then leaving, trying to leave asap or even something else. – user108322 Sep 30 at 18:11
  • I don't know about your specific situation, but in general my advice is to work hard and do a great job at everything you work on. A lot of motivation comes from within; think about how you can improve systems, code, and processes. Think about what you can do to improve yourself as employee. Aim to be great at your job, even if you hate it. Nothing stopping you from looking for something new at the same time. – David Oct 1 at 3:44
  • 1
    That's a good advice thanks, I'll try hard even though not being technically challenged is frustrating. – user108322 Oct 1 at 6:46
3

Other people have suggested that you stay because you are learning valuable skills (code review, bug fixing, etc). Boredom often means that you're not learning a whole lot or you aren't interested in the subject. If you're still learning a lot, then I think the other answers are good advice. However, you may have the skills but just want to build more than maintain. If that's the case (and I cannot determine that for you), I suggest that you hit the job market and find a new job. This does a few things:

  1. You can probably find an employer that allows you to build more. You could look into working for a startup.
  2. You're likely to get a pay increase, unless you find an early stage startup, but that kind of job might provide incredibly meaningful work.
  3. You help the market by increasing the cost of jobs that are mundane. If more people left jobs they were dissatisfied with, there would be increased demand. A lot of companies might be more inclined to adopt new technologies to make their developers more engaged, if maintaining old outdated/deprecated codebases was more expensive.
  • 2
    Great answer, definitely agree with point 3, especially in Europe where engineering is so far behind management position in term of prestige and wage ! That's what I was talking about when I meant the thing with the schedule (locked hours), it is not flexible and nowaday as software developers are demanded the companies has to attractive (thought in this case it's not really true because of the lack of IT positions: more industrial area). – user108322 Sep 30 at 16:54
2

Be diligent with what you're given.

Regularly ask for advice and guidance for professional growth from your manager and senior colleagues.

Challenge yourself to learn best practices and code patterns, and contrast what you're debugging with what you learn.

Document EVERYTHING that you do and learn at work so you can update your resume with the best of your experiences.

And lastly, solve Project Euler problems when your bored :)

I'm less than 3 years into my software development career, and opportunities abound. Soon, you'll have your pick of opportunities (each with their own problems) that may be a better fit for you. Just prepare yourself to take advantage of them.

  • Sadly I can't put in practice any code pattern as I just fix more related business problems (translations mistakes in constants, mispositionning of button etc), that's really frustrating. Yup, I started to use leetcode when I was looking for a job but stopped; I should get back to it, Project Euler seems to be a similar website. – user108322 Sep 30 at 16:57
  • I was semi-joking about the Project Euler problems, as those are all math related and "just for fun" (if you like math). I had never heard of leetcode before but it looks more intentional about building practical skills. I'd stick with that...unless you just like math. – Deveron Sep 30 at 17:45