I mentioned that a quick way to setup things for me to think that a candidate is a bad idea is to send us a UI project. This is usually a very strong indication that the candidate doesn’t really have any idea what they are doing. They have been doing Win Forms projects, so they write the code for the task at hand in buttom1_Click event handler. Or inside the Page_Load code in an ASP.Net WebForms application if they are “web developers”.
On the other hand, here is a strong counter example. We had a candidate send in a WinForms project, as I said, that is usually a bad sign. But then I actually looked at his code:
And here is a single method:
This code is several levels of too complex for the task. It can be easily simplified to a great degree quite easily.
But the key point from this, and the reason that this candidate has an interview later this week, is that this demonstrate a bunch of things:
- Understanding of separation of concerns.
- Code that actually does what it is supposed to do.
- Proper integration between UI & backend code (for example, we are working with large files, so we have progress bars and off-the-UI-thread work).
- The UI doesn’t look like it was put together by a hiccupping monkey.
I can work with this. There are things that need to be improved for what we do, but there appears to be a SOLID foundation here.