Odoo for construction and contracting firms

Odoo can run quoting, job costing, worksite stock, field service and progress billing for contractors and trades. This page explains what to decide before the build, from edition and hosting to the Odoo packages and integrations.

On this page

Odoo for construction and contracting firms: where the job money is made or lost

Odoo fits a contractor's margin cycle when quotes, jobs, worksite stock and invoices sit in one database, so a cost that changes on site reaches the quote and the billing record without being typed twice. What changes is that the estimate, the cost committed to a job and the amount billed to date can be read side by side on the same record, without reconciling spreadsheets at month end. Odoo publishes General Contractor, Property Developer, Carpenter, Electrician and HVAC packages as starting points. Treat each one as a draft configuration. Check it against your own job types, cost codes and the way your contracts define a completed stage, because a package written for a generic trade may not match a firm that prices by unit, by room or by service call.

Most margin is lost in three places: a quote that omits a labor or material line, materials drawn to a job without a matching cost entry, and variations agreed on site that never reach the invoice. Before the build starts, map each of those flows to a document type in Odoo. Decide which quote lines become job cost lines, whether labor is recorded through timesheets against the job or through a separate payroll export, and who approves a variation before it can be billed. Confirm in a test database how the version you plan to run handles each step, including any part that depends on an Enterprise app or a custom module. Write the answers down, because each one changes the configuration and the reports that site managers and finance will read.

Progress invoicing is where cash timing and margin meet. Contracts may bill on a percentage of completion, on fixed milestones, on delivered materials or on time and materials, and some hold back retention until handover. Identify which of these your firm uses on each job type and write the invoicing rule for each one before configuring anything. Then test a full cycle: an accepted quote, a partial stock draw, a variation, a progress invoice and a final invoice. Compare the job's cost to date and billed to date against your own figures. Ask the implementer to show that the same test runs on the exact app set and version you intend to run in production, using a copy of your own data.

Settle the edition and hosting decision early, because it limits what you can build. Odoo's pricing page places custom modules, multi-company, Odoo Studio and external API access in the Custom plan, and only Custom can be hosted on Odoo.sh or on-premise. If you need to connect estimating software, a payroll system or a subcontractor portal, confirm the API and module requirements before choosing a plan. Set the version deadline as well. Odoo 19.0 has standard support planned until September 2028, and standard support is where security patches are provided, so a firm that stays on an older release carries a patching gap. Ask for a written scope that names each job type, each integration and each upgrade step before work starts.

Which Odoo requirements shape a contractor build

This table lists the Odoo plan, support, upgrade and sign-in requirements that most affect a contractor build, with the source for each and what it means for the project. Read each row as a decision to settle before scoping, because plan, edition and version choices set hosting, upgrade effort and access options for several entities, field crews and estimating tools. The main takeaway: fix the plan, hosting type and Odoo version in the written scope before the build starts.

RequirementSourceWhat it means for the build
Custom is the only plan hosted on Odoo.sh or on-premiseOdoo pricing pageFirms that want their own hosting must buy Custom, so confirm the hosting type in the quote.
Multi-company, Odoo Studio, external API access and custom modulesOdoo pricing pageSeveral legal entities, estimating tool links and crew-specific fields all depend on Custom features.
Three-year standard support after each major releaseOdoo standard and extended support docsOdoo 19.0 is supported until September 2028 and 18.0 until September 2027, which sets the upgrade deadline.
Mandatory major upgrades every two years on Odoo Online and Odoo.shOdoo upgrade documentationCustom modules, estimating integrations and reports need retesting each cycle, so budget that effort into maintenance.
Enterprise subscription required for the upgrade service on-premiseOdoo upgrade documentationCommunity users have no upgrade service access, so on-premise firms need Enterprise to upgrade through Odoo's tooling.
Extended support limited to Odoo.sh select versions and on-premiseOdoo standard and extended support docsSecurity patches only arrive during standard support, so on-premise field systems need a funded upgrade plan before that date.
LDAP sign-in with optional user creation on first loginOdoo LDAP authentication docsOffice and supervisor accounts can come from the directory; confirm which template roles apply to field staff.
Microsoft Azure OAuth sign-inOdoo LDAP authentication docsStaff already on Microsoft accounts can sign in with their work identity; confirm the tenant setup with your identity team.

