Skip to content

Instantly share code, notes, and snippets.

@EricR
Last active August 29, 2015 14:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save EricR/a85190d785c6897cc286 to your computer and use it in GitHub Desktop.
Save EricR/a85190d785c6897cc286 to your computer and use it in GitHub Desktop.
Silly little job applicant program
-module(fetlife_erlang_engineer).
-compile(export_all).
start_interviewer() ->
spawn(?MODULE, interviewer, []).
apply_for_job(Level) ->
Ref = make_ref(),
interview ! {self(), Ref, {skillz, Level}},
receive
{Ref, Reply} -> Reply
after 2000 ->
timeout
end.
interviewer() ->
process_flag(trap_exit, true),
Pid = spawn_link(?MODULE, interview, []),
register(interview, Pid),
receive
{'EXIT', Pid, normal} ->
ok;
{'EXIT', Pid, shutdown} ->
ok;
{'EXIT', Pid, _} ->
interviewer()
end.
interview() ->
receive
{From, Ref, {skillz, bad}} ->
From ! {Ref, "Next!"};
{From, Ref, {skillz, okay}} ->
From ! {Ref, "Meh."};
{From, Ref, {skillz, good}} ->
From ! {Ref, "Ohhh, we're interested."};
{From, Ref, {skillz, great}} ->
From ! {Ref, "We are VERY interested!"};
{From, Ref, {skillz, amazing}} ->
From ! {Ref, "You're making us hot!"}
end,
interview().
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment