Revenue - Revenue by Contract Relationship (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
Prime contractor        
Disaggregation of Revenue [Line Items]        
Total revenue 334,383 290,090 954,172 892,206
Subcontractor        
Disaggregation of Revenue [Line Items]        
Total revenue $ 25,471 $ 18,005 $ 63,199 $ 57,538