Career progression is something that I've never really had an issue with. I've been out of college for 6-ish years running around - hopefully - in a semi-coherent way. Career advancement for me has mostly changed when I have moved from place to place. I generally haven't waited for the company I work for to recognize that it it's time for some more responsibilities. All the companies I have worked for have been extremely slow at looking internally for promotions. One particular place was implementing a plan for internal advancement but even then it was mostly for pay increases. I'm not looking for pay, I am looking for learning opportunities.
Recently, we have had an exodus of developers and not all of them left for the same reasons. (I don't really want to go into the details of those reasons.) However one of the the reasons I've seen is that the company has a hard time understanding the role of senior. They label it as years of experience which in previous posts I have talked about it being a dated way of thinking about experience, especially in the technology field. Now, there is some validity to looking at years of experience as something that is to value. I think, as long as they try to keep up with their domain or language changes they could be an invaluable asset. But often I see people who have 20 years of experience not branching out beyond surface level knowledge.
If we are hiring these types of people, and they are the only ones who are complacent enough to stick around. The work environment is extremely dull. Intellectual conversations morph into apathy or lack of understanding leading to emotional attacks on their theoretical kingdoms built by them. Talking about complex problems and needing to implement simple solutions to these issues are often difficult if you can't utilize language antics due to a lack of structural knowledge of the language they use every day.
There are people who I have worked with that have been in the field for 10 - 15 years and have practiced this kind of study. I would trust their opinion over the complacent "that's what I've always done" just due to the mere fact that they have in their arsenal not just breadth of knowledge but depth to it too. That kind of diligence is invaluable to a company. I aspire to be that person. To not just explain how to fix the issue, but what caused it, why and is there a better way forward we haven't yet considered.
Anyways, Vivint Solar is the place I have worked the longest so far in my short career. When I came here I stepped down from a leadership position in favor of language preference. I also wanted to learn more about AWS and the benefits it served. At the time of hire they didn't have the official "seniority" positions. You were just hired as a Full Stack Developer. This didn't concern me until they started giving preferences to those who were later hired as an official Senior Full Stack Developer. Ever since then, it's been a battle to get recognition for my efforts.
Some may say that it seems overly unimportant to want recognition. Or some may say that I perhaps am being overly eager or too ambitious. But like I said, I'm not ok with where I am. I know where I want to go. I want to be a software architect. Everytime I ask for advice on how to get there regardless of how far up the chain I go, all I get are shrugs. How disappointing.
Getting into a software or service level architect position generally requires a number of years of experience in that role before getting hired. Which means you either need to be internally promoted, lie about experience, or get into the position at a startup. The question I can't seem to solve here at Vivint Solar is how do I get into that position? How do I naturally progress into the position we so desperately need?
I was excited about hearing that we were going to hire a systems level architect. I was even more excited after I got the chance to be a part of the interview process and interview our first candidate. Like a fountain of knowledge I sat across from one of the few people who, I saw, could help me evolve my skills that would be applicable to my career path. So of course we couldn't afford him.
The problem we have internally is not a hard one. If we were to just have a person with a high level view of our current situation, but then also had the authority to say we need to go this direction. We could fix a lot of our problems. We wouldn't really need anything else. Most of the churn we have today is each team doing their own thing. There is no unified vision. The communication between domains or even direct service to service communication is broken. So just fixing that would be a huge benefit.
My previous manager recently went to pursue ventures in another state. Since then it's been liberating. As a team (of two) we've been able to really come together and define requirements for something that has needed to be done for a long time. Besides that, we are in constant communication with the downstream developers of our products. An actual feedback loop from what we deliver. WhodathunkIt. So to say the least, being able to implement, evaluate and iterate has been a breath of fresh air.
A few days ago someone came up to me and said that a new person was going to be our manager. Someone who had been on my team before my previous manager left. I had some immediate concerns.
My biggest fear is that the person in question doesn't have the right technical mindset for the team I am on. We are the core services team meaning we don't just deliver business value but ensure other teams are successful at their jobs. Because of that, we mandate stability, we mandate insight, we mandate foresight and we mandate ideas. We are the closest team to having an architect. So constant communication and clear intent is a must, otherwise we will constantly churn on incomplete ideas.
Another factor that got me concerned was that my career path was gone. This new manager was going to have technical ownership of the team. Meaning a lot of the grief we had been dealing with, from him, over the last few years would be more likely forced due to position rather than deeper technical reasons. For our team in particular we need someone who can say no, or take a step back and ask why. If we have a yes-man, we will continue to be in the position we are in today. And really, we only need this alternative skeptical person until we can get an architect.
I was starting to think, before the assignment, that I could fill in this position. As I became comfortable with what we were doing and the direction we needed to go; I started to feel like things were going right. I think communication and documentation of our tasks were a big helping factor in that. We weren't just solving problems that randomly came in, there was process and order to how it all worked.
I ended up expressing my concerns to those who needed to know them.
As a side note, I don't think there is anything wrong with those who are happy with where they are at. If they are truly happy. I have a problem with apathy and those who try to say that apathy is the same as happiness. That perspective I don't understand or really agree with. I like learning about new things, right now Graphql and all the stuff with Apollo Server is a big time sucker for me. So moving up through the chain of command isn't for everyone. But for me, I need it.