November 23, 2021
The path towards becoming a software developer can lead you in many directions. You study in university, join a bootcamp, or even learn on your own to get your first internship. Even at this milestone the path doesn’t become clear. You have multiple options waiting in the IT landscape.
Freelancing, joining a product or software development company—they all have their pros and cons. Personally, after developing a product, I decided to shift towards being part of a software development company and I could not be happier about it. If you’re wondering what in this job makes me tick and whether it’d be suitable for you - read on.
My career path in a nutshell
I enjoyed this job but didn’t feel it was my terminal. I continued to search for the style and type of work that would be challenging, inspiring, and fulfilling. Eventually, I came across Monterail. Here, I use mostly Vue.js—one of the core languages for Monterail, an official Vue partner.
After being here a year plus seven months, I can clearly see what I missed in my previous jobs and what benefits are connected to working in a software development company. I will lay out the benefits below.
Pros of working at a software company
Working within a software development company allows you to engage in different projects that vary in terms of the client’s location, budget, and business model. They use different technologies, are in all stages of maturity, and come from any industries you can imagine. Each of them faces unique challenges. When you work for an enterprise, it’s crucial to stick to the budget and not cross deadlines. Working for a start-up might show you a little bit more flexibility in business decisions and usually huge excitement about the product and process itself. Meeting very different people from across the world is unquestionably a bonus.
Most projects start from scratch and I see a huge advantage here. It allows us, as a team, to suggest relevant methodologies to the client and follow good practices from the very beginning. Next to the good old Scrum, there’s also a mix of a lot of practices from other methodologies like kanban and waterfall. The way we join everything together depends on the specificity of each project — the goal here is always to create something useful.
What’s more important, I feel and see the real impact on the outcome. From the first line of code to celebrating the launch of the MVP. Sometimes a few times a year. While in a single product company, you are provided with already built software. You can’t change technology in the middle of it, nor expect the final big release. It’s rather a continuous process.
Do all new upcoming projects seem interesting? Well, you don’t always have to choose between them—it’s possible to work on a few simultaneously. How? Let me explain. Developers at Monterail are able to choose the extent to which they want to be involved in a particular project. It could be hours, it could be days per week, depending on the team structure and timeline. Speaking from my own experience, when working on the web application for booking cycling tours, I was also simultaneously part of a team working on the Monterail homepage.
Some of our team members are involved in more than one or two projects at once while others prefer to stay devoted to a long-term project like Cooleaf - the client that we've maintained a 10-year technical partnership. Both options are fine. Some good organization skills and sensible planning will become handy anyway. It's good to focus on effective communication with the team and prioritizing regularly. Jira will be your best friend if it isn’t already.
Shifting your mind from one project to another can sometimes be challenging but on the other hand is quite helpful—when you need a break from one topic, you take up a task from a completely different area. You can have your cake and eat it too.
When working at a product company, the company is the product, so it might become dull after some time and there’s little perspective on a radical change.
What if you feel overwhelmed or the project is slightly different than you imagined? Well, no one is tied to a project forever.
There’s a possibility to change it in the meantime after consulting it with your leader and unless it hinders the whole process and business goals.
Work at a software development company is usually very well organized. Having many people on board and multiple projects going on, introducing some rules becomes a must sooner or later. Further, the whole process of creating software was shaped with the knowledge and know-how of experts accumulated over the course of years. There are workflows, guidelines and well-established processes. In product companies, the main aim is to introduce the product fast which leads to skipping many important details that add to the final result and high quality.
Software companies usually have a rich talent pool including project managers, quality assurance specialists, designers. A well-knit team where everyone has clearly defined roles and responsibilities makes work organized, focused, and efficient. The teams are built taking into consideration people’s skills, availability and project’s timeline so there’s rarely a mismatch.
Teams in product companies usually lack specialists in some areas which leads to spreading responsibility and sharing tasks among developers which is not satisfactory for the people, nor good for the project.
The bigger the company, the higher chance of working with people on various seniority levels. You’ll probably meet juniors with less than a year of experience as well as principal engineers with 15+ years of building software. At Monterail, we all work together. It’s not an accident that one of our core values is Diversity & Inclusion. We’re diverse and we embrace it.
However, a software development company is not only about the developers. They definitely play a major role in delivering projects but we shouldn’t underestimate the importance of business analysts, designers, QA, marketing, sales, and HR. You’ll be surprised how many people working in IT actually have a degree in humanities. There’s huge value in different backgrounds, mindsets, and skill sets.
Even being around a diverse community and observing its work is beneficial but what’s even better, you can actually be in someone else’s shoes. Example?
At Monterail, we have squads—groups of specialists with expertise in a specific area of collaboration with external teams, where developer expertise is necessary. Our most active squads include the sales squad and recruitment squad. They offer squad members a unique opportunity to learn more about business, and to have a glimpse of other teams’ work. But stretching your domain is not limited to squads. I had a possibility to work as a support QA in one project for the whole month and it taught me more than any theoretical course.
Another way to develop personally and professionally is becoming a tech lead in the project, involving in a mentorship for less experienced colleagues or running an initiative.
Last but not least, at a software development company, you work directly with clients so you have a chance to polish your soft skills such as communication, team work, leadership, and creativity which are of great importance in any work.
Growing with the help and support of others is one thing but self-development time seems equally important. Some software development companies offer their employees a certain amount of time dedicated to learning, co-finance conferences and courses, organize language classes, and stock a company library. At least, that’s what they should do. At Monterail, you can count on even 5 hours of self-development time a month all for yourself. Access to MonteLibrary and Udemy included (how cool is that?)
Ever thought of growing as a writer of something else than code? Well, you’re more than welcome to contribute to a company blog which software agencies usually run.
Boredom is not a word I truly know the meaning of on a daily basis. Although I do have some schedule or try to stick to a routine for my own sake, every day is slightly different. A team daily meeting in the morning is a sure thing but the results of it might take you by surprise. An unexpected bug, more features added to the scope, or a subtle change of functionalities? Anything is possible.
Although it’s hard to lay out specific time frames, projects usually change every 3-4 months. Sometimes you’re involved even for a year, and sometimes it’s just a few-weeks job. It all depends on the scope of the project, whether we start from scratch or work on improving a functionality. As mentioned before, you switch technologies, get familiar with different industries and change teams. It’s hard to call it boring.
Is working at a software development company for you?
After going through all abovemented points, you might still question yourself whether taking this path is right for you. I’m the last person to tell you that working for a single product is a bad choice and choosing a software company is always the best option. It depends on different factors and most of all, mindset. Who might not be suitable for working at a software company? It’s quite tough to point anyone specifically but I would say that if you get attached quickly and are not keen on making changes, you might not enjoy it to the fullest.
But let me prompt you on the ideal candidate profile. If you: