CAN YOU WRITE SOFTWARE USING ONLINE CODE TESTS?
       
       I was reminded of the unfortunate reality of code tests by way of an
       unhappy job applicant on a Discord server. A coder was woe-ing the
       hours they had spent on a code test for a job. It got me thinking
       about code tests, including my own experiences1 (well… lack
       thereof). Then my mind began to speculate on just how sinister code
       tests could become. Like, could you get a piece of software written
       entirely from code tests? Imagine: a tech company whose product is
       software that develops software out of code tests. These code tests
       are embedded into job openings for positions in companies that don’t
       exist. A code test for one position at one company might involve
       writing a front-end template or small API. A code test for another
       position at another company might involve testing the results of the
       other applicants' work. Coders apply to the jobs and complete the
       tests. Regardless of the outcome they’re never hired and get no
       further in the process. This cycle repeats in endless iterations. Code
       gets written, but no one ever gets paid. All the while–and unbeknownst
       to all who’ve applied–a piece of software is being developed behind
       the curtain.
       
       Can it be done? Just how difficult would it be to execute this
       sinister plot? (And: if I am to reason about how to implement this
       scenario, is that in itself a type of code test?) Setting up a fake
       company would be the easy part. There are website generators, brand
       asset generators, and website copy generators to quickly stitch
       together something that looks like yet-another startup company. But
       what about the code tests themselves? The scope of this problem is
       beyond anything I’ve ever had to reason about. I couldn’t tell you
       what language, development kit, platform, etc., to use. It strikes me
       that maybe a Lisp dialect would be effective, since I hear they are
       well suited for AI, and AI would probably factor into this scenario
       somehow. Nonetheless, Clojure (because it’s a Lisp dialect and it can
       run on a JVM) and Haskell (for its strongly type nature, and the fact
       that its used by Meta for spam detection) would be my language
       candidates. (And since I want to learn Haskell, so I guess I’d just go
       for that :)) But that approach is all based on the assumption that a
       program can be written to intelligently write, evaluate, and stitch
       together code tests. And this assumption could very well be flawed.
       
       So instead, I think it would be worth exploring a direction that
       leverages version control. I’m become more familiar with Github’s
       actions and API, so I think there could be a solution that makes use
       of the platform. A piece of software could be written (using any
       scripting language, really) to write, pull, merge, lint, and build
       code tests. The software could also open new repos which job
       applicants get invited into for their test. I’m imagining a piece of
       software who’s main job is “perception management”–to keep up the
       perception that the code a job applicant is working on hasn’t been
       written by a previous job applicant. The software achieves this by
       moving the code around between repositories to obfuscate the
       author. To kick the whole thing off the first test could be to write a
       code test. And the next code test (to be completed by another
       applicant for a different “position”) could be to evaluate the
       test. The cycle is endless. Broken down into discrete chunks, code
       tests could be used, brick by brick, to build a piece of software that
       builds software using code tests. Evil stuff! Nobody better get any
       ideas…