I think they should probably be fired.

While I agree, output is the main thing to focus on... I would also ask a few questions:

1) Is the employee using company resources to work on their project? If so... it's bad for them and probably means the company owns it. If the company owns it, is the company getting a say in what's being built / is in line with the company goals?

2) Did the employee ever lie about doing their personal work at work? If so, I would suggest firing them for not being honest. If the employee is logging 8 hours, but only working 5... yes, that's dishonest. Are they billing clients for the extra time?

3) Did the employee flaunt, boast, or brag to others that they were doing personal work at work? If so, I would suggest firing them for being a disruption.

In reality, how I think this should play out is less black and white.

If the employee is getting his work done and still has time to do side projects, and I liked the quality of his work, like the employee, etc... I'd want to offer him a raise to do more work at work... give him more responsibilities that take up more of his time. If his current workload only takes 80% of his time, I want to find a way to give him a 20% raise and 20% more work. I know the first response to the question in the link said that management didn't like giving raises... but I disagree. If he was idle and had more time, and I could give him more work, I'd want to -- and pay him for it.

If that wasn't an option... if the employee was just killing time between builds working on his own stuff... as long as nobody was waiting on him, I'd suggest he use his own laptop, at least, and that we make sure his employment contract allows him to own work done using the company tools and internet. Assuming I don't know what he's working on, I'd want to know a bit about the project -- it could be based on something we make and that may be a conflict of interest, or be the next great Child Porn Bit Torrent Network, or a blatant rip off of copyrighted materials. I want the company shielded from liability there -- which means making sure he owns 100% of what he's working on. Likely we can't ever be shielded from potential lawsuit if we provided resources towards the project... even internet access... so I'd want to make sure there were clear lines and plausible deniability. "He used his own laptop, cell phone hotspot, etc."

If the employee lied about doing the work on company time... if they ever billed me, or a client, for hours spent on their personal project... I think that's a serious problem. I would have to fire them in that case. If they are reporting working 8 hours, but only worked 5, that's throwing off my KPIs and team metrics. If they are charging clients for more time than they worked... yeah I can't have that -- it puts my credibility in jeopardy. I'd have to let them go.

Lastly I'd encourage the employee to keep his mouth shut. Loose lips sink ships... and while the company has to give the appearance of treating everyone the same, I probably don't want this sort of thing to be the norm among engineers... creates too much incentive for false estimates, for starters. So we can have a deal where he does what he wants when his work is done, but he needs to keep it to himself. No asking the QA guys to test his project, no asking other devs how to solve personal project problems, no asking the graphic designers for logos, etc. If he does this work at work, he needs to not advertise that he is doing it or distract other people from their jobs...