Earnings Per Share - Reconciliation of Basic and Diluted Weighted Average Shares Outstanding (Details) - USD ($)
$ / shares in Units, shares in Thousands, $ in Thousands
3 Months Ended 6 Months Ended
Jun. 28, 2019
Mar. 29, 2019
Jun. 29, 2018
Mar. 30, 2018
Jun. 28, 2019
Jun. 29, 2018
Earnings Per Share [Abstract]            
Net income $ 7,617 $ 7,091 $ 9,195 $ 6,111 $ 14,708 $ 15,307
Weighted average common shares outstanding (in shares) 11,455   11,235   11,376 11,191
Add: Dilutive impact of stock options (in shares) 41   68   42 72
Add: Dilutive impact of restricted stock units (in shares) 109   80   94 88
Diluted weighted average common shares outstanding (in shares) 11,605   11,383   11,512 11,351
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