Ask HN: I'm 23, and I dislike my job as a software engineer

38 points by sk14 ↗ HN
I graduated last June, and joined a major UK bank at their technological center in India. I switched from this first job after 8 months into it - the work excited me, since I was working on building a web based dashboard from scratch as the only developer, but that was also the drawback - I was the only developer. I figured this was more like another college project of mine since most of the things I did to build this dashboard - hacking around; googling for answers; building, failing and rebuilding - were similar to what I did as a college student anyway. Hence, I switched for an internationak supposedly better opportunity - at another finance related firm in Japan.

However, despite learning from being in a team of developers, the work here is frankly uninspiring. We work on Java EE for the web with JSF, and most of my day-to-day work simply involves mere bug fixing in the existing system. I don't see any good projects that will help me learn good tech and good coding practices.

The only reason that I feel like sticking to this job is the money. I come from India, where people in the IT profession are hired for peanuts. So the money that Japan gives me seems relatively very good, even if it is nothing compared to what the US provides for software engineers. I have contemplated a lot of times about pursuing an MS - just like my fellow Indians do - as a gateway to US and the jobs in the US.

But more often than not, I realize that maybe almost all software jobs tend to be mundane in the end. Am I wrong?

I know that in the future, I would to stick around in the tech industry, but not as a developer, but as someone who is more involved in the wholesome outlook of the product - like a product manager, perhaps.

What should I do? Am I being too pessimistic? Is it okay to feel this way? After all, it's just been a year since I started working.

49 comments

[ 4.9 ms ] story [ 103 ms ] thread
Become a gardener.
Lots of bugs and you need to be an expert on trees, but plenty of green field projects. You get to use rake now and then too.
No bugs, actually they're features.
if you want to avoid bugs and shit, then gardening is not a wise carrier change.
Maybe find some GNOMES along the way.
Try to work for a startup. There you might encounter more challenges, both in diversity of work you will have to do (in smaller startups), and in the technology and sophistication of the programming required.

Another alternative would be to switch to being smartphone developper, eventually to an independent smartphone developper, where you'll be able to find more interesting and technically-challenging projects.

Startups are a great way to "passionately work in a fast paced environment that's going to change the world"

Translation: "Passionately" - we will underpay you "Fast paced" - 7 days a week "Change the world" - we won't ipo but sell out to a company for a few hundred million which you won't see a dime of.

GL!

(Source: too much time interviewing in silicon valley)

It really sucks when the reality doesn't match the expectation. This is the reality of being a "developers" in 99% of the cases. I'm surprised you got this far and no one told you.
He's only 23, so he's probably single. Just wait until he discovers the harsh reality of marriage. No one ever seems to tell single people about that either.

There's a reason people have called college "the best years of your life". They really are; everything goes straight down the toilet after that.

(comment deleted)
Maybe you haven't been reading http://thedailywtf.com. Most programming jobs are as you have experienced. Maybe 1% of 1% work for startups on exciting projects. The rest just do maintenance on Java EE or worse COBOL.
COBOL is actually very good money nowadays. There are more legacy systems than programmers left. Learn COBOL and #StayAflotForAWhile
Much like working for a bank, which is also well paid in the UK, doing COBOL maintenance is pretty unsatisfying to a lot of people. Probably why it's so well paid.
Yep. I'm working as a COBOL developer now and the language itself is fairly simple to read and write. The hard part is learning the systems in place and how everything talks to each other, since the systems have been in place since before I was born and have just been growing ever since.
And there's plenty of horror stories about startups: ridiculous long hours, lackluster pay, and then getting totally screwed on the promised partial ownership/shares when the company gets sold.

There's pretty much no way I'd ever work for a startup. Too much risk and little up-front reward.

Some development jobs are more interesting, I've worked in a startup which was very fast pace and plenty of tech to learn and challenging projects, but the renumeration wasn't great so switched to an enterprise style company. Pace is slower which is fine because it allows a lot of time for enjoyable side projects and self directed learning. If your day to day tasks aren't challenging enough you can carve out some time to create your own projects.
(comment deleted)
Same situation led me contributing to open source projects.
Ironically, [some of] those people working on open-source projects work for proprietary software companies...
How you feel right now it's completely normal and expected because you are young and you want to learn and gain knowledge. I have changed 4 companies because I was searching for the job where everyone is writing clean code and where best practices, code review, and learning are on the high level. You can forget about that because managers don't care how your code looks like, or if you are using best practices to achieve your goal. Now what I'm doing, I'm trying to get as much as possible time on estimates, that's how you can have time to write clean code, and to learn something. If you are estimating the task, add also the time you need to review what you did and do not be scared of refactoring, if you see that something is written in a wrong way, rewrite it, don't blame around :).

