Revenue - Revenue by Contract Type (Details) - USD ($)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 28, 2019
Jun. 29, 2018
Jun. 28, 2019
Jun. 29, 2018
Disaggregation of Revenue [Line Items]        
Total revenue $ 331,589 $ 321,132 $ 657,517 $ 641,649
Cost-plus and cost-reimbursable        
Disaggregation of Revenue [Line Items]        
Total revenue 256,737 242,742 508,215 472,951
Firm-fixed-price        
Disaggregation of Revenue [Line Items]        
Total revenue $ 74,852 $ 78,390 $ 149,302 $ 168,698