First round was a typical recruiter screen with a fairly competent internal recruiter. Conversation went very well, they invited me to take a coding challenge.
The coding challenge was more appropriate perhaps for a junior developer.. call a basic API endpoint and output the response, add some parameters. Out of the gate, it did not feel like the kind of exercise to send to a senior dev. The coding challenge included some bonus items which would seem to lend to a production approach, but still basic (Docker, add a Postgres database, add some test cases). It also appears that they have been using this exact same coding challenge as part of their interview process for several years, as is evident from a quick search of public Github repositories.
I took the time to be exceedingly thorough in my submission, borrowing heavily from production code I had used in multiple roles in the last several years, and including detailed documentation and near 100% test coverage, ensuring the Dockerized version built cleanly on multiple machines.
Then a couple of days later, a generic rejection email arrives, responded with a generic rejection email, stating, "Unfortunately, your assessment didn't meet the required criteria in order for you to proceed to the next phase.
The main purpose of the challenge we sent you was to assess how you approached a new and unknown problem and to evaluate your skills while doing so. Among other things, we hope that a candidate is able to properly structure their code, taking code readability, security and scalability into account, while using current best practices."
LOL, but... much of this code is borrowed directly from production code bases I had developed with other senior devs, and is a well-used REST API backend pattern used everywhere.. So they offer no real feedback, it is not even clear that a human, let alone an Uphold dev, actually took the time to review the code.
Do not waste your time on their coding challenge, instead ask first to speak with a hiring manager. If they do not allow this, then move on, quickly!