Source code review in due diligence: what a buyer’s team actually opens first

Source code review in due diligence: what a buyer's team actually opens first
Verdict Up Front

Nobody reads a codebase line by line in a five-day window. A buyer’s technical team opens the commit history, the dependency manifest, the test coverage report, and the deploy pipeline—in that order. Those four artifacts tell you whether the engineering organization ships safely on a cadence or heroically once a quarter. When the commit graph shows three contributors and 80% of changes landed in the two weeks before dataroom access, you have quantified hero risk. When package.json lists dependencies last patched in 2019, you have priced post-close remediation. This review walks through what gets opened first, what signal each artifact gives, how findings translate to price or structure, and where technical due diligence lives in the deal timeline.

Overview: What Source Code Review Means in a Deal Context

Source code review in due diligence is the process a buyer’s technical team runs to assess whether the target company’s engineering organization can sustain the growth case without a post-close rebuild. It happens after LOI, during confirmatory diligence, usually in a five- to ten-day window before signing. The buyer gets read access to repositories, CI/CD pipelines, dependency manifests, test suites, and deployment logs. The diligence lead is looking for three things: whether the platform can scale to the revenue forecast without replacement, whether the team ships features predictably or heroically, and whether technical debt is an operating cost or a deal risk.

This is not a code audit. Nobody is reviewing every function for style violations or algorithmic efficiency. The team is opening specific artifacts that reveal organizational behaviour: commit history shows whether five people or one person built the product, dependency files show whether libraries are current or abandoned, test coverage shows whether deployments are gated or cowboy, and pipeline config shows whether releases are repeatable or manual. A missing CI pipeline or a test suite at 11% coverage does not kill a deal—it prices remediation into the offer or moves it to a post-close milestone with escrowed consideration.

Technical due diligence sits between quality of revenue (is this repeatable?) and integration planning (can we run this?). For a PE buyer, the question is whether the platform supports the value creation plan or requires parallel investment to get there. For a strategic buyer, it is whether the acquisition accelerates the roadmap or becomes a two-year integration tax. The review does not answer “is this good code?”—it answers “what breaks at 2x scale, what dependencies stop us from moving to our stack, and how much of the team’s capacity is spent keeping production alive?”

Who Runs Source Code Review and When It Happens

The diligence lead is typically a fractional CTO, a senior architect from the buyer’s engineering team, or a third-party technical advisor. For PE buyers without an in-house technical operator, this is often the portfolio CTO or an external firm brought in for the deal. The person running it needs to distinguish between technical debt that is normal operating cost and technical debt that is existential risk. A startup that shipped fast and accumulated some cruft is expected. A SaaS company at $18M ARR with no automated tests and a deploy process that requires the founder to SSH into a server is a different signal.

The review happens after LOI and before signing, during the exclusivity window. The target grants read access to repositories, staging environments, and CI/CD tooling. The diligence team does not get write access and does not run code—they read config, logs, manifests, and commit graphs. Five days is typical for a lower-mid-market software deal; ten days for a platform company with multiple products. The timeline is tight because exclusivity is expensive and the deal team wants to price findings into the final offer, not discover them post-close.

For portfolio companies being bought by another PE firm or a strategic, the sell-side often runs a pre-LOI technical assessment to surface and remediate findings before the buyer’s team arrives. That front-runs the obvious risks—deprecated dependencies, missing documentation, single points of failure—and moves the conversation from “is this fixable?” to “here is what we fixed and here is what is deferred by design.” The 5-Day Tech DD and Pre-LOI services exist to give the target that positioning.

Split-screen view showing a GitHub commit history graph on one side and a dependencies manifest file with outdated package versions highlighted on the other, representing the first two artifacts opened in technical due diligence
Split-screen view showing a GitHub commit history graph on one side and a dependencies manifest file with outdated package versions highlighted on the other, representing the first two artifacts opened in technical due diligence

The Four Artifacts Opened First and What Each One Reveals

