Mercury's attitude towards "hiring for Haskell is difficult" is to hire people and teach them Haskell. Today I spent a couple hours of my workday with a learning project, getting more comfortable with ReaderT and project organization.
Two things that stand out:
Two things that stand out:
1) Sometimes it really is that simple. Like, this thing has a lot of book chapters and blog posts written about it, but my instincts to look for "the implementation" lead me astray:
newtype ReaderT r m a = ReaderT { runReaderT :: r -> m a }
(okay there's a bit more to it than that, but not much!)
2) Mercury's approach of making training part of people's job is super effective. This is the sort of thing that, in a previous job where there weren't people booking 1hr meetings to teach me shit, I'd have skimmed over in a blog post and maybe retained enough context to google something helpful. That's one way to do it, and I have been learning a fair bit of production Haskell just by working feature tickets, but dedicated training time is a whole 'nother level.
2) Mercury's approach of making training part of people's job is super effective. This is the sort of thing that, in a previous job where there weren't people booking 1hr meetings to teach me shit, I'd have skimmed over in a blog post and maybe retained enough context to google something helpful. That's one way to do it, and I have been learning a fair bit of production Haskell just by working feature tickets, but dedicated training time is a whole 'nother level.