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