The diligence lead does not start by reading application code. They open the commit history, the dependency manifest, the test coverage report, and the CI/CD pipeline configuration. Each artifact answers a specific question about how the engineering organization operates.

Commit History: Who Built This and How

The commit graph shows contributor distribution, commit frequency, and whether the codebase was built incrementally or in bursts. A healthy signal is commits distributed across five to ten contributors with steady weekly activity. A red flag is 80% of commits from one person, or three months of silence followed by 200 commits in the two weeks before dataroom access. That pattern says the team prepped the repository for review, which means normal state is not production-ready.

Commit messages matter less than you would expect. “Fix bug” and “Update” are not great, but they are common. The diligence team is looking for whether the repository reflects ongoing development or a one-time export from somewhere else. If the Git history starts six months ago but the company has been shipping for three years, the codebase was migrated or cleaned up for the deal. That is not necessarily disqualifying, but it raises the question: where is the real history?

Dependency Manifest: What the Platform Depends On

The package.json, requirements.txt, or Gemfile lists every third-party library the application imports. The diligence team runs this through a dependency-scanning tool to flag outdated packages, known CVEs, and abandoned projects. A Rails app still on Rails 4.2 when current is 7.1 signals deferred upgrades. A React frontend importing a package last updated in 2018 signals the team is not maintaining dependencies, which means the next security patch or breaking API change is an unplanned sprint.

The question is not whether every package is current—it is whether the dependency surface is managed. A platform with 80 dependencies, twelve of which are outdated but non-critical, is normal. A platform with 80 dependencies, forty of which have known CVEs and five of which are no longer maintained, is a post-close budget line. Buyers price this as either immediate remediation (three months of engineering capacity to upgrade and regression-test) or accepted risk with a contractual cap on liability.

Test Coverage: Whether Deploys Are Gated or Cowboy

The test suite reveals whether the team can ship confidently or whether every release is a manual validation event. The coverage report shows what percentage of the codebase is exercised by automated tests. Anything above 70% suggests the team gates deployments on passing tests. Anything below 30% suggests deployments are run manually and validated in production. The middle range—40% to 60%—usually means tests were added recently or only cover critical paths.

Low test coverage is not always a deal-breaker. An early-stage SaaS company that shipped fast to find product-market fit and deferred testing is explainable. A B2B platform company at $40M revenue with 15% test coverage and a history of customer-reported bugs in production is a signal that the engineering team is fighting fires, not building features. The diligence team prices this as the cost to add coverage, which is typically 50% to 100% of the original development time for the untested surface.

CI/CD Pipeline: Whether Releases Are Repeatable

The deployment pipeline configuration—stored in .github/workflows, .gitlab-ci.yml, Jenkinsfile, or similar—shows whether releases are scripted and repeatable or manual and heroic. A healthy pipeline runs tests on every commit, builds artifacts automatically, and deploys to staging and production with a button press or a Git tag. A missing pipeline, or a pipeline that deploys only to staging and requires someone to SSH into production and run commands, is a single-person dependency and a scaling risk.

Manual deployments do not disqualify a deal, but they signal that the engineering team cannot ship without the person who knows the incantation. If that person is the CTO and the CTO is not staying post-close, the buyer is inheriting a platform that nobody else can safely release. The fix is three to six weeks of work to script the deploy process and move it into a CI tool. Buyers either price this into the offer or make it a post-close milestone with a holdback.

How Findings Translate to Price, Structure, or Risk

Technical findings do not usually kill a deal—they move dollars. A missing CI pipeline is $40K to $80K of post-close work. A dependency surface with twelve known CVEs is a three-month sprint to upgrade and regression-test, which is $60K to $120K depending on the platform’s complexity. A test suite at 18% coverage is six months of parallel work to add coverage while shipping the roadmap, which is $200K to $300K of loaded engineering cost. These numbers go into the final offer as either a purchase-price reduction or a post-close escrow release tied to remediation milestones.

