I just started a new job in a small startup after spending 18 months at a big public company (my first experience ever). I was working with a nice team but there was no senior devs and no interesting projects and sometimes no projects at all so I was just maintaining an ePayment website that I made with another junior dev. I was really frustrated there because I couldn’t see any possibility to improve myself as a developer and become a senior one day by working with a real dev team. So I moved to this new startup (with a bigger salary), I found that the web app was already made, some devs were maintaining the backend and some were migrating the frontend to react, I still don’t know what I will be working on but it seems to me that the big work is done, so we will be doing only maintenance and some small additions.
I’m frustrated because I can’t find the right company and team where I will be learning and improving myself, I’m stuck at the part where I can only work on small apps by myself, but I definitely can’t work on bigger apps in the right way. I feel like my goal to become a software architect is threatened.
I have an engineering degree in information systems, so what I like is building systems from the ground up starting from the analysis, the design and then development, I don't want to be just a java expert or a react guru.
So what would you advice me to get the most out my experiences to achieve my goal? Am I worrying too much?
Top comments (16)
It may be true that the heavy lifting of your new team's product is done, but any startup is going to go through periods of hustle after the initial product launch. There will be plenty of work to do.
In the meantime, focus on what you can learn: how does the build & deploy system work? How is testing implemented? How do they structure & schedule work to be done?
When there are new features to be built and big projects to be started, then that's where your focus belongs. But periods of maintenance work are a chance to learn & consolidate understanding of how the codebase fits together.
Thank you Chris! I will definitely try to follow what's being done especially how a dev team is managed and try to keep up with hot technologies like react.
I finished my earlier comment in a hurry, so I didn't totally complete my thought.
It's totally natural to feel an initial disappointment when a new job isn't quite what you expected. And it may turn out that in a year's time, you'll genuinely feel that it's time to move on. But don't miss out on the chance to really see how the team does things, and learn what you can.
This is all more easily said than done, and I'm working on this too. As a favorite author of mine says: "These things are simple. That doesn't mean they're easy."
All the best!
Totally true! You have to get the most out of every experience even the worst ones, just deal with it!
TLDR; If you want to become a software architect you will need to do maintenance work as well.
"I feel like my goal to become a software architect is threatened." Let's talk about this.
Software architects are generally 10+ years senior engineers who have been tested in battle and are able to make design decisions by using their experience as a heuristic.
Especially early on in your career, you can't expect to only work on greenfield projects, and if you do, you are extremely lucky. Sure you can jump around looking for greenfield projects positions only (consultant companies), but engineering leads need people on their team that will be there to support the applications that they build. As Chris Raser says, development is cyclical.
"I don't want to be just a java expert or a react guru." More on this.
Metaphor time: Would you follow someone to battle if they have never picked up a weapon or barely have won a battle or two? But what about someone who has been at the vanguard, and surviving time after time again.
Reeling it back, you want to be become a software architect yet you don't want to be a guru in some technologies. How will you be able to make the right decisions if you don't have the experience with the technologies that you would be designing a system from the ground up?
That being said, if you are interested more in project management then that's another story :)
Thanks for your advice sir! In my previous position we were about to start a mega project to build a new core banking system because the current one is in COBOL (I was working in the national post which has financial services and much more clients than all the banks together), it was the dream project for many (or maybe any) developer (even seniors that I talked to). So I thought I was very very lucky to be part of that team with many international consultants and experts. Unfortunately, they changed the CEO and the CTO and also the strategy (we weren't involved in the new project) and I decided to quit and you can't imagine how disappointed I am because I missed a project like that one.
I'm really thinking to join a consultant company where they build software for other big companies, I did a Java training in one of them and I really liked the way they work.
So when I was talking about becoming a software architect I knew it's a long run, but you have to do the right run and not just any run, I know people with 10 years of experience in the IT field that can't architect a medium application.
And I knew also that I have to go through the junior/senior developer phase where I must master some technologies (and I'm trying to do it now), but I don't want to stop here, that's what I meant (i said "just").
I think project management can be one of the duties of a lead developer or a software architect, isn't it?
Totally can understand with missing out on a new Greenfield project with that type of scope. Probably a good decision to make the move.
"I know people with 10 years of experience in the IT field that can't architect a medium application." - Not everyone has the ambition you have :) You have no idea it is to breeze through as below average in big corporations.
I understand now with the just, but you should know if people recognize you as the guru of the technologies they are working with, becoming an architect would be a side-effect. (Imagine everyone asking for your opinion for implementation details)
-Grain of salt section-
Hmmm PM tends to be on a more business side of things. They identify what the users want and make the roadmap for the developer team. It gets blurry but more techy people don't like becoming PM's because you end up not programming and just spend your time in meetings.
But as Chris says in his follow up, Stick it out for at least a year and if it doesn't feel like your developing new features time to make the switch again.
Advice on this, keep your data structures and algorithms skills sharpened. Try to do 3 problems a week. By the time you decide to make a move, you'll kill any interview :)
Thanks a lot for this great advice, I will take it in consideration for sure along my career.
You like doing the exciting work of initial design and implementation but not the drudgery of maintenance? Congrats you are just like every other human. That's like saying you enjoy falling in love but don't want any long term relationships.
It's not exactly the case here. Going through periods of maintenance is totally normal, but no one with ambition would accept to do only this work, especially if it's not your work.
It sounds like the scope of work at the start up you just joined came as an unpleasant surprise. I think you can take that as a lesson on what to ask about in your next round of job interviews. I always ask what will the team be working on, how the team is organized, and what my role will be.
TBH, I specifically asked about all of these things and it's not exactly what they told me. But I just started and it will take more time to make a judgment.
I maintained a few legacy systems when I started as a dev. Yes it's ugly, but at least you learn what not to do.
I hope so
This is exactly why most people engage in side programming projects on their own time.
I'm a freelancer too, but I take only small projects because I cannot take on big projects if I'm not sure of the quality of the work I will be delivering. I'm trying to find some nice team to work with, it's more beneficial than working alone.