My employer, Serokell (https://serokell.io), is looking for Haskellers. This is a fully remote job; the salary is okay-ish, but not quite Silicon Valley grade. I would say that it's a great first job for someone who doesn't consider themselves a beginner Haskeller anymore, but doesn't have enough work experience and doesn't know where to get some :P
What we are working on
Cardano – a state-of-the-art general-purpose cryptocurrency, currently #6 by overall capitalization, fully open-source and written in Haskell. Philip Wadler (one of Haskell's creators) is designing a smart contracts language for Cardano. Your pull requests will quite likely be
rejected merged by Duncan Coutts himself. It's not an “Ethereum but for X” kind of project – we're really trying to beat 'em all (and I'm saying it as someone who is familiar with the field).
Oh, and we've got some more blockchain-related projects going on! So, if you want to be able to code without worrying about boring stuff like “backwards compatibility” (pfft), we've got that, too.
What we *do not* require
Knowledge of how cryptocurrencies work, or any crypto in general.
Knowledge of any languages other than Haskell.
A college/university degree of any kind.
Production experience, devops experience, PostgreSQL, Azure, and whatever other stuff people love to require from everyone nowadays.
What we do require
Solid knowledge of Haskell 98 features. If you haven't ever written your own typeclass, if you struggle with applicative functors, if you don't know how stuff like
ReaderTworks – those are bad signs.
Familiarity with the modern ecosystem. Stuff like
servantisn't required (we've got like 15 lines of conduit code in total, afaik), but you definitely should be able to use
liftIO, basic lenses and Stack (or Cabal) – say, at least three of the four.
Note: the above is the list of minimum requirements, but if you are an awesome libraries-publishing, posts-writing, GHC-contributing, dependent-types-waiting-for Haskeller, you can totally apply too!
How to apply
A tip on what to write there – we basically need to estimate three things about you:
How knowledgeable you are regarding Haskell (i.e. will you be able to understand our code) – for that we need links to your libraries on Github/Hackage, tales of completed or abandoned projects, blog posts, comments on Reddit, links to advanced articles that you were able to kinda understand – anything will do!
How good you are at understanding new things; this one can be harder to prove, but if you tell us something like “at my previous job I implemented a new feature a week after I saw the codebase for the first time”, or “I read the Bitcoin paper a year ago and thought it was awesome”, or whatever – that'd be cool.
Whether you have real-world experience already. By “real-world” I don't mean “production” – what I'm talking about is all the messiness of the systems that already exist out there and which you have to interface with. For instance, if you wrote a tar archive parser, it would likely be more real-world than lots of actual production code out there. Working with filesystems, non-trivial APIs, or just writing a GUI – stuff like that all counts.
Note: of course, giving “bad” answers to those questions doesn't mean you won't get hired! We just need estimates, that's all. However, if you feel that you really aren't ready for commercial Haskell development, or are just shy, you're welcome to apply to our intern position – https://serokell.breezy.hr/p/1f1f2f3d813a01-intern/apply. It's literally the same thing and will be reviewed by the same people but your application will go to a different table in the database :)