July 31, 2025

Avoiding Technical Debt Without Slowing Down: A Product Development Journey

By Ryan Hardy, Jr. Account Lead

Six years ago, when I first started as a software developer co-op at Seven Hills Technology, I didn’t truly understand what tech debt was. I’d never seen it, felt it, or dealt with the consequences. My experience was limited to new code bases and school projects. Fast forward to today, and I’m an account lead working with clients to drive their product growth upward. I’ve seen the impacts of technical debt firsthand, dealt with its consequences, and had to take action to address it.

Working with a small but rapidly growing golf analytics company has taught me that the real challenge isn't avoiding technical debt entirely—it's making smart decisions about when to take it on and how to pay it down before it cripples your velocity. In a team of just eight people (four developers, four client team members), every technical decision has immediate business consequences. Failure to tackle these problems leads to the suffocation of growth

From Theory to Reality: What School Doesn't Teach You

In computer science classes, we learned about clean code, proper design patterns, and optimal algorithms. But nobody teaches you how to make these technical decisions when you're under pressure from the client to onboard 15 new customers this month, and your current system is already straining under the load.

The transition from developer to account lead forced me to think differently about technical debt. Instead of seeing it as a purely technical problem, I started viewing it through a business lens. Time is money, especially in the software business. Technical debt isn't just about code quality—it's about your ability to respond to market opportunities, onboard new clients, and scale your operations.

The only issue with this shift in perspective was that I needed a new approach to the technical decisions I came across. I decided to adopt the OODA loop framework: Observe, Orient, Decide, and Act. I discovered it while reading a book about decision-making within autonomous systems called Army of None by Paul Scharre. It's a continuous cycle that helps balance the need for speed of action with the requirement for quick decision-making. Created by John Boyd, who at the time was working within the US Air Force, it is an effective and simple framework for organizations to apply in rapidly changing environments.

Case Study: When Cron Jobs Become Business Bottlenecks

Let me share a real example that perfectly illustrates this balance. This golf analytics platform processes thousands of golfer score records daily, providing real-time insights that our clients' customers depend on for tournament management and player development.

Business Goal: The client needed to handle tens of thousands of score records daily with real-time accuracy while scaling to support new customer partnerships within a time-sensitive environment.

OODA Loop in Action

Observe: The system was using scheduled cron jobs to process score submissions. During peak tournament season, cracks would start to show. Processing delays were increasing. Some score updates took hours to appear, if they appeared at all. We couldn’t guarantee processing capacity, which slowed down customer onboarding. More importantly, our client was losing potential customers because we couldn’t promise real-time score processing, especially for the larger customers they wanted to land.

Orient: As the account lead, I had to help the client understand this wasn't just a technical scalability issue—it was directly blocking business growth. The client had key customer partnerships waiting for real-time capabilities. Each partnership represented significantly more monthly recurring revenue, but they wouldn't sign without processing guarantees.

We identified the core problem: our batch processing approach created artificial constraints on data throughput. The scheduled jobs meant we could only process scores at fixed intervals, and if a job failed or took too long, it created a cascade of delays and issues within other core features of the product.

Decide: We had two options. We could optimize the existing cron job system by adding more compute power, parallelizing processing, and increasing the memory size. This would be faster to implement and less risky. Or we could redesign the architecture using AWS Lambda functions for event-driven processing, eliminating the batch constraints.

The quick fix would solve the immediate problem, but wouldn't address the fundamental limitation. More importantly, it would mean taking on significant technical debt. Every new customer would add to the capacity issue, and we'd constantly be playing catch-up with processing demands.

We decided to invest in the Lambda architecture. Yes, it would take longer upfront, but it would eliminate the constraint that was blocking business growth in the long run.

Act: We implemented a webhook-based event processing system where each score submission triggered immediate processing. Instead of waiting for the next cron job, scores were processed within seconds of submission. We also built in automatic scaling and error handling, so processing capacity is adjusted dynamically to demand.

Business Resolution: The new architecture enabled our client to onboard key customer partnerships more quickly and with greater confidence, resulting in significant revenue growth for our client. More importantly, it removed processing capacity as a constraint on future growth. The client could now confidently pursue partnerships with larger and larger clubs without worrying about technical limitations slowing them down. Without a flexible and iterative decision-making process, it was unlikely that we could have accessed the problem quickly enough and pivoted to address it.

The Real Lesson: Technical Debt as a Strategic Opportunity

What this experience taught me is that technical debt isn't inherently bad—it's an opportunity. The key is being intentional about when you take it on and having a clear plan for addressing it.

In our case, we could have “tackled” the debt by band-aiding the cron job system. That would have helped our client onboard their customers faster, but would have created a maintenance burden that would slow us down long-term. Instead, we invested in eliminating existing architectural debt, which accelerated their ability to grow.

Framework for Smart Technical Decisions

Through experiences like this, I've developed a framework for tackling these problems in a fast-growing business:

Start with the business impact. Every technical decision should be evaluated based on how it affects your ability to serve customers and grow.

Understand your constraints. In a small team, your biggest constraint is often people, not technology. Choose solutions that your team can maintain and extend, even if the upfront costs of time and people are higher

Plan for the next phase of growth. Don't optimize for your current scale—optimize for where you'll be in six months. But don't over-engineer for the wrong problems.

Make debt visible. When you do take on technical debt, document it clearly and include the cost of addressing it in future planning. Hidden debt is what kills velocity.

Invest in elimination, not just management. Instead of just managing technical debt, look for opportunities to eliminate entire categories of it through architectural changes if possible.

Moving Forward: Continuous Improvement

The OODA loop doesn't end with a single decision. We're constantly observing new challenges, orienting our approach based on business needs, deciding on improvements, and acting to implement them.

