11

I am a junior level Java developer in a Big 4 bank. The project I am working on is using very outdated technology with no plans for upgrading, and so I am not getting any exposure to modern programming tools or frameworks

I feel as if I am falling behind in technical skills and this could hurt my career development.

I'm considering switching companies, or trying to find a new position within my bank.

  • What are the potential consequences of each of those actions, and what factors should I be considering?
  • Alternatively, how can I keep my skills sharp in my current situation?
  • And last of all, how do potential employers tend to react when someone says they left for reasons like what I'm describing?
  • 1
    I recommended some edits that should make the question more on topic. (Questions asking for advice on what to do are not practical answerable questions (e.g. "what job should I take?", or "what skills should I learn?"). Questions should get answers explaining why and how to make a decision, not advice on what to do.) – Kelly Tessena Keck Jan 8 '15 at 21:27
  • 21
    Exposure to new technology is not the only kind of experience. – Roger Jan 8 '15 at 21:29
  • 4
    If you can't see the benefit of figuring out how to handle using older technologies and still make things work perhaps your attitude could use a change. What kind of expectations did you have that may need to be altered by how work is really done versus how you thought it would be done? – JB King Jan 8 '15 at 22:43
  • 7
    I spent 3 years as a junior dev working on a system written in Ada running on Solaris 8 (left that job in 2010). However, I learned a LOT at that job. Mostly about code archeology. – James Adam Jan 8 '15 at 23:40
  • 4
    I like this question in its current form, and would like to see it reopened. I think the edit done by Kelly was great, and enough to address the current close reason and become suitable for the site. I actually saw a version of this question posted on Programmers yesterday, came here looking for a duplicate, and was surprised there was none like it already. – Rachel Jan 9 '15 at 14:40
19

I am a senior engineer working in the finance industry and my work is almost exclusively in C++ on older operating systems because we need high performance and we need stability in our infrastructure. I keep my technical skills current by using more modern languages and techniques to develop tools that won't necessarily get deployed into Production, by doing some self directed learning, and by taking advantage of the training budget for my department.

I enjoy the work I'm doing - it's quite challenging even though it is "old" technology - so I personally wouldn't want to change jobs just to work with cloud computing or whatever is the chic thing to do these days :) Developers with knowledge about financial systems are a smaller pool than developers with experience in the latest and greatest development technologies, so I wouldn't discount the experience you're getting just because the programming technology is old.

On the other hand, it depends on what your goals are. I just like interesting problems, so I don't care that the code base I'm working with is pretty dated even for C++. If your goals are to work on cloud based computing, or in "big data" developing algorithms, you need to make sure you are learning the things that will help you get those types of jobs.

It is difficult when you're first starting out to switch from an environment where you were told what you needed to do to achieve your goal (graduating with a specific degree) to an environment where you are expected to set your own "course work" for your desired career path. You have to first decide where you want to go, then figure out what you need to do to get there, then figure out how to do it. Finding a mentor to help you once you've decided what you would like to do can be very helpful.

  • 10
    Training budget? What's that? – James Adam Jan 8 '15 at 23:31
  • 5
    @JamesAdam I am fortunate in my latest position. Our team is so busy that we get yelled at for not using all the funds we have available. You remember how some mothers would tell their kids "Finish your dinner! There are starving people in Africa that would love to have that!"? We get the same speech about developers in other companies :) – ColleenV Jan 8 '15 at 23:41
  • 1
    Just to add, real cutting edge stuff is usually in languages like C/C++. Hell, the Mars Rover software is written in C. I don't know one way or the other, but I'd bet things like missle defense are too. – Andrew Bartel Jan 9 '15 at 19:36
  • @Andrew, C, C++, and even Fortran are still used heavily in aerospace. Also, Ada -- I spent several years on a major satellite program programming in Ada :) – James Adam Jan 13 '15 at 14:59
  • @JamesAdam - I have fond memories of Ada. That was bleeding edge technology when I was first starting out :) – ColleenV Jan 13 '15 at 15:03
9

If you haven't been there more than a year, then I'd say stick with it - most companies won't give new juniors the sexy jobs until they've learnt their around the business systems and prove their competency on maintaining legacy stuff. Generally, if you perform well at that, then you will be given tasks that stretch you a bit more.

