|
|
|
Ask HN: Asking About Career Path
|
|
16 points
by blah123
5796 days ago
|
|
Hi,
I have been in enterprise development with Java for 5 years. I consider myself senior (in my skill that is, not just number of years I put in). I'm still very interested in writing code and designing software. I have great review from the management. But I have a feeling like if I just keep doing what I'm doing now (for a very big investment firm, non-trading activities) I could never earn the kind of money I wanted to. It seems like enterprise developer like me always seem to be a cost/expense to an organization rather than a source of revenue. So I am thinking about what to do if I want to get a big salary jump. I can ask for a big raise (been here 5 years but the annual raise not that big) but I doubt it could help. Or I can just start over again in a new firm. I just need to make sure whatever firm I chose to work for, I want to be a source of revenue generating, not just an IT "expense". In my opinion, software companies like MS, google , Oracle always treasures their engineering staff better than the business staff. Or I can consider working for a consultant firm since I bring home the money for them as well. I'd like to hear your opinions. Thank you |
|
In most financial firms, software development staff is a cost center, even if the projects themselves are viewed as investments. So make sure you're not simply someone who does a very good job at executing project plans from other people.
Positions that are closer to the money in enterprise firms than "very good Java software developer" include:
* Architects who decide how very good developers should be writing code
* Product leads/managers who decide what very good developers should be writing in the first place
* Anybody involved in the software development process that has mastered the problem domain itself; so, for instance, if you're working on clearing software, you should be a world expert in clearing.
* People who come up with very good ideas for software projects that save or make money for the firm.
Things you can do to execute this:
* Try to move into an architecture role (be warned: this is what most devs try to do, so the law of supply and demand limits the upside here)
* Talk to your manager about what the next 3 steps are on the career path that ends with you managing a team, and then spend another 10 minutes talking about how to execute step 1 and have it recognized.
* Change groups you work on (say, from clearing to order management) and coincident to that move invest a month of diligent nighttime reading to become an expert in the problem domain of the new group, which gives you business value.
* Survey every project you've worked on so far for the company, make a list of 5 problems those projects had that cost the company money, come up with a solution to one of those problems that you can implement on your own (for instance, refactoring classes, or factoring out thorny configuration logic into Scala, or &c &c &c), and then talk to your manager about how you can demo that idea to the group.
The goal at the end of the day is to be in a position where, when you have the performance review, you can confidently put on the table a bunch of things you've done for the business. You'll know it when you've got the upper hand in negotiation; the company won't be able to afford losing you.
As much as "become an architect!" is a trap for enterprise devs, be aware that if money is your objective, "go move to a software company!" is an even bigger trap. You will make more money over your career by carefully planning and executing a strategy to increase your value to an enterprise than you will at startups.
(NB: I'm not an enterprise dev, but I work closely with a lot of enterprise devs, have successful enterprise dev friends, and have started companies with people that have later gone on to de-pants my projected lifetime earnings at enterprises).