After 5 years as lead dev small startup, what now?

2 points by Throwadev ↗ HN
I wanted to know your thoughts on what I should do at this point in my career. I've worked for the same startup for 4 years now. I am not a cofounder but I have been with the company from the start as the head of development/technology. We are a very small shop, and I don't foresee the company growing more than 10% a year from here on out. I'm also a bit unhappy with my manager's tendency to micro-manage. He is non-technical, and I feel he has little appreciation for how good of a developer I am (something like this: http://xkcd.com/664/).

I have some stock options but I doubt they will ever be worth anything as we will likely never IPO, and acquisition is possible but I don't have any reason to believe we are moving in that direction. The company is profitable.

I make ~100K, + 15%-20% bonus, but I want my base pay to be at least ~125K + bonus. I'm unhappy with the personal and career growth opportunities at this company. I have to go way out of my way to keep current with even relatively recent tech (most of the first 4 years was spent on legacy systems with 8+ year old tech, the past year was the 1st greenfield project and I knocked it out of the park with new stuff).

I'm looking around to see what the opportunities are, but I also have a performance review coming up in early Feb, so I wanted to know what I should be aiming for in case I decide to stay. What's the normal next step for a director level lead developer at a small, profitable startup after the first 4-5 years? Besides a salary increase is there anything else I should be asking for?

3 comments

[ 2.4 ms ] story [ 15.3 ms ] thread
Instead of pushing harder for a higher salary push the company towards more adventurous things such as the last week of each month being a "hackathon" week in the company.

If the founders have a problem justifying the cost make the "hackathon" week around using any new technology but it must provide some feature/fix/optimization to the current products.

I feel like you're not totally filling the shoes of your title because what you're complaining about is the tech stack which is what you should be making the decisions for...

If you want new technologies, you, as the lead have to push the company towards it and instead of debating jumping ship you need to ask yourself, "How do I get us away from legacy code and move towards a more robust newer stack".

Right, I agree with you that I am not filling the shoes of what I should be doing, and that is one of the reasons I'm not happy here, but that's not due to lack of awareness or effort on my part. I have never had issues communicating to non-technical people before. My previous managers have always commended me on my communication skills. In the past I consistently raised issues and potential areas of for improvement, explained the significance, and came to agreements with the product and project managers on a reasonable balance between continually improving our systems, maintenance, and adding new features. There is also another huge factor that complicates things, that is out of my control -- our systems are tied to a partner company and to a large extent they have determined our technology because our apps run in their servers, on their datacenter. So we've been stuck on Windows 2000, SQL Server 2000, running COM+ stuff, because those guys never upgrade their crap.

However, some projects to improve systems and to finally start looking at decoupling from the external partner are FINALLY showing up on the roadmap for 2013. I spent all of 2012 on a brand new project where I enforced my vision of how things should work (totally modern tech stack, automated builds, cloud deployments, etc). That project was a big success.

So if I were to stay one of the things I want to know is how I can convince my manager to get out of the way more, and let me handle a bigger role in planning and executing the projects. Because even though the projects are coming up, he is already starting to try to "mentor" the jr dev's by trying to get them to "own" specific new projects and feature areas for things that we'll do in 2013. I strongly disagree with this approach; I want team ownership, but with his hub and spoke approach (my +1 being the hub) to managing, there is no real development team. The Jr. dev's practically never increase their skills because they spend so much time on legacy code and tedious operational stuff that can be handled by interns (i've recommended this before, buy my manager doesn't agree).

Your point is well taken though, and it's something I've been thinking about. I would welcome any advice on how to arrange a better environment for myself at the company, that would allow me more autonomy in leading the developers. How do other lead developers at small startups handle this kind of situation? Who assigns tasks directly to developers? My manager micro-manages, and assigns individual tasks to individual developers. I know that if I got to lead the team myself I'd have been able to incrementally upgrade parts of the system to free up the Jr. developers' time, and by today they'd have a lot more free time to work on even more new features. How do I discuss this kind of thing with my manager without offending his clear need to maintain strong control over the Jr. developers?

A lot of the questions you raise are specific to the situation, feel free to hit me up with some contact info: ckdarby+ycomb@gmail.com