Structural changes happen when findings reveal existential risk. If the platform is built on a library that is no longer maintained and has no migration path, the buyer is not acquiring a product—they are acquiring revenue and a rebuild obligation. That changes the deal from an acquisition to a tuck-in where the target’s customer base is migrated to the buyer’s platform. The technical review surfaces that early enough that the buyer can reprice or walk before signing.

For portfolio companies, the calculation is different. The operating partner cares whether the platform can support the growth plan without a parallel rebuild. A SaaS company forecast to grow from $25M to $60M in three years needs to know whether the database can handle 3x transaction volume, whether the deploy process can support weekly releases, and whether the engineering team can onboard new hires without the one person who understands the architecture. Technical debt that does not block that path is deferred. Technical debt that does is prioritized into the first 100 days, and the value creation plan reflects the cost and timeline.

Pros: What This Process Gets Right

Source code review in diligence is fast and concrete. Five days is enough to open the four key artifacts, run dependency scans, read pipeline configs, and spot the signals that matter. The output is a findings memo with specific line items: “CI pipeline missing—estimated $60K to implement,” “test coverage at 22%—estimated $180K to reach 70%,” “Rails version end-of-life in 8 months—estimated $90K to upgrade.” Those numbers go straight into the offer or the integration budget, which makes the finding actionable rather than advisory.

The process separates explainable debt from existential risk. Every software company has technical debt. The question is whether it is the normal accumulation of shipping quickly or a signal that the team does not have the capability to operate at the next scale. Commit history with one contributor and no tests is explainable if the company is pre-revenue and the founder is the solo engineer. The same pattern at $30M revenue with a ten-person engineering team is a management failure. The diligence framework distinguishes between the two.

Pre-LOI technical assessment, when the target runs it before the buyer arrives, shifts the conversation from “what is broken?” to “what did we choose to defer?” A sell-side CTO who surfaces dependency risks, adds a CI pipeline, and documents the deploy process before diligence starts is demonstrating that the engineering organization is managed, not that it is perfect. That positioning is worth the $5K to $15K the assessment costs, because it changes the buyer’s anchor from “how much do we discount for this?” to “this looks reasonable for the stage.”

Technical due diligence report summary page showing categorized findings with estimated remediation costs and risk levels, alongside a value creation timeline showing when each item gets addressed post-close
Technical due diligence report summary page showing categorized findings with estimated remediation costs and risk levels, alongside a value creation timeline showing when each item gets addressed post-close

Cons: Where the Process Has Limits

Five days is not enough to assess architecture decisions or evaluate whether the platform is well-designed. The diligence team can tell you whether dependencies are current and whether the deploy process is scripted, but they cannot tell you whether the service boundaries make sense or whether the database schema will scale. Those questions require running the application under load, talking to the engineering team about design decisions, and reviewing the roadmap to see where the next bottleneck will appear. Short-window diligence finds operational signals—hero dependencies, missing automation, deferred upgrades—but it does not evaluate whether the system is architected for the next stage.

The process is only as good as the artifacts the target provides. If the real codebase is in a private monorepo and the dataroom contains a sanitized export, the diligence team is reviewing a curated version of the truth. If the CI pipeline exists but is not used—deployments still happen manually and the pipeline is there for show—the diligence team will not catch that unless they ask the engineering team directly. Access and honesty matter, and not every target provides both.

Technical due diligence is a snapshot, not a forecast. The findings memo tells you what the platform looks like today. It does not tell you whether the engineering team can execute the roadmap, whether the CTO is capable of scaling the organization, or whether the platform will handle the growth plan. Those are judgment calls that require talking to the team, reviewing hiring plans, and pressure-testing the technical roadmap against the revenue forecast. The artifacts get you 60% of the way; the other 40% is operator intuition and reference calls with engineers who have seen similar growth stages at similar companies.

Pricing Reality: What This Costs and What It Buys

