It's common to have to stack monads to provide several effect at once: Monad Transformers are here to help us. But they bring their own issues. Hopefully, typeclasses can help us again.
Typeclasses allow us to not commit too early to an implementation and simplify the scope of what a function can do. Even better, it's easy to provide a better (faster) implementation without hassle.
We can learn a lot from functions just by looking at their signatures. The simpler the types, the easiest it is to understand it. Polymorphism and Pure Functional Programming help us.
Who said parsers had to be complicated to write? We'll see how we can use the State monad to write mini-parsers (to recognize letters, digits), combine them (to recognize words, numbers), then finally parser a complete language.
The kind-projector sbt plugin is quite ubiquitous in the Scala world. It introduces new keywords to provide some syntactic sugar for advanced type-related usage. It's also depends on the partial-unification done by scalac, which has some caveats.
A hash function is any algorithm or subroutine that maps large data sets of variable length, called keys, to smaller data sets of a fixed length.
Apache Avro is a must nowadays, but it's rarely used alone. For the sake of schema evolution (any business have requirements changes), it's often associated with a Schema Registry. This also has a performance impact because every message has to be checked.
A global overview of the micro-services strategy. It must deal with failures, how to communicate between them, sync/async, performances, observability, consistency and much more.
After JNI, it's JNA. We can depends on third-party APIs in C/C++ in a simple way.
Performance matters. A website should not be optimized right away, but it must neither be under-performant.
What can we find in this.props.children, and how to use it?
The experience of building a complete back-end in NodeJS.