Also, work and learn at home. That's your time and you can learn and do whatever you want.

Keep in mind that there is no job where everything is perfect, so collect all negative things you have at the current position and try to change them. If that's not working then leave :)

What managers love is the example and real POC. So if you think that something is wrong or old, create a POC, make a demo. That way you can get some time and resources to do something new and interesting. Don't think someone will give you such project just like that :)

Such a fantastic answer! Kudos, I share similar views.

To add to what you say, I also believe that while we easily start hating our jobs most of the times, we often fail to realize we were never excelling at them.

When I come to realize that I am currently not enjoying my current role, I think of only two possibilities. I either put in my time and efforts to make myself better at what I am doing or simply do something better that would make me enjoy my job.

P.S. grass is always greener on the other side.

Thanks :)

Your saying at the end of the comment described everything.

Frontend dev here, I feel the same about my place of work. we are an agency with ~150 clients, all working on the same opensource system (that we extend). Day to day you keep doing the same things, install module X, style item Y, but it feels all mundane. Part of that is that the most we do is support, which is usually 2-4 hour tasks.

Also we have to log hours meticulously (down to 15mins). Even after a year that is a pain in the ass and actively makes me dislike my job.

> Even after a year

I think you're starting to think like them.

IMO in software industry there are only two kinds of jobs that are interesting - ones where you create non trivial user applications using complex high level technologies and one where you create those underlying technologies. It seems you are doing boring CRUD applications, and that at a very high level too, so it is natural to feel bored. If you can't find the former kind of jobs, I would suggest that you learn/improve hardcore CS stuff and apply for a job where you would be building things at lower levels.
I had a couple jobs where the slave masters tried ego lowering.

I've been out of work ever since and love it.

I have a space alien.

God says... disfigurements polyphony's theologian's limpest ounce players saboteur's Bushnell's weakling's we'll patriarchies regenerates figurine's navigation's sequencer briefness Cerf's marchionesses Ashkhabad's fix creationism's establishing elicited countersank lumberman's infantry homerooms puritan stooge's transsexuals monsieur foresight's

How would you like to be on a failed project at Google. Miserable.

At the young age of 22 you have time to change your mind and explore and not get stuck in something that's not enjoyable. Your background will serve you well even if you move into another role.

One thing to consider is the particular context. I've seen software shops where there's a great deal of creativity and fun, so it's possible that the problem is that the bank's core business isn't software it's money. Sure, all businesses are out to make money but what they value beyond that is radically different between industries and even between companies in the same industry.

I bet the people at your bank who get the most respect dress very well, concerning themselves with finance. You might find an environment that's better or a role that's better. Or both.

Hell, you have time to make a bunch of mistakes, too.

I'm 31, and I dislike my job as a software engineer.

I had many jobs on my 10-year long career. I disliked all of them. I settled into a job that doesn't make me work that much, so I can just do other stuff and be less sad.

what don't you like about it? are you just not cut out for software development or is it just the companies?

Is there something that DOES excite you? Management? Databases? Switching Stack (lamp for ms, or .NET for full stack, cloud stuff?)

I would think if you've been doing it for 10 years, you probably can start shifting around and picking up new things and make a pseudo career change

I'm 53 and trained in a lot of other professions.

I worked as an architect, which I didn't like too much, esp. the low pay. even if I was highly successful, been on national TV and press, exhibitions, ... Then I got into more technical jobs, like surveying, civil engineering, stage design, movies and also a lot more SW jobs. They were much more interesting and I got paid double.

Then I settled as SW developer in a big internet company, which was nice for a few years, but then I took a big risc with a B2B SW project which failed. Then I worked in knowledge engineering and mechanical engineering (support Formula 1 teams with their engine testing, I was basically a virtual Formula 1 "test driver"), which was nice I guess.

But in the end getting back from mixed engineering jobs to sole SW engineering made most fun. Now I'm writing compilers.

For the Formula 1 e.g. I wrote a C++ cross-compiler for an unknown platform, for which we only guessed what it was in reality (it was a blackbox with custom PCI boards), but it was successful and eventually helped this team win a couple of championships. (the unknown platform was 10x faster than the others). But technically it was as simple as stripping g++ from all virtual RTTI calls and IO.

