Revenue - Revenue by Contract Type (Details) - USD ($) $ in Thousands |
12 Months Ended | ||
|---|---|---|---|
Dec. 31, 2022 |
Dec. 31, 2021 |
Dec. 31, 2020 |
|
| Disaggregation of Revenue [Line Items] | |||
| Total revenue | $ 2,890,860 | $ 1,783,665 | $ 1,395,529 |
| Cost-plus and cost-reimbursable | |||
| Disaggregation of Revenue [Line Items] | |||
| Total revenue | 1,625,196 | 1,271,167 | 955,506 |
| Firm-fixed-price | |||
| Disaggregation of Revenue [Line Items] | |||
| Total revenue | 1,159,743 | 452,112 | 403,994 |
| Time-and-materials | |||
| Disaggregation of Revenue [Line Items] | |||
| Total revenue | $ 105,921 | $ 60,386 | $ 36,029 |