In-house product companies
As an employer
This option caries the same benefits of permanent job role as the previously mentioned position in an agency. Company sits behind you and takes care of administrative and managerial tasks. The difference here is that you don't work for people outside of the company. Your client is your company! Product companies can be well known and established ones, or startups. Startups can usually offer lower salaries as they don't yet have a proven and working financial model, but in exchange, some of them might offer you company equity or other benefits. Joining startup might be a riskier choice since it's an inception of a company.
Roles and type of work
Project(s) tend to be longer, or sometimes, never ending so to speak. Usually the single team has a total focus on a single product and take full responsibility to plan, build, support and maintain it. Workplace can be remote or onsite, and these days it seems like remote work is finally growing in popularity, but I'd say that most still prefer to have their workers onsite. You'll have more time to devote to the end customers. Most likely all of your work will be focused on one industry and market so you'll specialise in a certain field of work. You'll be or at least you can be exposed to the whole product development process and influence some decisions behind it.
Why to join an in-house development team?
Work equipment and environment is always provided to you by the company. There is much less contact required with people outside of your company. But don't be mistaken, communication inside the team is always present and very important part of software job! The main difference is working on a single project for long periods of time, most likely with the same group of people, and communicating everything from the product inception, to its deployment to production. You can fully immerse yourself in your industry and become a domain or a technology stack expert. And if that industry has any personal significance to you, you will find your job interesting and rewarding, and additionally you'll grow as an expert in that field. You'll have more autonomy, as you won't need to listen to everything your clients are saying or demanding. This frees up more time to experiment with approaches to problems, which might lead to more effective and performant solutions(quality over quantity). This can be a big plus for people who prefer a bit more autonomy in their work. Without quick change in work in-house might suit you if you've got other challenges going on in your life. Great if you find an industry you want to stick with for a long time: you'll learn from industry and business experts. There's a big chance you'll be closely involved in decisions about the products, projects and strategies. Reaching your goals or finishing a long planned project or a product can be a lot more rewarding and fulfilling at an in-house team compared to agency work. This can make relationships with your colleagues stronger as you celebrate accomplishments.
Why not to join an in-house team?
Less chance to discover different industries and paths that might be of interest to you, if the industry you landed your position at doesn't fulfil or interest you.
Since you'll be working on the same project for prolonged periods of time, you might get bored. Especially if you find yourself not interested in the industry. At some companies, you might be the only one working at the specific role, and doing your type of work. This can make you feel lonely and feel like nobody really understands what you do on a daily basis and how do you contribute to the company, especially if the engineering part is messy and complicated. If the company you've joined is small and stays that way, this might stand in way of promotions and advancements in your career.
Who you'll work with
In this type of engagement you'll quite likely work with a same team of people for longer time spans and will get to know your team quite well. You'll get to know ins and outs of the company.
From technology perspective in-house product teams most often decide to settle on a well known stack to build their product and only change it when they are sure they'll gain something by doing so. Less bugs, more performance, reliability and similar. But this also depends on the team's agility, will to learn and master new technologies, but also company's runway.
- company taking care of you
- permanent team, leadership, communication and planning patterns
- pride of taking ownership of a product, features
- having some say about what and how the product is built
- hyper-specialisation(pro/con?) and focus on one aspect of product/project development — depending on company's internal strategies and talent on the team
- working on the same thing for longer periods of time is not for everyone
- some people like to change teams and work with new people(clients) from time to time
- less exposure to different kind of environments, industries and problems
Choose an in-house role if you want to focus and specialise in one field of work or industry. Choose an in-house role if you’re looking for a steady-paced and more predictable workload.
In-house and agency work are becoming increasingly more comparable. The main decision you will need to make is whether you want to work for one client in one industry or with multiple clients in different industries. The nature of modern software development companies drives them to continuously search for a way to break the norm and that means nothing we discussed here is set in stone and is subject to change.