a) Engineering is covered by TN visas, but you have to have an actual engineering degree. Claim you're a software engineer and they have every right to deny the CS grad.
b) Programming is not covered. This is simple fact of NAFTA. It's a process where applicants are told to be super careful with the wording (sort of like saying you're "going to meetings" when crossing the border for work related things), and at most the actual allowance is for a software analyst that does a small amount of programming.
In the Trump era antagonism towards NAFTA, anyone who buys this notion that it's all automatic is fooling themselves. And once you have a TN visa, that is zero guarantee -- any single border guard can reject it, at any time.