Revenue - Revenue by Contract Type (Details) - USD ($)
$ in Thousands
3 Months Ended 9 Months Ended
Sep. 27, 2019
Sep. 28, 2018
Sep. 27, 2019
Sep. 28, 2018
Disaggregation of Revenue [Line Items]        
Total revenue $ 359,854 $ 308,095 $ 1,017,371 $ 949,744
Cost-plus and cost-reimbursable        
Disaggregation of Revenue [Line Items]        
Total revenue 272,810 240,338 781,024 713,289
Firm-fixed-price        
Disaggregation of Revenue [Line Items]        
Total revenue $ 87,044 $ 67,757 $ 236,347 $ 236,455