Revenue - Revenue by Contract Type (Details) - USD ($) $ in Thousands |
3 Months Ended | 12 Months Ended | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
Dec. 31, 2019 |
Sep. 27, 2019 |
Jun. 28, 2019 |
Mar. 29, 2019 |
Dec. 31, 2018 |
Sep. 28, 2018 |
Jun. 29, 2018 |
Mar. 30, 2018 |
Dec. 31, 2019 |
Dec. 31, 2018 |
Dec. 31, 2017 |
|
| Disaggregation of Revenue [Line Items] | |||||||||||
| Total revenue | $ 365,271 | $ 359,854 | $ 331,589 | $ 325,928 | $ 329,561 | $ 308,095 | $ 321,132 | $ 320,516 | $ 1,382,642 | $ 1,279,304 | $ 1,114,788 |
| Cost-plus and cost-reimbursable | |||||||||||
| Disaggregation of Revenue [Line Items] | |||||||||||
| Total revenue | 1,046,982 | 995,415 | 818,908 | ||||||||
| Firm-fixed-price | |||||||||||
| Disaggregation of Revenue [Line Items] | |||||||||||
| Total revenue | $ 335,660 | $ 283,889 | $ 295,880 | ||||||||