15

Hopefully this question isn't too software specific. I imagine there are similar situations in most other fields.

I've been doing software development for about 7 years now. Most of that time was spent doing "enterprisey" things. That is to say, I've written lots of line of business applications. Some interesting - most, not so much. I love programming, but I don't think I can spend another decade doing this kind of grunt work. I want to move into something more substantial, but so far I've been unsuccessful.

I have a wide range of interests, but none of the requisite, deep domain knowledge. I spend a ton of time reading and experimenting in my off time, but it doesn't ever translate into better work. I try to play up my "hobby experience", but employers really don't care unless you've worked on a high-profile open source project. I'm beginning to consider entry level positions at a substantial pay cut just to get a foot in the door. Though even this makes you appear questionable to employers. It seems like your first job really defines the rest of your career.

How do I make the transition away from business apps to more fulfilling programming work?

  • 10
    I suspect the answer may depend on what you consider to be "more substantial" programming work. – Celos Apr 24 '15 at 6:22
  • 4
    What Celos said. What is "more substantial"? There is a school of thought that says programming should be boring. What would count as "better work", for you? Working for Google selling advertising space?! – AakashM Apr 24 '15 at 7:48
  • 1
    Can't you find small companies that would benefit from your expertise? I assume that enterprise software development comes with software development/management techniques that others can benefit from - something that you can emphasize when applying (Just don't make it I'll come and show you how your development process should be better - there has to be a need/request) – Jan Doggen Apr 24 '15 at 14:44
  • 2
    Maybe I'm missing something here, but why can't you just apply for different jobs? – GrandmasterB Apr 24 '15 at 21:00
  • 1
    what sectors do you want to move into? – Pepone Apr 24 '15 at 23:42
19

I think you need to think about what is "wrong" with "enterprise development" and where you want to go/what you want to do.

As I see it there are 4 areas that you may be wanting to change

  • Technology - In the enterprise are you doing .Net/Java/C++? Are you wanting to do something like RoR/Python/Clojure etc. All these are used in both non-enterprise/enterprise situations. You are as likely to use Python in an investment bank as at a startup these days.
  • Projects - Is it the type of work? You may be doing CRUD apps onto a database, but you could just as easily be building high performance multi threaded realtime systems passing data into Hadoop clusters and delivering via continuous delivery multiple times a day.
  • Process - Are you doing some death march where you spend 6 months on a functional spec to spend 4 weeks writing something unrelated, or are you expediting stories via Kanban and getting instant feedback from the business as you commit code?
  • Company - Are you in a company that development is non-core to the business, or have they realised that what you do IS their business?

You need to think about what is wrong and what you want to do, you'll find that an investment bank and Netflix have more in common than Netflix and a small startup, and it's possible to do a lot of cool/worthwhile work in an "enterprise".

As regards getting the skills/knowledge, you've started to answer it yourself. As a hiring manager I want a developer to be bettering themselves, which these days usually means in your own time.

Find an open source project with the toolset/skills you want and get involved. Also download the technologies (you can get just about all legitimately for free these days), and publish code on guthub etc, then you have examples to show. Again this is common from investment banks to startups. It's one thing to talk about hobby projects, another to show them code they can review and ask you about.

You can make the move if you are committed and can show you can cut it. I've gone from

interactive media-> web-> middleware-> database-> high availability-> architecture-> management

in my time, and I've learned how to do it by getting involved in projects/technology/processes I've found interesting.

I'm now a senior manager who beat all my devs in a tech check test.

  • 2
    I'm now a senior manager who beat all my devs in a tech check test. Troll (can't help myself): your devs must be really bad.. +1 for the exemplary answer though – Luceos Apr 24 '15 at 12:58
  • 2
    @Luceos - Well I hope not, they get a good meaty code example to get an interview, lots of whiteboarding at interview, and we do TDD and peer code reviews as part of a commit (and our office has the lowest bug count/technical debt in the company), but cheers for the +1 ;) – The Wandering Dev Manager Apr 24 '15 at 13:01
  • 1
    good answer. I was the only one to get 100% on our tech test too. But I did write it. – blankip Apr 25 '15 at 15:19
