Earlier quoted context omitted.
The exercise itself is a simple note-taking app with a couple of screens. We don't impose a time limit on candidates interviewing to complete this stage. > For a new project there aren't any well defined states of the code that make sense to be persisted. This means the commits will be arbitrary and their messeages not very meaningful. I didn't understand this? The problem is well scoped and defined. Regardless of wh…
There are two ways of working in programming. One is to make disciplined incremental progress: write a test, make the test pass, do minimal cleanup, commit, see a refactoring opportunity, do it, commit, write another test, see a related bug, write the bug down but don't fix it, make the test pass, clean up, commit, tackle the bug, commit, etc. The other is to flail about wildly until you have something which more or…
You're going to be judged on how well the end product works, so if we start with the following tasks, and you have 180 minutes.
1. 20 minutes: their stack's boilerplate/tooling
2. 10 minutes: unit testing boilerplate
3. 20 minutes: integrated testing boilerplate (browser automation is a fickle beast)
4. 20 minutes: basic database entity + database setup
5. 20 minutes: basic UI page + frontend setup
6. 20 minutes: replace default styling (their guide talks about UI "polish")
That's 110 minutes and nothing more than a pretty display from the database.
The task will almost certainly ask for more than one user action. I might be able to write an action in 20 minutes, but there is no way I can write good tests, seed test data for integrated testing, and keep each commit atomic and green.
So, do you choose to have a tidy commit history and complete test coverage, or do you choose to complete the task?