A pre-LOI technical assessment—the sell-side version a target runs before the buyer shows up—costs $5K to $8K and takes three to five days. The deliverable is a findings memo with flagged risks, recommended remediations, and a rough cost estimate for each. The target decides what to fix before dataroom access and what to disclose as known and deferred. The value is positioning: the engineering organization looks managed rather than neglected, and the buyer’s diligence team spends less time surfacing obvious issues and more time on roadmap and architecture.

A full five-day technical due diligence engagement for a buyer costs $12K to $18K. The diligence lead gets read access to repositories, CI/CD tooling, staging environments, and dependency manifests. The output is a findings report categorized by risk level (critical / high / medium / deferred), with estimated remediation costs for each line item and a recommendation on whether findings change the deal structure. Critical findings—platform cannot scale to forecast, single points of failure with no succession plan, dependencies with no upgrade path—go into the offer or the purchase agreement as conditions or escrows. Medium findings get priced and deferred to post-close.

The cost of NOT running this is the unpriced risk that shows up post-close. A $40M SaaS acquisition that discovers six months in that the database cannot handle 2x load and requires a $400K migration to a new schema is a budget surprise and a roadmap delay. A tuck-in acquisition where the buyer plans to migrate the target’s customers to the acquirer’s platform, only to discover that the target’s data model is incompatible and the migration will take nine months instead of three, is a value-creation miss. The $15K diligence engagement surfaces those risks early enough to price them, defer them, or walk.

Alternatives: Other Ways to Assess Technical Risk

Some buyers rely on their internal engineering leadership to run diligence. The VP of Engineering or a senior architect gets read access and produces a findings memo. This works if the internal team has M&A diligence experience and understands the difference between “this is not how we would build it” and “this is a deal risk.” The failure mode is when the internal team evaluates the target’s codebase against the acquirer’s standards rather than against the target’s stage and constraints. A Series A company that has not implemented monitoring or automated rollback is normal. Treating that as a red flag is a category error, and deals have been repriced incorrectly because the diligence lead did not calibrate to stage.

Third-party code-quality tools—SonarQube, CodeClimate, Snyk—automate parts of the review. They scan for code smells, security vulnerabilities, and test coverage. The output is a score and a list of flagged issues. These tools are useful for surfacing low-hanging risks—outdated dependencies, known CVEs, functions with high cyclomatic complexity—but they do not replace human judgment. A tool will flag a function as too long; it will not tell you whether the engineering team can ship the roadmap. Tools are a supplement, not a substitute.

Some PE firms skip technical diligence entirely on smaller deals and rely on quality-of-revenue and customer diligence to assess risk. The logic is that if revenue is recurring, customers are retained, and churn is low, the platform is good enough. This works until it doesn’t. A services business with $25M revenue and happy customers can run on a barely-functioning platform because the services team compensates for product gaps. A SaaS company with the same profile cannot, and the difference does not show up in a revenue report. For software businesses, technical diligence is not optional—it is the only way to know whether the growth case is technically feasible.

Final Verdict: When to Run This and What It Gets You

Source code review belongs in every software acquisition, and it should happen before signing, not after. The five-day window is enough to open commit history, dependency manifests, test coverage, and deploy pipelines—the four artifacts that reveal whether the platform can scale and whether the team ships predictably. The findings do not kill deals; they price remediation, structure escrows, or move items to the post-close plan. A $60K CI implementation or a $120K dependency upgrade is a line item, not a deal-breaker, but only if you surface it before the wire clears.

For sell-side teams, the pre-LOI assessment is the better spend. Running your own technical review before the buyer’s team arrives lets you fix the obvious risks, document the deferred ones, and position the engineering organization as managed rather than reactive. The $5K you spend on a pre-LOI review buys you a cleaner diligence process and a stronger anchor when the buyer’s findings memo arrives. The alternative is letting the buyer discover every issue cold, which hands them the pricing lever.

