Forum menu
Software Dev - Care...
 

[Closed] Software Dev - Career Direction

Posts: 3351
Full Member
Topic starter
 
[#11855410]

I recently went for a promotion at work but didn't get it. I won't go into detail on that but it's made me wonder if I should not only look elsewhere but also seek to change what I'm working on.

My day to day job has been working with Java on backend web services for customer management systems. There have been some interesting projects, starting from the ground up but it's starting to get a bit repetitive. Also in my current job, we're developing things at such a pace now that the code quality and reuse-ability has hit rock bottom.

I think what I'm looking for is greater complexity at a slower pace, and something more data or algorithm based. In what I do now, everything is a String or an object containing fields of Strings. These are passed between services, then outputted or persisted. I think the most complex thing we do is parse a date and work out if we're currently before or after it. At uni, I used Matlab to implement algorithms to model acoustics! Something in between would be good.

Anyone have any thoughts on what sort of jobs I could look for, and which sectors these are more likely to exist in? Finance sector perhaps? Should I learn Python? I could probably pick it up quickly


 
Posted : 23/04/2021 10:54 pm
Posts: 3351
Full Member
Topic starter
 

Quite ironically, this post is failing to appear in the Chat forum.....

EDIT: Adding this reply made it appear...


 
Posted : 23/04/2021 11:43 pm
Posts: 1470
Full Member
 

Also in my current job, we’re developing things at such a pace now that the code quality and reuse-ability has hit rock bottom.

This is kind of your own fault. You write the code. If it's bad then you should have told your manager it would take longer.

Should I learn Python?

I don't think this is the right question. If you apply for a company that do exclusively python it would probably be a good idea to read about it. But it won't take more than a month or so to pick up any language given you know java. If a company dismisses you outright because you don't know language X then I would probably avoid them. I write C++, Typescript, Python, Rust most days in my job. Not an expert in any of them and usually get pulled apart in code reviews by people more familiar but it doesn't take long to pick them up and be able to contribute some code.

Anyone have any thoughts on what sort of jobs I could look for

Have you tried applying to any of the bigger companies? It's not for everyone, but I work for one and they pay alright and I work on lots of interesting problems in a constantly changing environment. I should say, most of the time I'm working with

a String or an object containing fields of Strings

But every now and again there is something fun to design.

By the way, it's not unusual to be a bit annoyed after being declined a promotion. Did you get good feedback and is there a clear path to you getting accepted next time?


 
Posted : 24/04/2021 12:48 am
Posts: 5839
Full Member
 

Where are you based and how willing are you to move/travel. There are remote only companies out there but they are more limited than people imagine.

Depending on your level and your interests there are loads of companies you could work for, you may often find the work boils down to implementation of libraries which leaves you with the string parsing input and output though.

It sounds to me like you are more interested in writing experimental, or exploratory code, as when it comes to implementation of an algorithm, you can usually just find where someone else has already done this.


 
Posted : 24/04/2021 8:32 am
Posts: 3329
Full Member
 

Data science / analytics? Where I work those guys seem to have the most fun playing with data to see if they can turn it I to useful things


 
Posted : 24/04/2021 8:39 am
Posts: 6678
Free Member
 

I'm not an IT person but my wife is. As above some of the bigger companies, particularly the consultancies might offer more varied work over time. I think delivery demands are going to be common in any job though.

My understanding is the the culture reflects the industry. So finance would be more pressured.

My wife now works for the civil service, project managing things to do with robotics, ai and data analytics. It sounds interesting. It's new so developing fast and often has a positive meaningful impact.

Coding is a good skill to have right now. Lots of work out there. I'd do some research and think about the good and bad boys of your job and take the plunge and move.


 
Posted : 24/04/2021 8:45 am
Posts: 5149
Full Member
 

Plenty of perm or contract opportunities in the public sector and the pay/benefits is reasonable. Perhaps more importantly, the focus is generally more about sustainable pace and not compromising on quality or building a load of tech debt.


 
Posted : 24/04/2021 9:14 am
Posts: 401
Free Member
 

Have a look at Apache Spark which might fit your skill set. If I were you I’d probably look at a Fintec startup who may forgive the lack of analytics track record for the coding experience.


 
Posted : 24/04/2021 9:22 am
 5lab
Posts: 7926
Free Member
 

I'm hiring jvm devs at the moment in the South East (financial services). No complex modelling, but the platform we're building from scratch will be chunking through over a billion transactions per year once its fully rolled out, all of which need guarantees for consistency and reliability.

There are interesting problems that aren't just involving modelling 🙂


 
Posted : 24/04/2021 9:46 am
Posts: 9824
Free Member
 

Niaive post of the year goes to:

This is kind of your own fault. You write the code. If it’s bad then you should have told your manager it would take longer.


 
Posted : 24/04/2021 10:01 am
Posts: 1230
Full Member
 

Some of the more complex things I've worked on have been Linux Kernel patches: at least in terms of the complexity of the environment if not the patch itself!

And more generally, OSS can be good from a code review and quality perspective. I'm not saying this is 100% true across the board, but certainly for larger projects like the kernel the bar for contribution is pretty high.


 
Posted : 24/04/2021 10:08 am
Posts: 3351
Full Member
Topic starter
 

Also in my current job, we’re developing things at such a pace now that the code quality and reuse-ability has hit rock bottom.

This is kind of your own fault. You write the code. If it’s bad then you should have told your manager it would take longer.

Not my code 😄 nor any code I let through a review. It's what others have done or allowed to be merged where I'm seeing the rubbish.
EDIT: Also there has been an occasion where I refused to approve a merge because it was completely the wrong approach, even though (the more experienced) dev was saying they would fix it in tech debt afterwards. They just found someone else to approve it in the end I think.

By the way, it’s not unusual to be a bit annoyed after being declined a promotion. Did you get good feedback and is there a clear path to you getting accepted next time?

Well, I wasn't going to go into the detail. But essentially I'm already doing the job at that level (senior), including line management. Feedback has been very poor. A vague development plan has been produced, which is just the job spec rewritten. No specific areas highlighted that I need to work on.


 
Posted : 24/04/2021 11:29 am
Posts: 3351
Full Member
Topic starter
 

There are interesting problems that aren’t just involving modelling

Definitely. I liked the projects where we started from scratch. Migrating from or integrating with legacy systems is a good challenge too.


 
Posted : 24/04/2021 11:35 am
Posts: 3351
Full Member
Topic starter
 

My understanding is the the culture reflects the industry. So finance would be more pressured.

From what I gather, it's very slow paced as compliance is obviously huge. Former colleagues have gone to that sector then moved on again shortly as they were bored.


 
Posted : 24/04/2021 11:39 am
 dazh
Posts: 13390
Full Member
 

I've grown to despise the software industry, in particularly web development. Unfortunately it pays well and it's too late to do something else, so it appears I'm stuck in an environment where developers write massively over-engineered code to levels of perfection and scalability which are simply not required for the projects I'm working on.  The result being that the clients pay 10 times more than they need to, all to line the pockets of software engineers, scrum masters and all the other related hangers on making a mint by doiing stuff that's not really necessary. I've come to see it as rather immoral.


 
Posted : 24/04/2021 11:54 am
Posts: 5839
Full Member
 

scrum masters and all the other related hangers on making a mint by doiing stuff that’s not really necessary

Some of us are useful, some just add overhead I'll accept, but if you've never worked with a good one you've never seen the benefits.


 
Posted : 24/04/2021 12:40 pm
Posts: 5149
Full Member
 

scrum masters and all the other related hangers on making a mint by doiing stuff that’s not really necessary

Yeah, just let the devs crack on - what could possibly go wrong 🤣


 
Posted : 24/04/2021 1:20 pm
Posts: 7203
Full Member
 

My understanding is the the culture reflects the industry. So finance would be more pressured.

From what I gather, it’s very slow paced as compliance is obviously huge. Former colleagues have gone to that sector then moved on again shortly as they were bored.

Correct. As a bank the price of getting something wrong isn't just monetary, it could be reputation damage or regulatory censure.

I work in international payments. We have 4 releases a year, I have my releases planned out to q4.2022 (obviously with scope for urgent work left in). It's glacial compared even to fintechs or e.g. something like booking.com


 
Posted : 24/04/2021 2:49 pm
 poly
Posts: 9130
Free Member
 

This is kind of your own fault. You write the code. If it’s bad then you should have told your manager it would take longer.

Even if he had written that code or scoped how long it would take I don’t think this is his own fault. It’s a company culture thing - and it’s not necessarily even wrong, if the next big thing in s/w will result in a massive rewrite in 2 yrs time anyway why make code that’s perfect today.

Should I learn Python?

I don’t think this is the right question. If you apply for a company that do exclusively python it would probably be a good idea to read about it. But it won’t take more than a month or so to pick up any language given you know java. If a company dismisses you outright because you don’t know language X then I would probably avoid them. I write C++, Typescript, Python, Rust most days in my job. Not an expert in any of them and usually get pulled apart in code reviews by people more familiar but it doesn’t take long to pick them up and be able to contribute some code.

The question is, if you were a company doing interesting algorithm stuff using say python, why would you waste your time on a candidate with no experience doing the relevant stuff with the languages you use? Especially if you are hiring senior people. I only consider people with no relevant language experience if we have exhausted the other options - lack of prior knowledge leads to people writing crap code like you have said you do, and in small teams at least (or potentially anywhere with time pressure) that gets merged and creates exactly the issues the OP wants to avoid.

So I’d say yes, go learn some Python, do a personal project to prove you know enough rather than read a book on it. Learning a new language is never wasted, and helps you understand the limitations/benefits of different options. If you only have a hammer everything looks like a nail. If you only know Java everything seems like it should be solved in Java.

If you really want to do clever algorithm stuff I’d actually say consider C++ it’s where the grunt stuff actually gets done (or C) and not as sexy so IMHO likely to be both a more quality focussed solution and potentially well paid.

If you really want to do quality development consider medical devices or aviation - but be prepared to be frustrated at the paperwork to make a change!


 
Posted : 24/04/2021 5:13 pm
Posts: 5054
Free Member
 

I was a Programmer (COBOL, CICS COBOL, Easytrieve II and Natural Adabas plus wrote our own JCL) in the 80's, looks like nothing has changed...


 
Posted : 24/04/2021 6:46 pm
Posts: 1244
Free Member
 

I’ve grown to despise the software industry, in particularly web development. Unfortunately it pays well and it’s too late to do something else, so it appears I’m stuck in an environment where developers write massively over-engineered code to levels of perfection and scalability which are simply not required for the projects I’m working on. The result being that the clients pay 10 times more than they need to, all to line the pockets of software engineers, scrum masters and all the other related hangers on making a mint by doiing stuff that’s not really necessary. I’ve come to see it as rather immoral.

start your own business and undercut them then 😉


 
Posted : 24/04/2021 7:01 pm
Posts: 12087
Full Member
 

From what I gather, it’s very slow paced as compliance is obviously huge. Former colleagues have gone to that sector then moved on again shortly as they were bored.

Depends massively on the project. I work in IT for a big Spanish bank, and the projects vary a lot - I'm currently working on a risk management tool, which has no particular compliance or regulatory requirements, and we can move quite fast (and occasionally break things). Work on something that's processing credit card details online and the pressure to get it right, first time, is considerably higher 🙂

We also have a massive range of technology, from legacy Cobol systems to the latest and greatest Scala/Spark stuff doing big data analysis etc.


 
Posted : 24/04/2021 7:39 pm
Posts: 1130
Free Member
 

Join one of the big consultancies. You’ll get a much better variety of work and experience than you’ll ever get working for an end user company. You’ll also get much more opportunity to learn different tech.


 
Posted : 24/04/2021 7:43 pm
Posts: 13594
Free Member
 

If you really want to do clever algorithm stuff I’d actually say consider C++ it’s where the grunt stuff actually gets done (or C) and not as sexy so IMHO likely to be both a more quality focussed solution and potentially well paid.

Surely you want to join a company where there is a need to develop clever algorithms. The language is pretty irrelevant as in you could learn all the C++ you want but if all the application requires is basic string manipulation, that's all you're ever going to do...

NB I develop all sorts of clever algorithms in VBA, mainly as no one writes any libraries to do anything in VBA, so I get to develop everything from scratch. Absolutely love it.


 
Posted : 24/04/2021 7:54 pm
Posts: 3351
Full Member
Topic starter
 

@footflaps that's my thinking, finding a sector or company where I'm going to find the stuff that interests me.

Join one of the big consultancies

I've seen interesting jobs with consultancies. I'm slightly wary of them though. They would be great for getting exposure to different projects but if the delivery is not well managed it could be hellish.


 
Posted : 25/04/2021 10:22 am
Posts: 13594
Free Member
 

I’m slightly wary of them though.

They also charge by the hour, so have no incentive for simple solutions. An ex-colleague who went to work for a well known Cambridge consultancy left after a year. He was absolutely slating them for just stuffing projects with programmers and having very low productivity as the motivation was to maximise chargeable hours. He said he'd never seen so many people achieve so little.....


 
Posted : 25/04/2021 12:44 pm
Posts: 1130
Free Member
 

While consultancies do charge by the day, and yes, they want to maximise billable hours, it’s rare to have an open ended time and materials project. Most projects are either T&M with a cap based on estimated effort. Or fixed price. And if it’s fixed price they’ll go to extraordinary lengths to be efficient.

Unless it’s IBM or Accenture, they’ll just start writing change requests 🙂


 
Posted : 25/04/2021 4:32 pm
Posts: 5149
Full Member
 

Most projects are either T&M with a cap based on estimated effort. Or fixed price.

Depends on the client - many Gov contracts using GDS are time and materials. It’s good to see the realisation that trying to precisely estimate cost is generally a waste of everyone’s time and effort.


 
Posted : 25/04/2021 6:01 pm
 poly
Posts: 9130
Free Member
 

Surely you want to join a company where there is a need to develop clever algorithms. The language is pretty irrelevant as in you could learn all the C++ you want but if all the application requires is basic string manipulation, that’s all you’re ever going to do…

That approach could work if you happen to fall into a company that is doing the sort of algorithm development you find interesting, and that has a shortage of people with relevant prior experience but it’s not a strategy for finding a career doing it. Picking up a language where clever stuff routinely gets done is more likely to find you a way into doing the clever stuff. It’s less likely you’ll end up doing string manipulation in C++ because it’s quite painful to do compared to something like python.

But of course there are no single routes to a particular destination but some might be easier than others.


 
Posted : 25/04/2021 6:54 pm
Posts: 91165
Free Member
 

And if it’s fixed price they’ll go to extraordinary lengths to be efficient.

If by efficient to mean cut every possible corner both in terms of implementation and obtaining quality staff with appropriate skills, then I agree.


 
Posted : 26/04/2021 9:34 am
Posts: 2087
Free Member
 

all to line the pockets of software engineers

Probably the funniest thing I've read all year ...


 
Posted : 26/04/2021 10:09 am
 dazh
Posts: 13390
Full Member
 

Probably the funniest thing I’ve read all year …

He said he’d never seen so many people achieve so little…..

When you see a team of software engineers having endlessly protracted technical debates about how best to implement a simple task like pulling some data from a database and storing it somewhere in the app, you quickly come to the conclusion that they're not really focused on providing value for money. 🙂


 
Posted : 26/04/2021 11:00 am
Posts: 91165
Free Member
 

When you see a team of software engineers having endlessly protracted technical debates about how best to implement a simple task like pulling some data from a database and storing it somewhere in the app, you quickly come to the conclusion that they’re not really focused on providing value for money.

Actually most do understand this. It's the PM's that don't. They say things like "Can't you just do it the simple way?" Well, yes, we can, but if you don't want it to bite you or us in the arse in a few years' time, then you have to do it right.

MOST technologies in software exist to promote simplicity, maintainability, consistency and re-use; this is also major feature of software education and training. If you choose the right one and use it right then you will get these benefits. A great many instances of poor choices that lead to problems down the line are a result of PMs or management putting pressure on devs (either directly or with short timescales) to 'just get on with it'.


 
Posted : 26/04/2021 11:11 am
Posts: 5149
Full Member
 

A great many instances of poor choices that lead to problems down the line are a result of PMs or management putting pressure on devs (either directly or with short timescales) to ‘just get on with it’.

The thing is Molly, down the line means different things to different people. It's quite nice when the software can be delivered whilst the business need or opportunity still exists.

And in many cases, you only really know if it satisfies the business need until it's shipped.
And the coding used to be the most expensive part of the dev cycle so you wanted to get it right - that's no longer the case, UCD is.
JUST SHIP IT FFS

😉


 
Posted : 26/04/2021 11:19 am
 timf
Posts: 137
Full Member
 

I used to be team manager for a large team of 40 software developers, working across multiple technologies and clients.

In my experience some developer thrive whilst staying on one project, and others need and/or benefit from 'the kick' of being taken out of their comfort zone and dropped in to a new situation which might be new project, new technology or different responsibilities (or sometimes all three). The best setting for growth is one that gives these opportunities outside a rigid promotion process. Those who growth their skills fastest, look out for stuff they have not done before and say,' have found out about that' / 'I can find out about that' 'I can take care of that'....

If you current situation does not offer that, then time to move on.

When hiring private learning outside the workplace was always a very positive thing when considering a candidate. Frequently new role will not be exact match for old role, so track records of self staring learning is a good sign.


 
Posted : 26/04/2021 11:43 am
Posts: 91165
Free Member
 

The thing is Molly, down the line means different things to different people. It’s quite nice when the software can be delivered whilst the business need or opportunity still exists.

Believe it or not, devs are also capable of understanding this incredibly refined point.

Managers, on the other hand, are often NOT capable of understanding the issues that the devs are talking about and because of this consider them unimportant.

Sometimes there just isn't enough time to do a good job. This usually isn't devs' fault (although sometimes it is) but they always get the blame.


 
Posted : 26/04/2021 11:51 am
Posts: 5149
Full Member
 

Sometimes there just isn’t enough time to do a good job. This usually isn’t devs’ fault (although sometimes it is) but they always get the blame.

There can be a disconnect between the understanding of good.
Pareto, Perfect is the Enemy of Good etc. etc.


 
Posted : 26/04/2021 11:54 am
Posts: 2087
Free Member
 

When you see a team of software engineers having endlessly protracted technical debates about how best to implement a simple task like pulling some data from a database and storing it somewhere in the app, you quickly come to the conclusion that they’re not really focused on providing value for money.

Yeah because the engineers are in it just to fund their second homes and offshore bank accounts 🙄


 
Posted : 26/04/2021 12:14 pm
Posts: 8008
Full Member
 

When you see a team of software engineers having endlessly protracted technical debates about how best to implement a simple task like pulling some data from a database and storing it somewhere in the app,

Which isnt necessarily simple. Quite a lot of my time recently has been taken up with that simple task when the performance of the site was absolutely appalling and uprating the servers could only go so far.
In my experience the web devs dont tend to spend enough time thinking about that sort of thing as opposed to finding the latest oversized framework to plug in.


 
Posted : 26/04/2021 12:24 pm
 Aidy
Posts: 2977
Free Member
 

EDIT: Also there has been an occasion where I refused to approve a merge because it was completely the wrong approach, even though (the more experienced) dev was saying they would fix it in tech debt afterwards. They just found someone else to approve it in the end I think.

Well - it depends a bit, sometimes it's pragmatic to accept the tech debt and fix it later. Experienced devs should be able to talk people around to that though, rather than just throwing at enough people that someone will say yes.


 
Posted : 26/04/2021 12:25 pm
Posts: 5149
Full Member
 

Well – it depends a bit, sometimes it’s pragmatic to accept the tech debt and fix it later.

+1


 
Posted : 26/04/2021 12:44 pm
Posts: 91165
Free Member
 

sometimes it’s pragmatic to accept the tech debt and fix it later

Lololol. "Fix it later" hahaha...

It won't be fixed later, EVER. Because it'll get too difficult and expensive to re-do something and people will be asking for the next thing.

There can be a disconnect between the understanding of good.
Pareto, Perfect is the Enemy of Good etc. etc.

Again, most devs understand this (because it really isn't hard to understand). The problem is that managers don't understand WHY something is important, so they just assume you're being nerdy and obsessing over some detail. Good devs understand why something is important but managers and management just don't bloody well listen.

Because (and this is something I'm quite sore about) people don't respect techies in this country, because of exactly what's being said on this thread. They think we're just being nerds and we don't get the issues, so they don't listen. This is a massive problem in IT and it leads to most projects turning out shit. We can't have a good IT industry unless people start taking the knowledge and skills seriously.


 
Posted : 26/04/2021 1:13 pm
 dazh
Posts: 13390
Full Member
 

The problem is that managers don’t understand WHY something is important, so they just assume you’re being nerdy and obsessing over some detail. Good devs understand why something is important but managers and management just don’t bloody well listen.

Well I've been a dev and a manager, and now a dev again (bit of both depending on the project). If I had a penny for every time a dev tried to bullshit me with tech-speak about why someothing is going to take ten times longer than it should I'd be retired by now. A lot of junior devs in my experience seem to think their jobs are basically just an extension of their computer science studies. Now obviously I'm not against learning, quite the opposite, but there has to be a balance between delivery and spending huge amounts of time on stuff that's pretty inconsequential.


 
Posted : 26/04/2021 1:33 pm
 Aidy
Posts: 2977
Free Member
 

Lololol. “Fix it later” hahaha…

It won’t be fixed later, EVER. Because it’ll get too difficult and expensive to re-do something and people will be asking for the next thing.

Again, it depends. Pragmatic is kinda important - no point holding out for a perfect solution if the company will go under in less time than it would take to implement it.

But yeah, you often do get stuck with crap and good intentions if you're not proactive about it. Also need to be able to recognise tech debt that you can pay off vs. tech debt that you'll be stuck with forever.


 
Posted : 26/04/2021 1:37 pm
Posts: 1244
Free Member
 

Again, it depends. Pragmatic is kinda important – no point holding out for a perfect solution if the company will go under in less time than it would take to implement it.

I argue here that sometimes the quick way is the right way, and futhermore some 'high quality' code that has been written with great care can exhibit some of the same maintaince issues that you'd normally associate with scrappy tech tebt


 
Posted : 26/04/2021 1:42 pm
Page 1 / 2