DEV Community

Cover image for Career first experience and struggle as a software engineer

Career first experience and struggle as a software engineer

imad on March 20, 2018

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 ...
Collapse
 
craser profile image
Chris Raser

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.

Collapse
 
imad profile image
imad

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.

Collapse
 
craser profile image
Chris Raser • Edited

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!

Thread Thread
 
imad profile image
imad

Totally true! You have to get the most out of every experience even the worst ones, just deal with it!

Collapse
 
mtbsickrider profile image
Enrique Jose Padilla

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 :)

Collapse
 
imad profile image
imad

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?

Collapse
 
mtbsickrider profile image
Enrique Jose Padilla

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 :)

Thread Thread
 
imad profile image
imad

Thanks a lot for this great advice, I will take it in consideration for sure along my career.

Collapse
 
stevensonmt profile image
stevensonmt

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.

Collapse
 
imad profile image
imad

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.

Collapse
 
benshine profile image
Benji Shine

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.

Collapse
 
imad profile image
imad

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.

Collapse
 
kayis profile image
K

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.

Collapse
 
imad profile image
imad

I hope so

Collapse
 
realedwintorres profile image
Edwin Torres

This is exactly why most people engage in side programming projects on their own time.

Collapse
 
imad profile image
imad

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.