March 30, 2026 - 7 min
The Hidden Complexity of Managing IT Talent
Most non-tech companies think their biggest challenge in managing IT talent is finding the right developer. It’s not. The real problem isn’t the hire. It’s everything surrounding it. The interview process you run once a year, competing against companies that run it hundreds of times.
The retention battle against employers offering equity, cutting-edge stacks, and a community of peers. The architectural decisions made in isolation, without the pattern recognition that only comes from seeing the same problems solved (and broken) across dozens of different industries.
Running a competitive software engineering team from inside a non-tech company is a fundamentally different game. And most organisations don’t realise they’re losing it until the damage is already done.
Here’s what that complexity actually looks like, and why it’s so hard to solve from the inside.
Let me break down what it actually takes to run a competitive software engineering team, and why most non-tech companies struggle with it.
1. Hiring Is a Completely Different Game
You’re interviewing 1 or 2 IT positions per year. Specialised software companies like Q conduct hundreds of interviews.
When you post a job for a senior backend engineer, you’re competing against tech companies offering:
- Remote-first work policies
- Equity compensation
- The latest technology stacks
- Work on cutting-edge problems
- A community of peers to learn from
Your HR team is trying to assess technical skills they don’t fully understand. Can this candidate architect a microservices system? Do they understand database optimisation? Can they lead a team through a cloud migration?
Without technical interviewers who’ve done this hundreds of times, you’re essentially guessing. You’ll either pass on great candidates because you can’t recognise their potential, or hire the wrong people because they interviewed well but can’t deliver.
The cost of a bad hire in software engineering is massive. Not just the salary. The technical debt they create, the time spent fixing their mistakes, the damage to team morale, and the delay to your roadmap. One poor architectural decision can cost you years and millions to unwind.
Specialised software companies have:
- Technical interviewers who speak the language
- Standardised assessment processes refined over hundreds of hires
- Networks to source passive candidates
- Employer brands that attract top talent
- Compensation benchmarks across markets
You’re bringing a knife to a gunfight.
2. Retention Requires More Than Salary
Let’s say you successfully hire a talented engineer. Now you need to keep them.
The best engineers don’t stay for salary alone. They stay for:
- Growth opportunities – learning new technologies, taking on bigger challenges, advancing their careers
- Interesting problems – working on projects that stretch their abilities
- Modern tech stacks – nobody wants to maintain legacy systems in outdated languages
- Peer learning – working alongside other strong engineers who push them to improve
- Clear career progression – understanding where they can go in 2, 5, 10 years
When you have a team of 3-5 engineers working in isolation, you can’t offer most of this.
Your senior engineer has nobody senior to learn from. Your mid-level engineer sees no path to becoming a senior because there’s only one senior role and it’s filled. Your frontend specialist wants to learn backend, but there’s nobody to teach them, and no projects that allow it.
The worst thing that can happen, and we do see that more often than not, is when a developer actually accepts working without all of the above and stays in place for 10+ years. When we encounter such an environment, as a rule, we always encounter greatly outdated systems, security issues, and huge costs in maintenance of old technologies.
Meanwhile, at a company like Q with 300 engineers:
- Junior developers learn from seniors and principals
- Engineers move between projects to learn new domains and technologies
- There’s a clear career ladder from junior to principal engineer
- Communities of practice share knowledge across the company
- People work on diverse problems across different industries
After 18-24 months, your talented engineer looks around and realises they’ve stopped growing. They leave for a company that can offer what you can’t.
You’re back to hiring. And now you’ve lost institutional knowledge too.
3. Technology Breadth vs. Depth
Here’s a common scenario: You need to build a new data pipeline to process customer information. It requires expertise in:
- Python for data processing
- Apache Kafka for event streaming
- Kubernetes for orchestration
- Terraform for infrastructure
- PostgreSQL optimisation
You have three full-stack engineers who primarily work in JavaScript and React. None of them has deep expertise in these areas.
What do you do?
Option A: Ask your existing team to learn these technologies on the job. Result: They’ll cobble something together that technically works but is fragile, hard to maintain, and doesn’t follow best practices. You’ve now accumulated technical debt.
Option B: Hire a data engineer with this exact skill set. But you only need them for 3-4 months, and you can’t afford to hire a specialist full-time for a short-term need. Usually that ends up as Option A.
Option C: Hire a contractor. They build what you need but have no loyalty to your company, don’t understand your business context deeply, and disappear once the contract ends. If something breaks in six months, nobody knows how it works.
This is the technology breadth problem. Modern software requires specialists across dozens of domains:
- Backend engineering (and within that: APIs, databases, caching, queuing, etc.)
- Frontend engineering (React, Vue, Angular, mobile frameworks)
- DevOps (AWS, Azure, GCP, Kubernetes, CI/CD)
- Data engineering (pipelines, warehouses, analytics)
- Security (authentication, authorisation, compliance)
- AI/ML (model training, deployment, monitoring)
No small in-house team can cover this breadth. So you either:
- Go without the capabilities you need
- Build things poorly with generalists
- Constantly hire and fire contractors
A specialised software company maintains this breadth because we work across dozens of clients simultaneously. When you need Kubernetes expertise, we have engineers who’ve deployed dozens of clusters. When you need to optimise PostgreSQL, we have DBAs who’ve tuned databases at scale. When you need AI integration, we have ML engineers who’ve shipped production models.
You get the specialist when you need them, without the overhead of keeping them on payroll when you don’t.
4. The Single Point of Failure Problem
This might be the most dangerous issue: your entire platform runs on the knowledge of one or two people.
You hired a talented architect five years ago. They designed your entire system. They know every component, every integration, every quirk. They’re brilliant.
And you’re terrified they’ll leave.
Because if they do, nobody else fully understands the system. You’ll spend months trying to document their knowledge. And yes, you’ll make mistakes. You’ll be afraid to change anything because you don’t understand the downstream impacts.
This is the “hero developer” problem, and it’s incredibly common in companies that build small internal IT teams.
Even worse: what if they made bad architectural decisions early on? Maybe they chose a technology that’s now obsolete, or Maybe they built a monolith that should have been microservices. Maybe they hard-coded things that should be configurable.
Nobody else on your team has the seniority or expertise to challenge those decisions. So you’re stuck with technical debt that compounds over time, making every new feature harder and slower to build.
In a specialised software company, this doesn’t happen because:
- Multiple engineers work on each project, so knowledge is shared
- Code reviews ensure quality and catch poor decisions early
- Technical leadership with decades of experience guides architecture
- Documentation standards ensure knowledge is captured
- Team rotations mean no single person is irreplaceable
When an engineer moves to a different project or leaves the company, there’s continuity. The system doesn’t depend on any single person’s brain.
5. The Missing Infrastructure
Beyond the obvious challenges, there’s an entire infrastructure required to run a high-performing engineering organisation that most companies don’t realise they need:
Performance Management for Engineers: How do you evaluate a software engineer’s performance? Lines of code written? That’s a terrible metric — the best engineers often write less code, not more, because they solve problems elegantly.
You need competency frameworks that define what “good” looks like at each level. You need technical assessments that measure real capability. You need 360-degree feedback from peers, not just managers.
Most HR teams have no idea how to do this for technical roles.
Continuous Learning Infrastructure: Technology changes faster than any other field. The JavaScript framework that was cutting-edge three years ago is now obsolete. The database optimisation techniques that worked at your current scale won’t work when you 10x.
Your engineers need:
- Time and budget for online courses and certifications
- Internal academies that teach new technologies
- Conference attendance to stay current with industry trends
- Lunch-and-learns where engineers share knowledge
- Dedicated time for experimentation and learning
Most companies give engineers access to an online learning platform and call it done. That’s not enough.
Career Pathing: What does the career ladder look like for your engineers?
In most non-tech companies: Junior Developer → Developer → Senior Developer → … CTO?
That’s not a career path. That’s a dead end.
Engineers need to see:
- Individual contributor tracks: Junior → Mid → Senior → Staff → Principal → Distinguished Engineer
- Management tracks: Tech Lead → Engineering Manager → Director → VP
- Specialist tracks: becoming the go-to expert in security, data, infrastructure, etc.
They need to understand what skills and experience are required to reach each level. They need mentorship from people who’ve walked that path.
Without this, your best people leave.
Technical Leadership. Who’s making your technical decisions? Your CTO who hasn’t written code in 10 years? Your senior developer who’s never architected a system beyond your company’s walls?
Software engineering requires leadership from people who:
- Have built systems at scale (millions of users, terabytes of data)
- Understand modern architecture patterns (microservices, event-driven, serverless)
- Have made and learned from major technical mistakes
- Stay current with rapidly evolving best practices
- Can mentor engineers to level up their skills
This kind of leadership is rare and expensive. Most companies can’t attract or afford it for a small internal team.
Centres of Excellence. Here’s what most companies don’t realise they’re missing: the ability to learn from patterns across multiple projects.
At Q, our Centre of Excellence teams work across dozens of clients simultaneously. They see:
- Which architectural patterns work and which create problems
- How different technology choices play out over time
- What works for teams of 3 vs. 30 vs. 300 engineers
- How to optimise CI/CD pipelines, reduce bugs, improve velocity
- Where technical debt typically accumulates and how to prevent it
Key Takeaways
This cross-pollination of knowledge is impossible in a single-company IT team. Your engineers only see your problems, your codebase, your constraints.
Our engineers see the same challenges across 50 different companies and bring those learnings to each client.
When you hire one brilliant architect, you get their experience. If or when you partner with Q, you get the collective experience of 292 engineers working across dozens of industries.
To bring broader engineering perspective and proven delivery experience into your team, contact us.
Give Kudos by sharing the post!
