He buys 2 and a half dozen donuts so that's 2.5*12 = <<2.5*12=30>>30 donuts
He eats 10% of the donuts on his way to work so he eats .10*30 = <<10*.01*30=3>>3 donuts
He bought 30 donuts and ate 3 so that leaves 30-3 = <<30-3=27>>27 donuts
Once inside, he grabs another 4 donuts of his afternoon snack so that leaves 27-4 = <<27-4=23>>23 donuts for his co-workers
#### 23