Choosing Odoo Online, Odoo.sh or on-premise for a contracting firm

The hosting choice for a contracting firm follows from two things: how the firm needs to connect its systems and where its data must sit. Odoo's pricing page states that only the Custom plan can be hosted on Odoo.sh or on-premise, and that only Custom includes multi-company, Odoo Studio, external API access and custom modules. A firm that wants its own infrastructure, custom modules or external API access for estimating or payroll tools is therefore planning for Custom from the start. Choosing Standard or One App Free first and moving later is a re-platforming decision, not a configuration change, so it should be priced and scheduled as one.

Start by listing the systems that must talk to Odoo: takeoff and estimating software, payroll and timesheet providers, subcontractor portals, and bank feeds. For each one, ask whether it needs an external API connection, whether it needs a custom module to write job costs or progress claims, and whether the firm's own data rules require the database to stay in a specific data center or network. Any yes answer points toward Custom. Multi-company is a separate test: if the firm runs separate legal entities for projects, joint ventures or regional offices, confirm it needs that setting before choosing a plan that includes it.

Next, confirm with Odoo or a partner which apps the project depends on are available as Community only, Enterprise only, or in both editions, because the answer changes what the firm can run on a self-hosted build. Construction workflows often rely on Enterprise features such as field service, quality or maintenance, so the list of required apps should be checked against the current Odoo app documentation rather than assumed. Ask for the result in writing with the app names and version. Also note that the Enterprise source code is not publicly available and requires a subscription or partner access, so a firm that expects to audit or fork Enterprise code should plan for that limit and not rely on the Community repository alone.

Plan the operating model before signing. On Odoo.sh or on-premise, the firm or its partner takes on hosting, backups, test copies and upgrades, and Odoo's standard support window is three years after a major release. Major version upgrades are mandatory every two years on Odoo Online and Odoo.sh, so the firm should budget the upgrade cycle as a recurring cost. Ask a partner to show how the upgrade will be tested on a copy of production before cutover, and who will port custom modules when a new version arrives.

Finally, write the decision as a short record for the steering group: the plan chosen, the reasons tied to specific integrations and data rules, the list of apps and their editions as confirmed, and the owner of the upgrade calendar. Revisit the record when the firm adds a legal entity, a new estimating tool or a new payroll provider, because each of those can move the firm from Standard to Custom or change the hosting requirement.

Which Odoo apps and settings carry a contractor's workflow

Most contractor workflows touch several Odoo apps at once: a quote creates a project budget, a transfer moves material to a site, and an invoice draws on the same cost codes. The cards below name the configuration decisions each area requires and flag where the answer depends on Enterprise or on a package to verify in the current release.

Project costing and quoting

Sales and Project decide how a bid becomes a job cost. Set up cost codes that match your estimate structure, quote templates for each trade, and a project and task breakdown that carries the quoted budget into actual costs. Confirm in the current release which costing and quoting features require Enterprise, then test one job end to end, from quote to cost report, before you copy the setup to other projects.

Worksite stock at job sites

Inventory can model each job site as its own location under a warehouse, so material delivered to site is tracked apart from yard stock. Decide how transfers from the yard to a site are recorded, who confirms receipt, and how leftover material returns. Confirm which multi-location and tracking options your edition includes, and whether serial or lot tracking is needed for tools, fixtures or certified materials.

Field service jobs

Field service covers callouts, repairs and recurring visits, which often start without a signed quote. Decide whether each visit is a task under a project, how crews log time and materials on site, and which records the customer can see. Confirm in the current release whether the Field Service app and its mobile use are Enterprise features before you size licenses and plan the rollout.

Progress invoicing and retention

Invoicing and Accounting carry the billing side of a contract: milestone or percentage-based progress invoices, down payments, retention held until completion, and change orders that adjust the contract value. Map each invoice line to the cost codes and revenue accounts your ledger and fiscal localization require. Confirm that the progress billing and retention options you need exist in your edition and country before you design invoice templates.

Industry packages for trades

Odoo publishes industry packages for General Contractor, Property Developer, Carpenter, Electrician and HVAC. Each one installs a set of apps, settings and sample data aimed at its trade. Check in the current release which apps, data and features each package installs, whether any depend on Enterprise modules, and what it changes in your database. Treat the package as a starting point and document every change you keep.

Sign-in and connected tools

