Community Engineering

Blogs and articles from our engineering team

This is a common question when using Phoenix and when searching the web I didn’t find any complete examples. I ended up experimenting for myself and I figured I might as well share my findings.You essentially have two options.Because a router is a...
Phoenix comes with a few handy ways to test its components. For example, it has Phoenix.ControllerTest module, which helps us make a request that goes through the application endpoint all the way up to the controller. Phoenix also generates a Conn...
As people know … I am big fan of building and maintain this balance between Product and Engineering where … Product makes sure we build the right thing and Engineering makes sure we built it right (and we help each other to do so :))...
I know the feeling all too well, trying to find the right balance of IAM permissions without opening up your policy to ["ec2:*"]. Figuring out every permission your application requires can be an arduous process but there is a better way.
Hamler Blog Post Series … Hamler (I) - First week (this post) Hamler (II) - All solutions for part 1 (in Hamler and Haskell) Hamler (III) - Making Day21 10 times faster What’s at the intersection of Haskell, the Erlang Beam/OTP and...
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...