2

This got a little longwinded, sorry. I found your question because of the same issues, but I'd like to first comment on your idea that your first job defines your career.

I used to worry about the same thing. I went to school for mechanical engineering, got a job as a test engineer in an R&D program. It was pretty cool at times, but I could take it or leave it. I did this for 3 years and decided I wanted to try something in the construction industry, so I applied for (and was hired) at a utility company as a project engineer, running several projects involving equipment and system replacements and upgrades. This involved preparing bid documents, selecting a contractor, overseeing their work, overseeing the design of the system if a new design was required, etc. I did that for a year and hated it, so I went back to my test engineering job.

During my second time at the test engineering job, I used excel alot, crunching tons of data. I ended up fiddling around with macros and eventually wrote something that automated alot of repetitive stuff I would do manually all the time. When I had to change something, it was a mess of a time because I obviously wrote horrendous code. But this sparked an interested. Every time I got stuck trying to make a change that seemed like it should be simple, I thought how can I make this easier. Through googling around I started discovering coding techniques, like not hardcoding things lol. You have to start somewhere right?

Eventually I got so interested in programming that I started taking classes in CS. I took an intro class, then another one covering object oriented concepts, both with java. I took data structures and algorithms, and a class in C. At this point I decided to go to the career fair at my engineering alma mater and show people what I've been doing, get their opinion on whether I was on the right track for a career change, etc. Well I ended up getting a programming job out of the whole thing.

I was so excited about my career change. I loved solving programming problems and it's the first time I can say I really had fun doing school work. Fast forward two years and I'm trying to hang on to that passion as hard as I can, because my job is sucking it all away. I'm in a small development group at a huge company that writes/supports corporate applications (internal software/systems that the business uses to do their jobs). They use Oracle e-business suite among other things, with alot of customization. Our documentation is horrendous. Unit test documents are outdated and don't explain how to run a process through the user interface. I still love programming and solving programming problems, but I feel like all I do here is wrestle with poor documentation and trying to figure out uncommented spaghetti code with 500 line sql queries, and trying to figure out how to run a simple process in oracle.

In summary, I would say that your first job does not define anything. If you want something bad enough, just go get it. That's really all there is to it. Now, if you want to make a switch from an accountant to a heart surgeon, well sure there's alot more to consider there. But for most types of career/job changes, it's not as bad as it may seem at the time. It does require hard work. But if you don't want to do that hard work, that's proof enough that you aren't that interested and keep looking. Which brings me to my next point. Don't settle. It gets frustrating feeling stuck, and it can sound like an easy solution to just accept it and stay put. But keep searching for what really fires you up. You can program anything, but for me, I need to really feel excited about the product or service I'm creating. I think to find fulfilling programming work as you asked, you need to determine what you're really interested in, then see what tools/knowledge/skills you need to be able to get a programming job in that industry.

2

I don't want to do glue and screw code anymore. I want to make the stuff that others glue and screw

The glueing and screwing is not binary. There are layers upon layers of people putting components together. Right at the bottom are probably hardware engineers, then there is the OS, libraries, libraries using them, libraries using them, more libraries and somewhere all up there are you, putting the upper level libraries together to have something for your customer. So it's not just component makers and component users, it's lots of layers.

According to your post, you are on the upmost layer. You are using components without making others, but directly delivering value to a customer.

If you were to interview for a position of component making and I were to interview you, I would expect you to already be at the lowest layer of component building in your company (or cannot get there for reasons you explain).

Every company of some size will build components of their own for their own developers so they don't have to do all that boring stuff all over again and again. You want to be the guy doing this, because it's less boring than the layer on top and it gets you closer to the layer below, even if that is in another company.

protected by Community Apr 25 '15 at 0:18

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

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