Challenge: hire 30 devs as fast as possible


A company asked me a small app for a job interview. The rules was about creating “foo”, “bar” and “foo-bar”, I’ve transformed it into “coffee”, “servers” and “app”.

The game is entirely in elm. I’ve used Tailwind for CSS and MaterialIcons for icons.

Here is the github repo:

Thanks @Natim for the challenge and ideas, @pd-andy and @malaire for feedback :slight_smile:

Best time currently is from @malaire with 2:50.

I’d be glad to hear any feedback or suggestion :slight_smile:


3:24 ah this is quite some fun ^^ I’m gonna try to improve my skill!

EDIT: 2:53 now (that’s addictive ahah)

2:49 :smiley:

1 Like

Amazing! Still, your devs sometimes are “boring”, maybe we can even do better!

Also here I got 2nd dev at 0:32 while my best is 0:30 (but that is quite rare as it requires fast server mounting times in addition to 100% success for first apps).

Yeah what’s happening with the first dev really is sensible for the rest of the game. What would you think about making app creation 100% successfully when there only is 1 dev?

Currently there is 22% chance of getting no failures with first three apps, so making that 100% would be OK in my opinion. It’s already quite easy to just restart game until you get that success.

However making app creation 100% successful when there is only 1 dev, without app limit, could change optimal tactic. Currently you should recruit 2nd dev as soon as possible, but if that decreases success rate from 100% to 60%, then maybe you should stay with single dev a bit longer?

I still think this would be a good change, even though it might change optimal tactic a bit.

My idea was even more precise: 100% success for the first 3 apps (so you don’t have to refresh the page to have this). However, it will be a hassle to get it in the code in a “not-to-hacky” way :sweat: .

What about

  • add threeAppsCreated: Bool to LoadedModel, initially False
  • in updateLoaded / GotNewFrame, set threeAppsCreated to threeAppsCreated || (List.length newStock.apps + newStock.balance / 1000) >= 3 and pass threeAppsCreated to startDevAction as additional parameter.
  • in startDevAction use if success || not threeAppsCreated then

EDIT: Actually it seems to be a bit more complex, as newStock is updated using startDevAction

I’d prefer to have a appsCreatedCount:Int in LoadedModel , it will be easier to detect if we already have created 3 apps (rather than checking the balance). But this way brings a lot of noise, forcing us to pass this data along the way…

I was thinking about splitting my LoadedModel in something like:
LessThan3Apps Int LoadedModel | NormalGame LoadedModel

this way, we keep the current game logic for the NormalGame and we can set new rules for the LessThan3Apps.

I have updated the app, now the 3 first apps always succeed!

It is still deployed here:

I finally took your approach @malaire . The fact startDevAction updates the stock is not a big deal since this function can only “consume” resources, whereas updateTime only creates new resources.

1 Like

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.