Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie
Hi there,
There is an issue with role permissions that is being worked on at the moment.
If you are having trouble with access or permissions on regional forums please post here to get access: https://www.boards.ie/discussion/2058365403/you-do-not-have-permission-for-that#latest

Career advice needed

  • 10-08-2015 8:43am
    #1
    Closed Accounts Posts: 167 ✭✭


    Hi there

    I'm a software team lead at a small startup for the past 18 months and am thinking of moving elsewhere. I've been working as a software dev for the past 6 years on desktop, mobile, and now web/cloud development. While I've learned a lot, I feel that I haven't learned enough in my current role, particularly from the management/project planning point of view.

    The role has centered around a web app that was developed a couple of years before I arrived, but could've been developed 15 years ago, given the lack of coherent design or modern best practices in place. It's basically a prototype version developed by an inexperienced web developer that has evolved into a production system. It's comprised of a big collection of PHP files, which echo out CSS/JS/HTML dynamically (!!), and have raw SQL queries littered throughout the code. Debugging it is a nightmare, and often a fix for a bug causes another one elsewhere. A classic big ball of mud in other words.

    I tried for the first few months instigating a refactoring to put some sensible architecture in place, like using an MVC framework and an ORM, but this has been met with resistance by management as they're petrified of touching the design, and feel it's too much of a testing effort, so they'd prefer to keep bolting on new features. My response has been that if we keep going that route, then it'll definitely be a biger testing effort than it needed to be when we inevitably do have to redesign it.

    One of the reasons I took on the role was that I was hopeful I'd be able to get a handle on some of the latest and greatest frameworks, of which there a dime a dozen. However, that just hasn't been the case, so I feel that from a career perspective that I'm just wasting time, not accumulating experience.

    On top of the above, a lot of the time I've felt undermined by management when trying to do the project admin type of stuff. I'll try and plan a sprint, and the next day I'll learn that one of the upper managers has dragged a guy on my team onto something else. This means I'm not really a technical lead, more a dogsbody who can be ignored as it suits them, and I'm just not having that.

    I've applied for a couple of jobs, but didn't make the cut, and I'm starting to panic. I'm looking at the collection of frameworks and libraries that they want you to have and it makes me feel like the world has moved on without me, so I'd love any advice in case anyone else has been in the same position.

    Thanks


