I was tasked with a take-home technical challenge involving the identification of all polygons within an undirected graph (Assumption - the undirected graph forms a union of simply connected polygons), based on given nodes and edges, and to perform various operations on these polygons such as inside/outside tests and polygon neighborhood queries. This required developing a JavaScript web application capable of importing graph data in JSON format, calculating the polygons, and executing the operations. Completing this task took me a week.
Following this, I had another meeting with both the hiring manager and the CTO, during which I was quizzed on several optimization topics, such as my choice of using an adjacency graph, the calculation of angles over cosine usage, strategies for handling multiply connected geometries, and dealing with malformed inputs. Although I believe my responses were reasonable, I was informed of their decision to reject my application two days later. Seeking clarity, I requested feedback, to which the manager attributed their decision to my code's lack of optimization and my unsatisfactory answers to some questions. This expectation for optimized solutions was not previously communicated, and considering the complexity of the challenge, the entire process felt like a significant expenditure of time for the candidates, seemingly for little reason. It felt quite demeaning, especially considering my background of more than five years in geometry software development (+ a PhD in comptuational math / mechanics).