Odoo documents sign-in through LDAP, Google Sign-In, Microsoft Azure OAuth and two-factor authentication, so office and field staff can follow the same identity rules. Connections to estimating, payroll or accounting tools usually run through the external API, which is included only on the Custom plan. Confirm the sign-in methods and API scope for each tool, and decide which system holds the master record for each cost and payroll figure.

How project costing and progress invoicing get designed

The design decision that determines whether job costs and progress billing reconcile is where each number originates. A contractor's quote, the budget that governs the job, the purchase commitments placed against it, the vendor bills that arrive later and the invoices sent to the client should all trace back to one job or analytic structure. In Odoo, that usually means deciding early how sales orders from accepted quotes link to project tasks and analytic accounts, and which of those links carry the budget. Confirm with your implementer how your chosen version creates project budgets from a sale, whether the budget is a sales-side figure or a cost-side figure, and where cost lines land in analytic reporting. If the budget is only a reference and not a control, the job cost report will not warn anyone when a trade overruns.

Committed cost and actual cost need separate treatment. Purchase orders for subcontractors and materials represent commitments, while vendor bills and expense postings represent actual cost, and the two must not be counted twice. Plan which analytic plan and account carry each type, how partial deliveries and partial bills are handled, and who approves a purchase that would push a cost code past its budget. Ask the implementer to show, in a test database, a purchase order that is received, billed in part and then closed short, and to confirm that the job report shows committed and actual figures without double counting in your version.

Change orders are where most costing designs fail. A client-approved variation should create a priced line that is visible to both the budget and the invoice, and it should not silently change the original quote. Decide whether variations are a separate sales order, a revised quotation or a line added to an existing project, and how the approved amount flows into the retention and progress schedule. Stock issued to a site needs the same discipline: a material transfer to a project location should be charged to a job at a defined cost, returns and waste need a reverse entry, and the valuation method used by your inventory settings determines the amount posted. Confirm how your version values site stock and whether unused material returned from a job is credited to that job.

Before any live billing, test the whole chain on a copy of production. Odoo documents database duplication with neutralization for test copies in its on-premise guidance, and neutralization disables outgoing mail, scheduled actions and payment provider connections so that a copy cannot send invoices to clients. Use that feature, then confirm each neutralized setting in your version, because the list of disabled integrations can change between releases. Run a defined set of test cases: a fixed-price job with two variations, a cost-plus job with subcontractor bills, a site stock issue and return, and a progress invoice that reaches retention. Compare the job report to a manually calculated figure for each case before release.

Plan the test cycle around the version you will run for the life of the project, not the one that is current during the build. Standard support for Odoo 19.0 runs until September 2028 and for Odoo 18.0 until September 2027 according to Odoo's support documentation, so a costing design built on one major version will need retesting at the next upgrade. Ask your partner to document each analytic and invoicing rule as a test case, so the same suite can be rerun on the upgraded test database Odoo's upgrade service produces. Confirm which features your chosen edition and plan include, since the Custom plan is the only one that can be hosted on-premise according to Odoo's pricing page.

How a contractor rollout runs from scope to go-live