If you've been there a bit longer, talk to your supervisor. Let him know that you want a chance to do more, and ask him what you can do to make sure you're given the chance.

If you have been there more than two years and there is no prospect for moving away from the scut work, I'd say it certainly is time to polish up your resume and seek other employment. Be sure to focus on companies advertising that they are working on new and exciting projects (okay, so most companies will advertise that, but you do need to filter jobs that suit you as much as employers want to you to suit them). Saying the truth doesn't hurt - "well, company x had a very stable codebase so they weren't looking to replace it with newer tech and I want to be able to work with the newer frameworks/features/etc"

2

It's somewhat irrelevant that you're a Junior Developer and you're worried about your career development. At all stages of your career you should be focused on what's going to help you grow and accomplish your goals. I'm a Senior DevOps Engineer and I'm largely in the same boat as you. I of course won't answer exactly what I'm doing to solve that quite yet :) Here is a general breakdown of pros and cons however to help you make a decision.

Option 1. Staying with the (big) company

Pros:

  • Continued building of seniority (can help with certain types of perks like vacation time and bonuses)
  • Stability is appealing to employers
  • Becoming an "expert" in the technology (you would be surprised what a Cobol expert can make...)
  • Potential for company sponsored training to keep skills sharp
  • Being able to climb the ladder

Cons:

  • Paperwork will kill you
  • Paperwork will kill you
  • Slow to adopt new technologies
  • You are a resource, more like a copier than an individual
  • You are replaceable, regardless if you're the only one that knows a system

Option 2. Branching out to smaller companies

Pros:

  • Be able to find a company using the technologies you like
  • Have more responsibilities in making design and architecture choices
  • More relaxed work environment
  • Better relationships with leadership
  • Potential for becoming part owner in the company

Cons:

  • Lack of stability can leave you without a job with little notice
  • Relocating is a pain, or being limited to only what's local
  • Can be harder to find the next job if your company is obscure enough
  • Switching technologies too often can hurt (jack of all trades, master of none)
  • Little to no protection from bad bosses

Some of the other answers give good advice on how to evaluate where you are and what you might want to look for going forward. Either case isn't going to ruin your career at this point. Just be sure to be respectful to your current employer through the process as they thought highly enough of you to give you the opportunity in the first place.

  • 3
    It wouldn't hurt to mention "The paperwork will kill you" one more time. I'd even expand it to say the bigger the company, the larger percentage of your work day will be devoted to "paperwork" which is simply a generic way of saying 'stuff that really has nothing to do with your actual job'. Pointless time sheets, PPT decks to explain something to someone's manager, meetings, meetings, meetings, and often more meetings, email threads that go on for days, Sharepoint, Sharepoint, lots of sharepoint, my god. SO MUCH SHAREPOINT. Etc... – DA. Jan 10 '15 at 3:10
  • 2
    @DA. Yep, my day is about 20% engineering and 80% meetings, sharepoint, and general admin. Filling out time-sheets as a salaried individual has to be the most asinine thing I've ever experienced. It's a crutch so bad PMs don't have to do their jobs. – Foosh Jan 11 '15 at 4:24
  • Fwiw, IBM mostly gave up timecards many years ago, for salaried staff. The main exception is government contracts, where they insist every minute billed to them be accounted for.... so it's Not Our Fault. – keshlam Jan 11 '15 at 8:22
1

Alternatively, how can I keep my skills sharp in my current situation?

Contributing to an open source project is a really great way to keep your skills sharp. There are projects using just about any tech you are interested in and many projects are very welcoming of contributors and give people opportunities for starting small with bug fixes etc. while they get up to speed.

It's very rewarding to give something back but if that's not enough, I know people who have been offered full time jobs on the basis of their open source work - for example, someone who was a contributor to Docker now works full time for Docker Inc.

Obviously this will take up your personal time and in my experience it can eat A LOT of personal time if you let it...

  • Hmmm... not everyone is able to use personal time because they are tired from work/commute and they have family. – user1261710 Mar 28 '18 at 14:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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