Currently, we're observing new patterns in our data processing that suggest opportunities for further optimization. But now we have a framework for evaluating whether those optimizations serve business goals or just technical perfectionism.

The key insight from my journey from developer to account lead is that sustainable velocity comes from aligning technical decisions with business value. Improving your client’s life and yours. Technical debt isn't the enemy—poor decision-making is.

The Partnership Advantage

The smartest technical decisions often come from having a real understanding of the business context. Knowing the pressures your client is facing, the opportunities they’re chasing, and the friction in their day-to-day operations helps you move beyond just solving technical problems. It lets you prioritize solutions that move the business forward.


We’re always up for conversations about how to balance speed, scalability, and smart decision-making. If you’re tackling similar challenges and want to compare notes, reach out. We’re happy to share what we’ve learned.

Frequently Asked Questions

No items found.

Latest Posts

We’ve helped our partners to digitally transform their organizations by putting people first at every turn.

21/7/2025
You Built it with AI… Now What? The Risk You Didn’t See Coming

AI coding tools make building software easier, but they're creating dangerous security blind spots for non-technical developers who don't understand the code they're deploying.

2/7/2025
Writing Testable Front-End Code - Best Practices, Patterns, and Pitfalls (Pt 2)

Continuing our guide to testable front-end code with advanced patterns, real-world examples, and the traps that even experienced devs miss.

27/6/2025
Writing Testable Front-End Code - Best Practices, Patterns, and Pitfalls (Pt 1)

A practical guide to writing testable front-end code, mocking strategies, and applying best practices to ensure your codebase stays clean, maintainable, and covered.

23/6/2025
Can You Trust Your MCP Server?

Think your MCP server is safe? One poisoned tool could quietly turn it into a data-leaking backdoor.

20/6/2025
Why Fractional AI Leadership Might Be The Smartest Move Your Business Can Make

Most companies don’t need a full-time AI exec—they need smart, fractional leadership that aligns AI with real business goals.

2/6/2025
Cracking the Code: Fixing Memory Leaks and File Corruption in React Native GCP Uploads

Struggling with large file uploads in React Native? We hit memory leaks and corrupted files over 2GB—then fixed it by building native modules. Here’s how.

16/5/2025
From Coders to Conductors: How AI is Helping Us Build Smarter, Faster, and Better Software

How AI Is Changing the Way We Build Software: Our developers are using AI tools like GitHub Copilot to move faster and smarter—shifting from manual coding to strategic prompting and editing. Learn how this evolving approach is helping us deliver high-quality software in less time.

13/5/2025
Why Government Tech Falls Short, And What We Can Do About It

The RFP process is broken. Here's how public sector teams can get better outcomes by partnering earlier, focusing on users, and rethinking how government tech gets built.

6/1/2025
Growing Junior Developers in Remote and AI-Enabled Environments

Nurturing junior developers in today’s remote and AI-driven workplace is essential for long-term success, yet it comes with unique challenges. This article explores practical strategies to help junior talent thrive.

2/12/2024
The Power of Discovery: Ensuring Software Project Success

Effective discovery is crucial in software development to prevent budget overruns and project delays. By conducting discovery sprints and trial projects, businesses can align goals, define scope, and mitigate risks, ensuring successful outcomes.

29/1/2023
Native vs. React Native For Mobile App Development

In this article, we address the advantages and disadvantages of native apps and compare them to those of React Native apps. We will then propose one example of a ‘good fit’ native app and a ‘good fit’ React Native app. The article concludes with a general recommendation for when you should build your application natively and when to do so in React Native.

15/1/2021
Azure Security Best Practices

Adoption of cloud services like Microsoft Azure is accelerating year over year. Around half of all workloads and data are already in a public cloud, with small businesses expanding rapidly and expecting up to 70% of their systems to be in a public cloud within the next 12 months. Are you sure your data is secure?

19/10/2020
High Cohesion, Low Coupling

In this short article I would like to show you one example of High Cohesion and Low Coupling regarding Software Development. Imagine that you have a REST API that have to manage Users, Posts and Private Message between users. One way of doing it would be like the following example: As you can see, the […]

6/12/2019
How to Find a Software Development Company

You’ve identified the need for new software for your organization. You want it built and maintained but don’t have the knowledge, time, or ability to hire and manage a software staff. So how do you go about finding a software development company for your project? Step 1: Search for Existing Software The first step in […]

19/11/2019
3 Common Problems with Custom Software Development

Custom software is a great way to increase efficiency and revenue for your organization. However, creating custom software means more risk for you. Here are a few common problems to avoid when building your next mobile or web app. 1. Cost Overrun One of the biggest challenges of custom software development is gathering requirements. The process […]

3/11/2019
Staff Augmentation vs. Project-based Consulting

So, you want to build some software. But where do you start? Maybe you’re not ready to take on the large task of hiring a team internally. Of all the options out there for building your software, two of the most common are staff augmentation and project-based consulting. So what’s best for you, staff augmentation […]

28/10/2019
Agile Isn’t the Problem

Failed implementing agile in your organization? Agile isn't the problem.

10/9/2019
Should you hire software developers?

Are you ready to hire software developers? It might be worth more investigation.

29/8/2019
How long does a project take?

Breaking down how we work and what goes into each project.

19/8/2019
Observability of Systems

Solve your next production issue with less headache and better insight.

28/6/2019
Web vs Mobile: What’s Right for You?

How to use empathy to drive decisions around the platform for your future application.

17/6/2019
5 Tricks To Help Developers with Design

Developers tend to struggle with design, but there are a few quick changes that can make your software shine.

29/10/2018
Why should you use a G Suite Resller?

As of February 2018, Google had 4 million businesses using G Suite for email and file storage, collaborating on documents, video conferencing and more.