The sequence turns quoting, job costing, site stock and billing into a configured Odoo database that your office and field staff can run on live jobs. Each phase closes with a written output the firm signs off before the next phase starts.

  1. Map quoting, job costing, site stock and billing

    The partner and your estimators, project managers, purchasing lead and accounts team walk through how a job moves today, from enquiry and takeoff through quote, change orders, committed cost, site material use and progress billing. Your firm provides the current estimate templates, sample jobs, price lists, job types and the list of cost codes or phases you track. The output is a process map and a list of decisions, such as whether a quote becomes a project, how change orders are approved and where retention is held, that the firm confirms before any configuration begins.

  2. Decide edition, hosting and version

    The partner and your IT and finance leads choose the Odoo edition, hosting model and version using the mapped process. Odoo's pricing page places multi-company, Odoo Studio, external API access and custom modules in the Custom plan, and states that only Custom can be hosted on Odoo.sh or on-premise, so the decision depends on which of those features the process needs. The version is checked against Odoo's published support dates, since standard support runs three years from a major release. The output is a written decision record covering edition, hosting, version, support plan and the upgrade path, which your security and compliance owners approve.

  3. Configure the database and select packages

    The partner configures the chosen apps, such as Sales, Project, Inventory, Purchase, Invoicing and Timesheets, and selects the industry package that best matches your trade, such as General Contractor, Carpenter, Electrician or HVAC, as a starting point. Your team supplies job types, price lists, cost codes, unit of measure rules, warehouse and van locations, tax rules and approval thresholds. Gaps that no standard app covers are logged as custom module candidates with an estimate of their effort. The output is a configured build with a gap register that your leads have reviewed and prioritized.

  4. Connect integrations and set sign-in

    The partner connects Odoo to the systems the firm already uses, such as the identity provider, accounting or payroll exports, document storage, banks and payment providers, and any estimating tool. Sign-in is set up using the methods the chosen version supports, such as LDAP with optional user creation on first login, Google Sign-In, Microsoft Azure OAuth, and two-factor authentication. Your identity and security team provides directory groups, service accounts and approval for each connection. The output is a test list showing each integration sends and receives the expected records and that each sign-in method works for a sample user in each role.

  5. Migrate customers, items and open jobs

    The partner moves customer and vendor records, product and service items, price lists, opening stock counts and open jobs with their committed costs and billing status into Odoo. Your finance and operations staff verify the source extracts, decide which closed jobs are archived rather than loaded, and sign off on balances. Migrated records are checked against source totals, including open receivables, payables and work in progress. The output is a reconciliation report that the finance lead signs before the test cycle begins.

  6. Test on a neutralized database copy

    The partner builds a test database from the production configuration and data, using Odoo's database duplication with neutralization so that outgoing email, payment and integration connections do not reach live parties. Your estimators, project managers, field leads and accounts staff run scripted scenarios such as a quote to contract conversion, a change order, a van stock transfer, a progress invoice with retention and a job close. Defects are logged and fixed in the build. The output is a signed test result for each scenario, with open defects classed and accepted or fixed before cutover.

  7. Train users by role

    The partner delivers training sessions built around each role, such as estimator, project manager, site supervisor, storeroom clerk, accounts payable and billing staff, using the sample jobs and price lists from the test database. Each trainee completes the tasks their role performs in a practice copy. Your operations lead names the super users who will answer day-to-day questions after go-live. The output is a training attendance record and a short role checklist for each group that your managers have accepted.

  8. Cut over and stabilize

    The partner plans the cutover window with your leads, freezes the source system, runs the final migration and reconciliation, switches users and integrations to the new database, and confirms sign-in and the first live transactions. A stabilization period follows, during which the partner and your super users triage issues, adjust configuration within the agreed scope and review open defects. The stabilization period length is set in the written scope for your project. The output is a signed go-live acceptance and a list of post-go-live items with owners, which then moves to the support plan.

Which Odoo versions and support dates set the upgrade schedule

The support window of the Odoo version a contractor runs is the main input to the upgrade schedule. Odoo 20.0 was released in September 2026, with standard support planned until September 2029. Odoo 19.0 was released in September 2025 and is supported until September 2028. Odoo 18.0 was released in October 2024 and is supported until September 2027. Odoo 17.0 standard support ended in September 2026. A firm that has not yet moved off 17.0 is already outside standard support, and that should be the first fact in its upgrade plan.

Standard support covers the first three years after a major release. It includes security updates and bug fixes on Odoo Online, Odoo.sh and on-premise deployments. Security patches are provided only during standard support. Paid extended support exists for Odoo.sh on select versions and for on-premise, but it does not restore security patching in the way standard support does. Odoo SaaS versions are released every two to three months and cannot use extended support at all. Teams running Odoo Online should therefore expect a steady flow of minor changes to their project costing, quoting and progress invoicing screens, and should keep a test environment ready to check them before the update reaches production.

On Odoo Online and Odoo.sh, major version upgrades are mandatory every two years. A contractor cannot skip the decision by leaving the version alone, so the question is when and how the move happens. The practical rule is to plan the upgrade inside the standard support window, not at its end. Confirm with the vendor which versions are current, which dates apply to your hosting type, and whether any extended support option is available for your version, because these details change and this page cannot track them.

A firm running a version past standard support must plan an upgrade before it runs in production on that version. Odoo's upgrade service creates an upgraded test database, which should be tested before anything is switched over. For on-premise deployments, the upgrade service requires an Enterprise subscription, and the Community edition has no access to it. Check the scope of custom modules, the approvals and job-cost reports used by estimators and project managers, and any integrations with accounting or payroll, because these are the parts most likely to need rework during an upgrade.

