Hacker News new | comments | ask | show | jobs | submit login

Maybe someone can chime in here - I would love to be working full-time in Haskell, but I'm having trouble figuring out just how much knowledge I need upfront. I know I would be reasonably good at it after 2-3 months of working full-time with some Haskell expert to keep bugging. I try to learn as much Haskell as possible after my normal work but of course my rate of learning is much slower than if it was my full-time job. Looks to me like a chicken-and-egg problem. Anybody have any tips/knowledge of getting a Haskell job?

I've written working servers and deployed them using Haskell but am having trouble getting to the phone screen stage. I decided to offer a really low rate for a remote contract and at least got someone to agree to a phone call. It's definitely an employer's market, but just apply, and network; I believe my connections in the Haskell community will eventually lead to a job. I've gone to LambdaConf and will be at MonadLibre and StrangeLoop. So far I've meet Chris Allen and will meet Ed Kmett among others. They are very approachable! Haskell isn't the end goal for me, but if I'm going to be working on someone else's vision, I really want it to be in Haskell. The amount and relative ease of getting Scala jobs is depressing, but keep fighting the good fight.

In my experience, it is tricky for people to learn Haskell meaningfully outside of a team of people to explain the concepts. I'd say write a few real programs in Haskell. Beyond that, if you find the right company, they will hire based on general engineering skills rather than Haskell-specific skills. When it comes down to it, Haskell is just another language with a particular set of capabilities.

Also there are occasionally posts to the /r/haskell subreddit with job listings.

Good luck!

The new Haskell Design Patterns book, I think, covers a lot of the existing gap.

Just apply. Chances are that a company is willing to talk with you solely on the fact that you're interested and self-taught. There's so few jobs in Haskell compared to the rest of the market and so few candidates with the experience that you probably already have a leg up. My team works primarily in Erlang and we normally willing to interview people with no Erlang experience but a desire to learn. I can't imagine a Haskell shop being any different.

Depends on how prominent they are, and thus how many applications they already get.

Eg getting into Jane Street requires a firm handle on functional programming, not just a desire to learn.

In general, decent advice. If you don't get in now, try again in a year. There's almost no downside.

Honestly, given the current hype it's probably an employer's market right now (as another poster mentioned), so your best chance is probably getting into a position where your managers actually trust you to make sound technical decisions and changing from $LANGUAGE to Haskell (or starting a new project in Haskell). Obviously, if you're changing an existing project you'll want to do this gradually, so any microservice-based architecture you can get in place probably helps the process along.

Of course, the problem with Haskell being what it is, you'll probably end up with very few bugs to squash, so you may end up programming yourself out of a job :). Hopefully the area that you work in isn't quite that static such that requirements will change from time to time...

I've just been through a round of interviews looking for Haskell / OCaml jobs. If anything, it was an employee's market. But my experience might be biased, since I already have a few years of professional experience with that kind of FP.

I am interested in the uses.

I remember reading Functional Programming (FP) leads to more readable code, fewer lines and financial companies use them for some reason. I assume it must be because FP programs guarantee the certainty of their results, but I am not sure. Are there side effects in FP languages?

ml languages (sml, ocaml) support side effects through mutable references, and sequences in case you need it. Haskell aims for purity so you encode side effects as threaded state variables through functions (State and IO monad); other kind of side effects possible with this pattern too (Continuations, ...).

Pointer to two projects, of a number using Haskell, by Joey Hess, as examples of self-propelled learning of Haskell while solving a problem:

[1] Propeller [2] git-annex

[1] twenty years of free software -- part 12 propellor


[2] twenty years of free software -- part 7 git-annex


Just keep learning next to your job. Or find some ways to fit a bit of Haskell into your day job at the edges, perhaps there's some small tool you can write in Haskell?

I've just interviewed for a bunch of FP jobs. The going is getting better and better. (I went with an OCaml job this time and declined two Haskell offers, but that's because of other factors, not the languages themselves.)

I am not sure where you live but meetups would probably be an invaluable resource. Check Meetup.com, I've found that most major cities have somewhat regular Haskell user group meetups.

You're already doing the most important thing, which is working on learning Haskell on your own time. But I think there are some things you can do to significantly increase your rate of learning. Far and away the most important idea here is to interact with other Haskell developers so you can learn from them. You're right that doing this at a job would be the best, but there are other things you can do.

1. IRC. Join the #haskell channel on Freenode. Lurk for awhile and follow some of the conversations. Try to participate in discussions when topics come up that interest you. Don't be afraid to ask what might seem to be stupid questions. In my experience the people in #haskell are massively patient and willing to help anyone who is genuinely trying to learn.

2. Local meetups. Check meetup.com to see if there is a Haskell meetup in a city near you. I had trouble finding a local meetup when I was first learning Haskell, but there are a lot more of them now. Don't just go to listen to the talks. Talk to people, make friends. See if there's any way you can collaborate with some of the people there.

3. Larger non-local Haskell events. Find larger weekend gatherings of Haskell developers and go to them. Here are a few upcoming events that I know of off the top of my head:

Hac Boston - http://www.meetup.com/Boston-Haskell/events/231606922/

Budapest Hackathon - https://wiki.haskell.org/Budapest_Hackathon_2016

Compose Melbourne - http://www.composeconference.org/2016-melbourne/unconference...

MuniHac - http://munihac.de/

Hac Phi - https://wiki.haskell.org/Hac_%CF%86 (2016 is coming but hasn't been announced yet)

The first event like this that I went to was Hac Phi a few years back. Going there majorly upped my game because I got to be around brilliant people, pair program with some of them, and ultimately ended up starting the Snap Web Framework with someone I met there. You might not have a local meetup that you can go to, but you can definitely travel to go to one of these bigger weekend events. I lived a few hours away from Hac Phi, but I know a number of people who travel further to come. If you're really interested in improving your Haskell, it is well worth the time and money. I cannot emphasize this enough.

4. Start contributing to an open source Haskell project. Find a project that interests you and dive in. Don't ask permission, just decide that you're going to learn enough to contribute to this thing no matter what. Join their project-specific IRC channel if they have one and ask questions. Find out how you can contribute. Submit pull requests. This is by far the best way to get feedback on the code that you're writing. I have actually seen multiple people (including some who didn't strike me as unusually talented at first) start Haskell and work their way up to a full-time Haskell job this way. It takes time and dedication, but it works.

5. Try to get a non-haskell job at a place where lots of Haskell people are known to work. Standard Chartered uses is Haskell but is big enough to have non-Haskell jobs that you might be able to fit. S&P Capital IQ doesn't use Haskell but has a significant number of Haskell people who are coding in Scala.

Apply to StanChart to work on the Cortex team. They are always hiring. At the very least you will come away knowing what you need to know.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact