4 answers
Updated
658 views
software development?
1. What opportunities for professional development and growth does the company offer?
2. How does he engineering team balance resources between new feature requests and technical maintenance/debt?
Login to comment
4 answers
Updated
Chris’s Answer
Hi Christian - you're asking the right questions and thinking factors that can really make or break how much you enjoy a company you work for.
Regardless of the role, it is important to find a company that provides growth opportunities. Those opportunities may look differently in each company. Some may be obvious, like advanced training and enablement. Some may not be so obvious, like stretch projects to let you try new things in a safe environment. Your job will be seek out and take advantage of those opportunities. Most employers are not going to hunt you down to get you to take advantage of the opportunities you have. You'll need to speak with your team lead or manager and let them know your ambitions and that you'd like to be considered for stretch projects or other opportunities to work along side or under more experienced people on your team. It's great to ask the question about the resources, but its utlimate up to you to take advantage of what is offered.
Regarding balancing technical debt and new features. I would encourage you to challenge yourself to think like a product marketing manager (PMM) and not just a PM. Like it or not, whatever company hires you has a goal and that is to profit from sales of some thing or service. The sooner you begin to realize that the nice, neat and orderly world we may have learned about for pragmatic programming and good, clean development will always be at odds with the quarterly sales targets, the better you'll be. Instead of asking how to balance tech debt vs. new features, reframe the thinking to be, "What is the most important thing we should be doing right now to meet the sales goals of our company?" Sometimes the answer is new features. Sometimes the answer is better stability and tackling technical debt. If you adapt this mindset early, you will be less frustrated with the decisions that are passed down to the development team and put yourself in a great position to focus on what actually moves the needle for the company.
Regardless of the role, it is important to find a company that provides growth opportunities. Those opportunities may look differently in each company. Some may be obvious, like advanced training and enablement. Some may not be so obvious, like stretch projects to let you try new things in a safe environment. Your job will be seek out and take advantage of those opportunities. Most employers are not going to hunt you down to get you to take advantage of the opportunities you have. You'll need to speak with your team lead or manager and let them know your ambitions and that you'd like to be considered for stretch projects or other opportunities to work along side or under more experienced people on your team. It's great to ask the question about the resources, but its utlimate up to you to take advantage of what is offered.
Regarding balancing technical debt and new features. I would encourage you to challenge yourself to think like a product marketing manager (PMM) and not just a PM. Like it or not, whatever company hires you has a goal and that is to profit from sales of some thing or service. The sooner you begin to realize that the nice, neat and orderly world we may have learned about for pragmatic programming and good, clean development will always be at odds with the quarterly sales targets, the better you'll be. Instead of asking how to balance tech debt vs. new features, reframe the thinking to be, "What is the most important thing we should be doing right now to meet the sales goals of our company?" Sometimes the answer is new features. Sometimes the answer is better stability and tackling technical debt. If you adapt this mindset early, you will be less frustrated with the decisions that are passed down to the development team and put yourself in a great position to focus on what actually moves the needle for the company.
Updated
Swapneel’s Answer
Many teams reserve a fixed percentage of engineering capacity for non-feature work.
Something like: 70% features, 20% tech debt and 10% long-term R&D.
When it comes to maintenance, 60% features and 40% maintenance with no tech debt.
Then you get to show your interest in the company's interest through hackathon.
Something like: 70% features, 20% tech debt and 10% long-term R&D.
When it comes to maintenance, 60% features and 40% maintenance with no tech debt.
Then you get to show your interest in the company's interest through hackathon.
Teklemuz Ayenew Tesfay
Electrical Engineer, Software Developer, and Career Mentor
517
Answers
Ethiopia
Updated
Teklemuz Ayenew’s Answer
Companies that prioritize professional growth invest in mentorship programs, ongoing training, and access to workshops to keep engineers aligned with industry trends. They encourage knowledge sharing through tech talks, hackathons, innovation labs, or study groups, fostering collaboration and creative problem-solving. Unique opportunities like rotation programs across teams or innovation sprints allow engineers to broaden their expertise, explore different parts of the product, and take ownership of projects. Structured performance feedback, individual development plans, and tools like a Balanced Scorecard, which can track performance for training, educational opportunities, international assignments, or rewards, further demonstrate a commitment to long-term growth, helping engineers progress along technical or managerial paths.
High-performing engineering teams balance new feature requests and technical debt through deliberate prioritization. Some adopt a dual-track approach, dedicating one team to new features and another to maintenance, with rotations to maintain shared knowledge. Sprints often include dedicated maintenance work, supported by backlogs, technical health metrics, and automated monitoring. Transparent planning, structured evaluation frameworks, and recognition for contributions to both innovation and system health ensure sustainable development and high-quality products.
High-performing engineering teams balance new feature requests and technical debt through deliberate prioritization. Some adopt a dual-track approach, dedicating one team to new features and another to maintenance, with rotations to maintain shared knowledge. Sprints often include dedicated maintenance work, supported by backlogs, technical health metrics, and automated monitoring. Transparent planning, structured evaluation frameworks, and recognition for contributions to both innovation and system health ensure sustainable development and high-quality products.
Updated
Andras’s Answer
Great that you already have a vision for growing in your career! Generally there are two common paths: deepening your skills in a specific role or moving between roles (including promotions). Because technologies and methodologies keep evolving, software engineering offers endless opportunities to learn. Projects also have limited lifetimes, so you’ll likely work on new products every few years. That keeps the job fresh, and you’ll definitely grow technically. If you want to move up, there are lots of senior roles on both the technical and management tracks — even small companies need team leads, architects, and product owners. Employers often provide training for these roles, and there are plenty of free learning resources online too.
About new feature development versus maintenance: most teams handle both. Often the same team that builds a feature will also handle its technical debt and bugs. Some methodologies (like Scrum) set aside a percentage of team capacity for bug fixes, while leaner approaches (like Kanban) handle work more continuously. How much capacity is reserved depends on the expected maintenance load — for example, if you’ve just released a big change and many customers will use it, the team will likely reserve more time for fixes. Ultimately, product and project managers set priorities and balance capacity between new features and maintenance, taking customer needs and other teams into account.
About new feature development versus maintenance: most teams handle both. Often the same team that builds a feature will also handle its technical debt and bugs. Some methodologies (like Scrum) set aside a percentage of team capacity for bug fixes, while leaner approaches (like Kanban) handle work more continuously. How much capacity is reserved depends on the expected maintenance load — for example, if you’ve just released a big change and many customers will use it, the team will likely reserve more time for fixes. Ultimately, product and project managers set priorities and balance capacity between new features and maintenance, taking customer needs and other teams into account.