Writing my own compilers and now also improving the libraries and VM's around makes a lot of fun, and has a lot of impact. E.g. planning a JIT. It's not as dangerous and has not a high budget as high speed controllers for high speed cars, with 10-20 PC's and a lot of custom real-time HW involved. (For which I also planned a JIT for a Visual Basic like real-time scripting language, but would have never been allowed to actually do it). But you are much more independent, have much less stress and much higher pay. SW engineer is the top job. Esp. in the USA.

wow there are a lot of people here being doom and gloom.

Look, you're the equivilent of a fry cook. You want a good job, be a chef. How do you get to be a chef, you ask? You stick around, and get on burger duty, and eventually, someone has you cook a steak.

The point is: you're super new to this. Eventually, you will have enough experience that you can CHOOSE your jobs. Sure, 99% of the programming jobs may be boring tedium, but if you are good, you'll be able to choose the 1% that aren't.

But when you're starting out you just have to be a sponge and keep an open mind. Either find a niche or be great at everything, but dont just get by, because that's how the 99% does it.

Source: 17 years in SW - I'm an enterprise architect.

Just my two cents, but you asked for it. I give all young engineers the same basic advice "Follow your gut". If you are religious, pray about it. If not, meditate about it. Either way, the answer will probably be screaming at you in the first minute. Now having said that, I have two more pieces of advice.

First, is to see the value in every job along the way. I started out as a hardware engineer, but had this nagging voice telling me I wasn't in the right job. It took a while to realize that my heart was in software. At first I felt like I had wasted career time as a hardware engineer, but then I realized I was much better at certain software problems because of my hardware background than others. If I take inventory of all of my jobs, even from high school, I realize that I have skills to this day that can be traced back to them. Even the ones I absolutely hated.

Second, while finding your niche is important, also find the right boss. Bosses have almost as much to do with liking your job than the work itself. I actually think it is harder to find a boss worth working for than finding work I want to do.

You can try smaller companies. From my experience, they're awesome because they care about teaching you stuff, and also what you do really does make a difference for the product you're building.

Bigger companies will always be less flexible, and especially banks love rules. The bigger the company, the more process (aka. bullshit) can get in the way.

Agreed.

For example, Microsoft is now swell, really. I mean, do you think it was really that difficult for them to improve Winphone ASAP? Of course not. But it took them so many years, they failed Windows Mobile, bought Nokia, destroyed Nokia, stopped releasing updates to older phones, and now they're dumping Lumia. After all these years, they still don't have a solid user-friendly OS. I know, people always complain about the lack of apps, but I believe Winphone has a bigger problem: it is not designed with the users' happiness in mind. Microsoft is too big that transforming ideas into products is so slow due to all the bureaucracy.

This is not the case with startups. They mostly use scripting languages with fast development time such as ruby. While ruby fits well for prototyping purposes of startups, banks and huge companies use enterprise solutions like Java, which has slower dev time, but instead comes with many rules. It's "business best practice".

This is all true, but a small company isn't necessarily a start-up. They might have an equally established stack, which can be a blessing in disguise. I made a lot of money before university rewriting VB6 apps into C#, and making the UI better. Some of the most gratifying work I've done, because they gave me pretty much complete freedom.
Had windows phone, loved OS. People complained it was a lack of apps because there was a lack of apps. Also there was lots of crap in the app store and it was hard to differentiate good and bad apps.
(comment deleted)
I'll just say that getting a MS will not change your situation at all. MS is just a couple of years of working experience, and a stamp of validation if you get it from one of the top 5 institutions. Talk to product managers and see if their daily tasks are any more interesting than your daily tasks.

I'd say what you are going through is pretty similar to a lot of software engineers. It also contributes to why a lot of engineers end up starting companies.

What I realized is not that I dislike Sofware Engineering, it's that I can't adapt to the 8-5 culture. It's impossible to manage family, friends, health and personnal projects while working 8hours in a office (when in reality it's more about 10-11hours a day because of commute, lunch preparation, lunch break, sleep dept, etc.).

In fact, I LOVE Sofware Engineering. I realized that when I left my previous job to get back to school. Every time I had some free time I was programming on personnal projects.

> almost all software jobs tend to be mundane in the end. Am I wrong?

No, you're not wrong. Almost all jobs of any kind are mundane. You can either accept this and deal with it like most people or work to find a job that isn't mundane to you.

I understand your problem the truth is that you are being paid to fulfill someone else's dream. You're giving up your dream for money.

Work is not about you. It's bigger than you. It's a way to get society's needs met.

Your job is to find your dream, define it and balance both work and your goals. Understand that you'll work for someone but it's only temporary until you get your dream going.

