Revenue - Revenue by Contract Relationship (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
Prime contractor        
Disaggregation of Revenue [Line Items]        
Total revenue 312,732 301,088 619,789 602,116
Subcontractor        
Disaggregation of Revenue [Line Items]        
Total revenue $ 18,857 $ 20,044 $ 37,728 $ 39,533