Ask the implementation partner to put the upgrade date, the test database approach and the cutover window in the written scope. Ask which dates were used in the quote and when they were last checked against the current Odoo documentation. Confirm the support dates above on the Odoo standard and extended support page before you commit to a timeline, since the vendor may update them.

Compliance and control points for contracting data

Odoo for contracting firms holds staff logins, job costs, payroll, client contracts and sometimes card payments, so each access, patching, environment and payment decision can expose that data. These controls connect because they decide who can reach the data, how long the platform stays supported, and which copies carry it. Confirm each point with your security team and advisers before the build starts.

Sign-in through your identity provider

Odoo documents sign-in through LDAP, with optional user creation on first login from a template, along with Google Sign-In, Microsoft Azure OAuth and two-factor authentication. For a contractor, the key decision is which system is the source of truth for staff, subcontractor and field accounts, because a former employee who keeps a login can still reach job costs and client records. Check which methods your edition and version support, which roles new users receive at first login, and whether two-factor authentication is enforced for administrators and finance users.

Patching within supported versions

Odoo's standard support covers the first three years after a major release, including security updates and bug fixes, and security patches are provided only during that window. Odoo 17.0 standard support ended in September 2026, Odoo 18.0 runs until September 2027 and Odoo 19.0 until September 2028. On Odoo Online and Odoo.sh, major versions must be upgraded every two years. Confirm your version and its support end date before design starts, and place the upgrade test cycle in the project plan.

Separating production from test copies

Odoo documents database duplication with neutralization for test copies, so a firm can test an upgrade, a new module or a report change without touching live job, payroll or client data. Confirm what neutralization changes in your version and which outgoing email, scheduled actions and payment or integration credentials stay active in the copy. Keep test environments on separate infrastructure with restricted access, and define who may restore a production backup into them, since a copy holds the same personal and contract data as production.

Payment design for online card payments

If the firm takes card payments online, the way payments are captured determines how much of the environment falls under PCI DSS scope. Whether card data passes through your servers, is collected on a hosted payment page or is tokenized by the provider changes which controls apply. The Odoo compliance pages cover PCI DSS scope for online payments in more detail. Confirm the provider's responsibility split and the integration method in writing before design, because any configuration that stores or logs card numbers would bring the database, backups and test copies into scope.

Construction obligations and DeployOpen's role

Lien, retention, tax and e-invoicing rules for construction work differ by jurisdiction and change over time, so the Odoo configuration must follow rules confirmed with your counsel and the relevant tax authority. DeployOpen prepares systems, controls and evidence for your compliance assessment, but does not issue audit reports or certifications; independent auditors and certification bodies do that work. Ask for a written list of confirmed obligations before scoping, so each one maps to a configured setting, a named process owner and a piece of evidence.

What contractors ask before hiring an Odoo partner

What drives the cost of an Odoo build for a contractor?

Scope is the main driver: how many apps, industry packages and job types the build covers. A firm running estimating, project costing, worksite stock, field service and progress invoicing is configuring several apps that must share the same job, cost code and invoice data. Each integration with accounting, payroll, a bank feed or a document tool adds design, build and testing work. Data migration is often the largest variable, because open jobs, subcontractor records and cost codes usually need cleaning before import. Edition and hosting also matter. Odoo's pricing page says only the Custom plan can be hosted on Odoo.sh or on-premise, and only Custom includes multi-company, Odoo Studio, external API access and custom modules. A firm that needs those features should expect to quote on Custom. Ask each partner for effort broken down by workstream.

Which Odoo costs are one-time and which recur?

Implementation is one-time: discovery, configuration, custom modules, data migration, testing and training. Recurring costs depend on the edition and hosting. On Odoo Online, the subscription is billed per user, and Odoo's pricing page lists monthly per-user prices with a yearly discount, so confirm current figures there at quote time. On-premise or Odoo.sh hosting requires the Custom plan, and you pay for the infrastructure or hosting service that runs it. Support and upgrades also recur. Odoo's standard support covers three years after a major release, including security updates and bug fixes, and major upgrades are mandatory every two years on Odoo Online and Odoo.sh. Ask the partner to show each recurring line separately, with the date it starts and what ends it.

