April 26, 2019
At Monterail, a developer's advancement is mostly concerned with a gradual increase of their responsibility for the team.
At the very beginning of their career, each junior developer sets off with a responsibility for themselves, working in their domain, as well as trying to avoid making mistakes.
A regular dev is comfortable with what they do, because they've already learnt the technology stack in Monterail, becoming crucial for their projects. They also play a role in processes involving the entire company.
A senior, on the other hand, is expected to be responsible for the whole team, and – considering their experience – to contribute to the creation of the whole development team's working technique.
I’ve been on every leg of this journey. Three and a half years ago, I joined Monterail as a junior backend developer and a few months ago I was promoted to a senior position. And today I want to explain to you what has changed for me ever since. If you are wondering what it is like to work at Monterail as a senior developer or you would like to apply for such a position, I am sure you will find this read particularly interesting.
To give our team members better understanding of their role and their career path inside the company, we have defined a role model for every role here at Monterail. It is basically a list of responsibilities within a team and a project with points like:
However, it doesn’t mean that every senior developer must meet the same criteria. After all, we don’t want to build the Grand Army counting hundreds of Stormtroopers.
Stormtrooper army via GIPHY
To put it simply, I’d say there are two key roles of a senior programmer in our team:
Technology expert is someone who is fluent in their primary technology (for me it’s Rails), they feel comfortable with it, and they have enough experience to make informed decisions. For example, they do not have to stick to the “Rails-way”, but they understand its benefits and know perfectly well when to use it.
Knowledge promoters and team leaders put themselves out there. They like to share knowledge, lead other devs, and present new concepts. They are willing to talk to a client and are great at translating technical concepts into the language of business.
Of course, most of our devs do not follow only one of the role models in one hundred percent. They should always be a mix of both.
Being a senior developer does not mean you are a tech lead in every project. If a regular dev is assigned for a tech lead – it means they are on their way to become a senior, and now they are being tested in battle. And, in such a case, a senior often serves as a backup for a less experienced programmer. They should also be a great source of knowledge about business logic and technology.
That is right. A senior programmer understands that we can save a lot of nerves and time by diving into the business requirements. It is equally important to understand the business side, requirements of the app, and technology. And once the last-mentioned comes into play, you should have all the knowledge and experience necessary to advise and recommend the right solutions.
With seniority comes more responsibility. It also guarantees the client that everything is under control, and that the quality of the code developed by the entire team is on an expected level because YOU are on your watch. And YOU are able to explain the nitty-gritty details of the project, including its technological aspects.
So if a senior dev is an expert in some technology that is slightly less familiar to the rest of their team, they are often the go-to person for devs from other teams. And they should, and usually have, the answers.
What is more, a senior is partly responsible for the company's technology choices. They have sufficient knowledge about trends and the market to test new languages, frameworks, and libraries. This is very important as it helps us stay at the top of our game. Seniors already gained the trust of all the team and they can initiate new undertakings (not just in the field of technology) and be in charge of them.
Being promoted to a senior programmer means you get more trust from the entire team and clients, thus shouldering more responsibility. So even though you can meet all the requirements that are listed in a role model, you need to be able to embrace everything that comes further.
Want to build meaningful software?
We are a team of specialists working with passion and sharing the knowledge to build beautiful and meaningful software. If you feel these values are close to your soul– join us!