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