Remote Web Dev - job application

A quick and dirty implementation with very little graphical flair. It gives the player the option of being first (X) or not (O). The backend utilizes a combination of row/column/diagonal checks for blocking wins and proactively grabbing a win along with a simple state machine to ensure more wins and no losses.

Further improvements to the UI would disallow input while waiting for backend response as it can lead to ambiguous results. Obviously the layout and look need real treatment.