Community Engineering

Blogs and articles from our engineering team

Here comes part II of the Hamler blog post series … For this year’s Advent-of-Code I wanted to take a look at Hamler. I just finished implementing all of the part-1 solutions in Hamler. I had to skip Day 20 (the seamonster), because H...
What’s at the intersection of Haskell, the Erlang Beam/OTP and the Advent-of-Code? Yes, right: Hamler! Hamler is a Haskell-like language that runs on the Erlang Beam/OTP. At Community we are big Beam/OTP fans (because we like highly-scalable...
Follow other posts by Apache Spark is a perfect fit for processing large amounts of data. It’s not,  however, a perfect fit for our language stack at Community. We are largely an Elixir shop with a solid amount of Go, while Spark’s native stack...
At Community we use RabbitMQ, a lot. It’s the infrastructure backbone that allows our services (over fourty at this point) to communicate with each other. That mostly happens through events (since we have an event-sourced system), but in some case...
I am in Hidden Valley Holiday Park. Working on the career progression framework for Community. It is 5am and … I realized something. Don’t hold your breath: It is something obvious (but I thought I share it anyway). If you want to be ...
The system that we’re building at Community.com is made of a few services (around fifteen at the time of writing) that interact with each other through a basic version of event sourcing. All events are exchanged (published and consumed) through Ra...
A kernel “bug fix” that happened at the end of last year may be killing the performance of your Kubernetes- or Mesos-hosted applications. Here’s how we discovered that it was affecting us and what we did about it at Community. Bad 90th Percenti...
Last week I was in London attending Code Elixir LDN 2019 delivering a lightening talk on 3 languages in 3 minutes … This was my first Elixir conference. We had about 100 people there. The conference was very well organized. From what I can...
Elixir has a some great syntactic sugar. A nice feature that was introduced back in Elixir 1.2 is the with statement which allows you to string together pattern matches without horrific nesting. You can now write out the whole happy path for you...