I'm not talking about fizzbuzz or algorithm problems, I'm talking about programming assignments, the first one I ever had was something like the following:

Please use the HN API to build a tree view of HN comments that allow you to see what the top posts are on a day where you can drill down to see comments on the posts and the top commenters, use client side vanilla JavaScript code to get data, allow persistence of data to local storage so that if the computer goes offline you will be able to still read content. Separation of concerns, nice code structure, and a nice presentation will impress us.

Suggested time: 4 hours.

Others, here is a partially completed project set up, some mock data, a link to a technical specification of a data format you are probably unfamiliar with that you need to also use a graphQL endpoint to query and build a table view of Apartment listings with pictures of the apartment, the location, the zip code, the phone number of country, rental price. Users should be able to login and see the latest apartment listings, it should be possible to sort by latest updated listing and by rental price. Sorting should persist between pages. Tech stack to use React, Sass, Webpack, a nodejs static server.

time: 4 hours.

This one was interesting because it is the only one I have ever had where I managed it in EXACTLY 4 hours (except for ones that were more like use what language you like to do this algorithm)

I even made a cool SVG log in component based on an article I'd written recently https://blog.logrocket.com/cooler-loading-animations-svg/ and then in the meeting to critique the code it was observed it was not as well ordered and divided up into components as one might like with React and what would I have done if I had more time - like an hour more? - and I answered if I had more time I would have finished early because the purposes of these things are to show I can program, not to make a really great solution, if I had managed to do what I did in 3 hours I would have spent 3 hours and no more.

All these projects should normally be delivered as git repos, so you need to setup repo, set up stack, run installation of libraries you will use, run installation of things they want you to use.

I once had one where I spent all 4 hours trying to fix a bug in their preferred library and managed to fix it and then I said ok I am not spending any more time on this, I found this bug on Mac here is the issue tracker on github I fixed it so I can install start development but I have done 4 hours I am not doing any more I suppose this means you don't want me to submit it.

No Bryan, please submit, we will take it into consideration, this message about the bug is very interesting blah blah. So I submitted.

A week later I got an insulting message that the project I delivered was 'extremely underwhelming' - like no shit, there was no code in it, just some particular babel and typescript combinations to fix a particular library you wanted me to use on Mac.

Thus finally, the more you do these the better you get? Not really, other than the more programming you do the better you get. Again, not algorithm puzzles, building simple solutions specified by someone using the tools that they want you to use.