Comments

  • Moderators, Society & Culture Moderators Posts: 17,643 Mod ✭✭✭✭Graham


    dubdev wrote: »
    I'm looking at the collection of frameworks and libraries that they want you to have and it makes me feel like the world has moved on without me

    Start learning the new frameworks and libraries and build a portfolio of projects around them. It's going to take some effort outside of your day job but the alternative is you look for work at a more junior level with a company that will bring you up-to speed.


  • Registered Users, Registered Users 2 Posts: 2,152 ✭✭✭dazberry


    Graham wrote: »
    Start learning the new frameworks and libraries and build a portfolio of projects around them. It's going to take some effort outside of your day job but the alternative is you look for work at a more junior level with a company that will bring you up-to speed.

    This. I've had to do the same. Haven't had a great run over the last few years, and have had to spend a lot of time outside work doing this, would not have gotten either my current role or last role only for the projects and training I did after hours. PITA in that I value my free time as much as the next person but needs must.

    The second option, looking at more junior level I would not tend to recommend. I've done it - was in a real turkey, and to get out I took a mid-level role somewhere else, but found that as I was relatively cheap, I wasn't valued, as really just ended up doing the crap the other in their silos didn't want to do, so it was a waste of a year really.

    I've had similar problems in jobs in the past was team lead on a team of RAD developers who just wanted to drop components on forms as they'd done for their previous 10 years, and a management that just wanted to rush everything through. It's all about small wins, not pushing big changes, just small changes over a long game, eventually they start to come together and management start to see the benefits, but you have to lead them that way, not push them.

    D.


  • Registered Users, Registered Users 2 Posts: 562 ✭✭✭Flatzie_poo


    dubdev wrote: »
    On top of the above, a lot of the time I've felt undermined by management

    This is the biggest issue for me.

    I couldn't stay in a job where this was happening on each project.

    Have you requested a meeting/explained to them how you feel in an informal manner?

    This is something that should not happen.

    Root out what makes you feel like this, and explain this to management.
    This could make your working life a little easier.

    You could end up happier, and feeling more respected, instead of making a rash decision.

    Sometimes it's better the devil you know... but I think the above is worth a shot if you're competent.


  • Closed Accounts Posts: 167 ✭✭dubdev


    Thanks for all the replies folks.

    I've already taken a cursory look at some of the frameworks, but I wasn't sure if employers would prefer career experience instead of learning it in your own time - after all, how do you demonstrate that in an interview?

    I'm throwing together a wishlist of books on Amazon that I plan to buy to help with this. I've also started a github repo and committed a small project last week. From the sounds of it, it's a pretty common crossroads that a developer reaches in their career.


  • Registered Users, Registered Users 2 Posts: 68,317 ✭✭✭✭seamus


    If refactoring the existing code is a non-goer, then have a look at a complete rebuild.

    Yes, it sounds like a lot of work, but it might be the route of less resistance. Management are wary of breaking stuff that works (while continually asking you to bolt on new features), but if you can package it as something completely new, then you may get more traction.

    The things they would want to see are:

    - Modern technologies and frameworks (use Amazon EBS, RDS, and all that fun stuff). Then they can boast to clients about their ultra-modern, ultra-reliable technology stack.

    - Faster time to production. Rebuild the application in a way that allows for new features to be added more quickly

    - Lower deployment costs. Also try and build it in a such a way that test, build and deploy is almost entirely automated or developer-led. Amazon EBS is good for this as it allows deployment of complete environments without needing an infrastructural team to assist. DevOps is the buzzword du jour; companies want one small team to manage infrastructure as well as build and deployment, leaving devs free to dev. Make your product DevOps friendly and the company will be all over you.

    - Less downtime. And specifically when it's in development. Rebuilding the product means that you can run the "new" and "old" systems in parallel in production and only do a complete changeover when you're good and ready.

    People with MBAs are predictable simpletons. Present your plan as "Our Project VERSION THREE™" and they'll get excited before you even tell them what you're going to do.

    This does require something of being a good salesperson and being able to push your project to other people ahead of other things. It could also be a lot of work which leads to nothing. I've seen people put six months into major projects like this that re-engineer the product, only to have the whole thing binned without argument or explanation because someone in management decided that new features were more important than a stable platform.

    But it does present a lot of good opportunities to research and play around with new stacks, as well as selling your expertise as an architect.


  • Advertisement
  • Registered Users, Registered Users 2 Posts: 800 ✭✭✭a fat guy


    As regards other frameworks, you already know PHP right?

    So why not simply home in on PHP frameworks and market yourself as a PHP guru? Or just specialise in some niche PHP area?

    Heck, you could specialise as a PHP security guy!

    It may be a widespread language, but if you can say "I'm the PHP guy who really great at this framework/library/aspect", then you're going to make yourself more valuable. You want to be the big fish in the small pond, since you only really need one job.


  • Registered Users, Registered Users 2 Posts: 68,317 ✭✭✭✭seamus


    ^^
    Or not necessarily looking for a niche framework, but just specialising in any good modern framework - Laravel for example.

    Lots and lots and lots of small companies out there with old and creaking software who would love to be able to move it onto something new and shiny. But they lack the knowledge to do so, all their devs have stagnated supporting their old-ass software stack. Wow them in an interview, talk about how you can move things to a new framework and they'll be all over it.

    A bit like how ten years ago someone with a bit of Wordpress experience could get decent money offering to move old hand-coded websites onto a full CMS.


  • Moderators, Society & Culture Moderators Posts: 17,643 Mod ✭✭✭✭Graham


    seamus wrote: »
    ^^
    Or not necessarily looking for a niche framework, but just specialising in any good modern framework - Laravel for example.

    +1 for Laravel as a good PHP framework to learn.

    There's some excellent learning resources (Laracasts), it's well positioned for rapid application development and its popularity has been on the increase for the last few years; Sitepoint php framework survey 2015


  • Closed Accounts Posts: 167 ✭✭dubdev


    Thanks for the replies guys . We tried using laravel for a project but we had a number of issues , namely that there was tons of obsolete documentation on the web. Minor version number updates brought lots of breaking changes between releases, so that proved a big
    obstacle.

    Another problem we had was that it was too messy to get it to generate models for our existing database. It seems to be built on the assumption that you're starting with a greenfield database , but we weren't. I needed a framework where I could just run a shell command to auto generate the model and entity code in a flash from our existing schema.

    We went with CakePHP in the end as it did that and more and had a great built in debugging UI , and its a little less
    dogmatic about how you structure your application. Also, the docs seemed to be pretty up to date and consistent .


  • Moderators, Society & Culture Moderators Posts: 17,643 Mod ✭✭✭✭Graham


    dubdev wrote: »
    Thanks for the replies guys . We tried using laravel for a project but we had a number of issues , namely that there was tons of obsolete documentation on the web. Minor version number updates brought lots of breaking changes between releases, so that proved a big
    obstacle.

    Another problem we had was that it was too messy to get it to generate models for our existing database. It seems to be built on the assumption that you're starting with a greenfield database , but we weren't. I needed a framework where I could just run a shell command to auto generate the model and entity code in a flash from our existing schema.

    We went with CakePHP in the end as it did that and more and had a great built in debugging UI , and its a little less
    dogmatic about how you structure your application. Also, the docs seemed to be pretty up to date and consistent .

    You must have looked during the move from Laravel 4 to Laravel 5, there was a bit of upheaval during the move. The documentation is much improved recently and Laravel 5.1 (the current version) has been designated LTS with guaranteed support and no breaking changes for several years.


  • Advertisement
  • Closed Accounts Posts: 167 ✭✭dubdev


    Graham wrote: »
    You must have looked during the move from Laravel 4 to Laravel 5, there was a bit of upheaval during the move. The documentation is much improved recently and Laravel 5.1 (the current version) has been designated LTS with guaranteed support and no breaking changes for several years.

    It's possible ! I'm not trying to knock laravel , I've heard nothing but great things about it, CakePHP seemed to work better for our particular requirements. There is a huge amount of overlap conceptually between the two as well, so the stuff I learned from laravel was transferable to CakePHP.

    To be honest my employer is sort of forcing my hand now as I had an argument with my boss last week because a project I own was finished, then he changed the spec at the last minute and was wondering why it wasn't working as desired!


  • Moderators, Society & Culture Moderators Posts: 17,643 Mod ✭✭✭✭Graham


    dubdev wrote: »
    There is a huge amount of overlap conceptually between the two as well, so the stuff I learned from laravel was transferable to CakePHP.

    I think the overlap applies to many of the modern frameworks, even looking at RoR you'd spot the similarities.


  • Registered Users, Registered Users 2 Posts: 1,127 ✭✭✭smcelhinney


    seamus wrote: »

    A bit like how ten years ago someone with a bit of Wordpress experience could get decent money offering to move old hand-coded websites onto a full CMS.

    Ten years?? Try 2!! :)


  • Closed Accounts Posts: 167 ✭✭dubdev


    I actually started interviewing a month or so ago, and I've been offered a job. I reached a point last month where enough was enough. My boss was frequently emailing me and ringing me after hours and even on weekends. He actually just emailed me about something 5 minutes ago that was not urgent at all in fact .

    As well, he changed the spec on a project I was working on recently at the last minute and then wondered why the code didn't work, so we had a bit of a barney about that. It's just chaos in the company at the moment as he refuses to plan ahead and just cuts whatever corners he wants to get what he wants done.


    The new job sounds good in lots of ways. I'll be given a lot more autonomy in my job, they have a good long term view of their aims, theyve offered to give me paid management training, ill learn a lot and its within walking distance of where I live and they seem like a nice bunch to work for.

    The only problem is that they said they dont have the budget to match my current salary, so I'll be taking a pay cut from 60k to 52K , this is not the end of the world obviously as more than half of that would go on tax anyway, but I've never taken a pay cut to switch jobs about it and feel a bit uneasy about it.

    Any advice would be appreciated, thanks.


Advertisement