Do this or you'll be changing jobs and careers without much fulfillment. It's only going to be a drag.

If you're lucky you'll fall into a job with an inspiring leader. Where his/her dream will be comes yours but don't count on that.

There's the sentiment that says, "Do what you love, and you'll never work another day in your life."

The question is, "What do I love?" What I think it really means is "Define your current job in a way that fills your needs and you'll never work another day in your life."

Good luck, finding your needs.

Hi, I too went into Java EE, and started thinking I hated programming.

Luckily for me the IT crash of 2001 happened and I was out of a job. After a while I did data entry and automated that ... which I enjoyed.

It turned out that it was Java EE I hated (and the horrible codebase we used). Since then I switched to Python and it reminded me that programming can be fun.

Sure, there are a lot of web apps that aren't the most exciting, but I'm always moving forward and learning new things. Try some other languages and see if you like them - when I started with Python, I learned by building a simple breakout game with pygame.

In every job it helps to find an element you can enjoy ... for me I am never touching J2EE again, it was just so horrible.

Also - you NEED to work in teams with other people, hopefully there will be someone smart in the team you can get to mentor you + there will be good code you can learn from.

S

Age 27. Had same problems.

School is one of the most addictive drugs you can take. Dedicated learning is completely different from on-job training (which mostly doesn't exist) and experience through work.

The pace of job-learning is significantly slower, additionally the things you learn are not what you were hoping to. This means that it will be harder to identify what you gained. Be sure to update your resume monthly until you get better at recognizing these things.

As 'Hellwd' said, you will greatly benefit from learning how to grow on your own time. It will also give you the opportunity to choose your own career path instead of taking whatever path closest fits your company.

Remember : If you plan to return to school within the next 5 years, then there is little risk in what you do for the next few years. Now is a good time to experiment on your employment needs.

I know several people who have left the industry, happily, for jobs that keep them outside.

There are cool jobs, they are just harder to get, and its difficult to appreciate the forest through the trees. Every job has crap parts.

I graduated college, went away to teach English in another country for a year, and came back to the United States with a nice amount of student loans knocking at my door. I applied to all jobs across the board pertaining to my degree and no one replied. I decided to go into another realm: programming, which I had taught myself at a young age (12). I applied and managed to get the job. I had some training to do in order to catch up, but I was paid starting at $10/hr. After my training was complete, my pay was bumped up to $12/hr.

At that rate, you know how long a $40,000 student loan was going to pay off? I needed to do additional work to catch up. Basically, I designed and developed Auto-Collision software, from adding new things to mostly fixing up old bugs & errors, etc. Severely underpaid. I loved the job but my boss made my time there hell. He was a micromanager. He taught me a bit of logic, but really didn't do me any favors.

During my time there, after work, I'd go home and search Craigslist for people looking for web designers and managed to make some good money that way. About a year and a half later, I had already gotten deep into web design and development, which I loved. It wasn't enough to quit my day job, but it was enough to give me the confidence to start looking for other jobs in that area.

To make a longer story short, I ended up leaving, but before I left, my boss had offered me double my salary. So I would've been making $24/hr. I turned it down because with that offer.. everything came with a catch. If I made any errors or anything like that, he would've thrown it up in my face: "What am I paying you this amount for?" etc. So I couldn't deal with it and ended up settling for less. More than what I was making, but far less than the double salary. I didn't care because I managed to accumulate a lot of experience within the next 5 years.

I ended up getting 2 web design jobs at the same time (one from 8 AM to 5 PM and another from 6 PM to 2 AM) and did that for 2 years before getting laid off by the former, and now I currently work the latter. About 2 years later, I would end up making the salary he offered me, plus benefits and a ton of vacation time and the freedom to not have a "micro-manager" constantly hovering over me.

You can read more about it here: http://confessionsoftheprofessions.com/the-opportunity

Anyways, the point is: Sometimes you do have to stick it out for a time, but take it all as a learning experience until you can quit the job and get one you love. If you aren't happy doing something, than find something that makes you happy. It makes your life totally worth living.

I not only still work at my day job, but I run a freelance business, a software company, and several side projects, and although I find myself working 15+ hour days sometimes, I love it and I don't think I'd have it any other way. If you take everything you learned and you apply it, you can make an excellent living, but turn that living into something you want to be doing everyday.

Also: The more you know, the more valuable you are. If you've gone 6 months to a year and the company has grown and yet you've seen no "returns on your investment", than start looking for another job, but don't be afraid to ask them to consider "better benefits" for you or at least a raise.