What must our team provide before an Odoo build starts?

The build is only as accurate as the job data your firm provides. Expect to supply a list of job types, such as new build, renovation, service call and warranty, with how each one is billed. Gather price lists, labor and material rates, and the cost codes your accountant uses. Provide several sample jobs from start to finish, including a change order, a partial invoice and a closeout, so the design can be tested against real cases. Name the staff who will test. A project manager, an estimator, a bookkeeper and a field supervisor each use different screens, and each needs time for review during testing. Ask the partner to list these inputs in the written scope with an owner and a due date for each.

Can an in-house admin run Odoo alone after go-live?

An in-house administrator can usually handle user accounts, routine configuration and reports. Upgrades, custom modules and integrations generally need a developer or partner. Odoo's upgrade documentation describes an upgraded test database that should be tested before production, so someone must own that test. On-premise use of the upgrade service requires an Enterprise subscription, and the Community edition has no access to it. Custom modules need porting when Odoo changes versions, and integration connectors can break when the other system changes its API. Backup and restore testing is another skill gap that often gets missed. Ask for a runbook, admin training, an inventory of custom code and a support option that covers upgrade windows.

How long does an Odoo implementation take for a contractor?

Duration depends on scope, data readiness and how quickly your reviewers respond, so no single timeline fits every firm. The largest drivers are the number of job types and packages, how many integrations need build and testing, and how clean your historical data is. Team availability matters as much as the technical work, because testing stalls when estimators and supervisors cannot review screens. Version timing also matters. Odoo 19.0 was released in September 2025 with standard support until September 2028, and Odoo 20.0 was released in September 2026 with standard support planned until September 2029. Choose a version whose support window covers the planned life of the system. Ask each partner for milestones that show which dependencies sit on your side.

What should we compare when we receive Odoo partner quotes?

Compare the written scope first, then the total. Check which apps, packages and job types each quote covers, and which integrations are included or excluded. Confirm who cleans and imports historical data, who writes and runs test scripts, and how many training sessions are included. Look for separate lines for software subscriptions, hosting and implementation, because subscription fees go to Odoo and services go to the partner. Review the assumptions, such as the number of test rounds, and the process for handling change requests. Ask whether post-go-live support, upgrade planning and a documented handover are included, and for how long. A quote that cannot explain its exclusions is difficult to compare with others.

Which Odoo version should a contractor start a build on?

Start on a version whose standard support covers the whole planned life of the system. Odoo's documentation lists standard support for three years after a major release, including security updates and bug fixes, and security patches are only provided during standard support. Odoo 19.0 was released in September 2025 and has standard support until September 2028. Odoo 18.0 was released in October 2024 with support until September 2027, and Odoo 17.0 standard support ended in September 2026. Odoo SaaS versions are released every two to three months and cannot use extended support. Ask the partner to confirm the chosen version, the upgrade path to the next major version and the date that version leaves standard support.

How DeployOpen scopes and supports a contractor Odoo project

DeployOpen plans, implements, customizes, integrates, documents and supports self-hosted open-source platforms inside your own infrastructure. For construction and contracting firms, that means working from your job costing, quoting, worksite stock and progress billing rules before any Odoo configuration starts, with a written scope agreed in advance.

How we scope

  • Map how you quote, cost and bill jobs, including change orders and progress invoicing milestones
  • Confirm which Odoo apps, industry packages and edition features your trades need before work starts
  • Agree in writing which trade packages, worksite stock flows and field service jobs are in scope

How we build

  • Configure project costing, quoting and worksite stock locations to match how your crews record materials
  • Build and test any custom modules, integrations and data migrations in a non-production environment first
  • Test quotes-to-invoice and progress billing cases with your estimators and project managers before go-live

How we hand over

  • Document configured workflows, cost codes, product structures and approval steps for your office staff
  • Provide runbooks for backups, restores, module updates and the upgrade path for your installed version
  • Walk administrators through user roles, access rights and how to add new jobs and trade packages

How we support

  • Offer ongoing support, upgrades and maintenance as a retainer after handover, if you choose
  • Plan major version upgrades ahead of the support windows Odoo publishes for your installed release
  • Confirm support and upgrade terms in the written quote, including what happens to custom modules

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.