4 ms·
Apologies, if this is a bit off topic. I am a freelance computer programmer from India. I have been teaching Haskell myself for the past 3-4 months. I have sto
by imakesnowflakes 11y ago
Apologies, if this is a bit off topic.
I am a freelance computer programmer from India. I have been teaching Haskell myself for the past 3-4 months. I have stopped for a while, because I am hard pressed to find a job where I can work remotely. Can you look at some code I have written and let me know if I can put Haskell as something I can put in my resume? If yes, what is the best way to put it.
Here is the code.
1. A simple neural network with back propogation algorithm that recognizes alphabets letters on a 8x8 grid.
https://bitbucket.org/sras/haskell-stuff/src/default/snn.hs?fileviewer=file-view-default https://bitbucket.org/sras/haskell-stuff/src/default/snn.hs?...
2. A port (partial) of my side project web application in PHP/MySQL to Haskell using Spock framework.
https://bitbucket.org/sras/babloos-hs/src/06bffa288865af1fc30f95d7be9afc58ec061aee?at=default https://bitbucket.org/sras/babloos-hs/src/06bffa288865af1fc3...
What are my chances of getting a remote Haskell job? Based on my experience, What kind of position/pay can I expect to get? If it matters, I have 9 years of professional experience in developing web applications.
- coolsunglasses 11y agoI don't really have time to do a proper code review, but here are some thoughts from glancing. It's petty, but the visual appearance of your code will affect how a client evaluates your knowledge of Haskell. You could use stylish-haskell and hindent to help clean things up. We use a (tiny) Pipes project to tech screen candidates because it's usually stuff like Pipes/Conduit that'll make somebody thrash - not straight-forward stuff in IO. Ability to overcome or preexisting experience is what we're looking for. That doesn't necessarily apply to other companies hiring/contracting with Haskellers of course. I don't know what your focus is, but Haskell isn't _too_ much different from other PLs in that a lot of the work is web, so I'd recommend getting comfortable in Yesod & Snap. Nothing wrong with Spock/Scotty, but a lot of apps will be written in them. There is more numerical work to be had, but if you just want to get work that is Haskell, whatever that may be, that's where you'll want to get comfy. https://bitbucket.org/sras/babloos-hs/src/06bffa288865af1fc30f95d7be9afc58ec061aee/Babloos/Domain.hs?at=default&fileviewer=file-view-default#Domain.hs-56:64 https://bitbucket.org/sras/babloos-hs/src/06bffa288865af1fc3... looks Maybe Monad'ish. https://bitbucket.org/sras/babloos-hs/src/06bffa288865af1fc30f95d7be9afc58ec061aee/Babloos/Domain.hs?at=default&fileviewer=file-view-default#Domain.hs-80:88 https://bitbucket.org/sras/babloos-hs/src/06bffa288865af1fc3... you can kill duplication like this by having a getOne variant of your query function. Many db clients provide this. https://bitbucket.org/sras/babloos-hs/src/06bffa288865af1fc30f95d7be9afc58ec061aee/Babloos/Types.hs?at=default&fileviewer=file-view-default https://bitbucket.org/sras/babloos-hs/src/06bffa288865af1fc3... this is what I mean by petty cleanup. https://bitbucket.org/sras/babloos-hs/src/06bffa288865af1fc30f95d7be9afc58ec061aee/Babloos/Domain.hs?at=default&fileviewer=file-view-default#Domain.hs-37 https://bitbucket.org/sras/babloos-hs/src/06bffa288865af1fc3... Use a quasiquoter so you can write the query naturally, but inline in the code. https://bitbucket.org/sras/babloos-hs/src/06bffa288865af1fc30f95d7be9afc58ec061aee/Babloos/Utils.hs?at=default&fileviewer=file-view-default#Utils.hs-45 https://bitbucket.org/sras/babloos-hs/src/06bffa288865af1fc3... this whole datatype is kinda suspect and you need newtypes for the Text soup. See Bloodhound below for how I use newtypes to make the types more useful. If you'd like example code, my Elasticsearch client is pretty reasonable I think: https://github.com/bitemyapp/bloodhound https://github.com/bitemyapp/bloodhound The projects you've linked look non-trivial and pretty cool, just needs refinement that comes from experience and improvement. Beyond that, seek out sticking points that trip up beginning/intermediate Haskell programmers like getting comfortable in mature web frameworks, with monad transformers, and with a streaming library or two. (Pipes and Conduit) I'd recommend contributing to an existing library as well, if you have the time. I can't guarantee you'll find a Haskell gig if you do all this. If you're serious about finding one, your best bets are consulting with one that already uses Haskell (start keeping a spreadsheet of companies using Haskell and whom you've contacted) or join an early stage company open to transition. I don't recommend the latter until you are _very_ comfortable in Haskell and can teach it. I hope this helped, good luck! Please ping me at my email (it's on my github) if you have further questions but keep in mind the book has me very busy so I might be slow to reply.