Condensed Consolidated Statements of Income (Unaudited) - USD ($)
shares in Thousands, $ in Thousands
3 Months Ended 6 Months Ended
Jun. 28, 2019
Jun. 29, 2018
Jun. 28, 2019
Jun. 29, 2018
Income Statement [Abstract]        
Revenue $ 331,589 $ 321,132 $ 657,517 $ 641,649
Cost of revenue 300,553 292,064 596,149 586,114
Selling, general and administrative expenses 19,843 16,070 39,762 33,865
Operating income 11,193 12,998 21,606 21,670
Interest expense, net (1,329) (1,140) (2,904) (2,305)
Income from operations before income taxes 9,864 11,858 18,702 19,365
Income tax expense 2,247 2,663 3,994 4,058
Net income $ 7,617 $ 9,195 $ 14,708 $ 15,307
Earnings per share        
Basic (in dollars per share) $ 0.66 $ 0.82 $ 1.29 $ 1.37
Diluted (in dollars per share) $ 0.66 $ 0.81 $ 1.28 $ 1.35
Weighted average common shares outstanding - basic (in shares) 11,455 11,235 11,376 11,191
Diluted weighted average common shares outstanding - diluted (in shares) 11,605 11,383 11,512 11,351