If you are buying a software business and you skip technical diligence, you are taking unpriced risk. The platform might scale, or it might require a parallel rebuild that delays the value creation plan by eighteen months. The dependency surface might be clean, or it might contain libraries with no upgrade path that force a migration. The deploy process might be repeatable, or it might depend on one person who is not staying post-close. You will not know until you open the commit graph, read the package manifest, check the test coverage, and review the CI config. That is what gets opened first, and it is what tells you whether the deal works.

For readers evaluating whether their own portfolio company or acquisition target would survive this kind of review, the relevant resources are at CEO Hangout for executive-level discussion of diligence readiness, and Blogger Hangout for content teams documenting technical processes before a dataroom opens. The integration planning conversation—what happens after findings are priced—is covered at Business Marketing World for the go-to-market side of post-close execution.

The 5-Day Tech DD starts at $15K. The Pre-LOI assessment starts at $5K. Both deliver a findings memo with categorized risks, estimated remediation costs, and a recommendation on what to fix now versus what to defer. The output is not “good code” or “bad code”—it is a dollar figure, a timeline, and a risk level the deal team can price into the offer or the integration budget. That is what source code review in due diligence gets you, and it is why you run it before signing rather than after.

What Source Code Review Does Not Tell You (and What to Pair It With)

Source code review surfaces structural risk—dependency debt, test gaps, deployment fragility, architecture that will not scale. It does not tell you whether the product roadmap is realistic, whether the team can execute it, or whether the platform solves a problem customers will pay for at scale. Those are product diligence, team diligence, and market diligence, and they run in parallel, not instead.

A clean codebase with good test coverage and modern dependencies does not mean the feature backlog is prioritized correctly or that the engineering team knows how to ship. Conversely, a messy codebase with deferred upgrades and no CI does not mean the product is worthless—it means remediation cost needs to be priced. The technical review prices the platform risk; the product and team reviews price the execution risk. Both matter, and neither substitutes for the other.

The pairing that catches the most hidden cost is source code review plus infrastructure review. Code review tells you whether the application logic is maintainable and whether dependencies are current. Infrastructure review tells you whether the hosting environment is over-provisioned, under-secured, or running on architecture that will fail compliance. A SaaS platform running clean code on manually-configured EC2 instances with no automated backups and root SSH access shared across the team is a compliance and security liability that will surface in customer diligence or SOC 2 prep. That does not show in commit history—it shows in AWS IAM policies, backup schedules, and access logs.

For PE buyers running multiple technical workstreams, the sequencing that works is: source code review first (five days), infrastructure second (three days), then product roadmap assessment (ongoing post-close). Code review surfaces the build-or-migrate decision. Infrastructure review surfaces the compliance and security remediation budget. Roadmap assessment tells you whether the team can deliver the value creation plan. Running them in that order means the LOI is priced with platform risk visible, and the first 100 days are planned with the right technical priorities loaded.

How This Applies to DevriX and Growth Shuttle Engagements

DevriX runs source code review as part of enterprise WordPress assessments and as a standalone pre-acquisition service for PE buyers evaluating software or media portfolio companies. The five-day format works for WordPress platforms, headless CMS architectures, and mid-market SaaS applications built on modern stacks. The output is the same: categorized findings, remediation cost, timeline, and a build-versus-migrate recommendation that goes into the deal model or the post-close plan.

Growth Shuttle packages the same review into fractional CTO advisory for PE operating partners who need technical translation of diligence findings into investment-committee language. The findings memo from a code review is written for an engineering audience—dependency versions, test coverage percentages, CI pipeline states. The operating partner needs it reframed into financial impact: what breaks if we do nothing, what it costs to fix, how long remediation delays the growth plan, and whether the risk is acceptable at this valuation. That translation layer is what Growth Shuttle delivers on top of the technical findings.

The common request from portfolio companies post-close is: “We did not run technical diligence, we have been live for six months, and we just discovered the platform cannot handle the marketing plan.” At that point the review becomes diagnostic rather than evaluative, and the output shifts from pricing risk to sequencing remediation. The methodology is identical—commit history, dependencies, tests, CI—but the recommendation is now what to fix first to unblock revenue rather than what to disclose before signing. The cost is the same; the leverage is lower.

