Functional Programming at AnyJunk
Published in
1 min readNov 12, 2017
At AnyJunk we are a building logistics platform using Scala/Cats for the back-end and React/Redux for the front-end.
As a team, we are very fond of types and pure functional programming. We will explain why in a series of stories, and hopefully help demystify things like monads and category theory in general.
Before that, here is the stack we use at AnyJunk.
Back-End
- Scala to program
- Cats for: traversing
Option
,Future
, andSeq/List
monads; handling errors withValidationNel
; executing in parallel withApplicative
. - Akka HTTP for our RESTful API
- Circe to handle JSON
- Slick 3 to talk to our db
- Kafka and Monix for queues
- and a little bit of Shapeless when convenient
Front-End
- React JS for web components
- React Native for our mobile app
- Redux to manage state
- Redux Form for our web forms
- Flow for our types
- Immutable for our state
- React Styled Components for CSS
- Folktale for
Maybe
andResult
- Lerna for code reuse