For readers operating in PE-backed environments where technical diligence was skipped or deferred, the relevant step is running the assessment now as a post-close diagnostic rather than waiting for a production incident to force it. The findings do not change, but the urgency does, and surfacing technical debt before it blocks a product launch or a compliance audit is cheaper than discovering it during one. The five-day review fits into a normal operating rhythm; the eighteen-month remediation cycle it might reveal does not.

Common Objections and Why They Don’t Hold

The recurring pushback from deal teams is: “We hired a QoE firm that reviewed the tech stack, and they said it was fine.” Quality-of-earnings providers review revenue recognition, customer concentration, churn mechanics, and billing systems. They do not audit application dependencies, evaluate test coverage, or assess CI/CD maturity. A QoE report confirms that ARR is real and calculated correctly. It does not tell you whether the codebase can support the roadmap or whether the infrastructure will pass SOC 2. Those are different questions with different methodologies, and conflating them is how technical risk gets priced as zero when it should be priced as a post-close capital call.

The second objection is: “The CTO said the platform is solid, and they have been running it for three years without issues.” A CTO defending their own work is not an independent assessment. Stability under current load does not predict stability under the growth plan. A platform running at 40% utilization with no monitoring, no automated rollback, and manual deployments can feel stable until traffic doubles or a regulatory requirement forces an infrastructure change. The technical review is not a vote of no confidence in the CTO—it is an independent evaluation of whether the platform can execute the investment thesis, and the CTO’s opinion is an input, not the conclusion.

The third objection is cost and timeline: “We are closing in four weeks, and we cannot delay for a code review.” The five-day review does not delay close. It runs in parallel with legal and financial diligence, and the findings go into the deal model or the integration plan depending on what they reveal. If the review surfaces a fundamental architecture problem—monolithic PHP application with no test coverage, deployed manually, running on end-of-life software—that is information the sponsor needs before the wire, not six months after. Skipping the review to preserve timeline means pricing platform risk at zero and discovering the real cost post-close when leverage is gone and the remediation budget comes out of value creation funds.

When to Run This and What It Costs

The right time to run source code review is during exclusivity, immediately after LOI. The deal team has committed, the seller has paused other conversations, and technical findings can still adjust valuation, structure earnouts, or load remediation into the post-close plan. Running the review pre-LOI is possible if the sponsor has deep technical expertise in-house and wants platform risk visible before committing. Running it post-close is diagnostic rather than evaluative, and the findings shift from pricing inputs to integration priorities.

The cost for a five-day source code review on a mid-market SaaS or WordPress platform is $12,000 to $18,000 depending on codebase size, stack complexity, and whether infrastructure review is bundled. The output is a findings memo with categorized issues, remediation cost and timeline, and a build-versus-migrate recommendation. For PE sponsors running multiple technical workstreams, the review layers into broader CTO advisory or fractional technical value creation leadership where the findings feed into board reporting, vendor governance, and capital allocation across the portfolio.

DevriX runs this as a standalone service for deal teams evaluating software, media, or digital commerce acquisitions. Growth Shuttle packages it into fractional CTO advisory for operating partners who need the findings translated into investment-committee language and portfolio playbooks. Both deliver the same technical output; the difference is whether the buyer needs the engineering memo or the financial translation, and whether this is a one-time evaluation or part of an ongoing value creation relationship.

For readers operating portfolio companies where technical diligence was deferred and platform risk is now surfacing in product delays, failed launches, or customer diligence failures, the relevant action is running the review now as a post-close diagnostic and loading the findings into the next board cycle as a capital request. The methodology is identical to pre-acquisition review; the difference is that the findings now compete with other capital priorities rather than adjusting the purchase price. The cost is the same. The opportunity cost of waiting is not.