How do you keep updated with Elixir news?

I believe it is because we have a problem that we seek solutions, and then look for available tools, instead of matching tools to problems.

Take your example, for instance:

  1. “Oh, the db query is very slow” - the problem
  2. “We have no time to improve the performance of query, so we add a cache for the query result” - a possible solution
  3. “Are there any existing tools available? ” - try to discover available tools.
    • First, people will think of Redis. Then, Let’s search “Elixir Redis”. We’ll find whatyouhide/redis. If you or your team are satisfied with this tool, you can use it directly. After all, using fancy technology won’t increase your business value.
    • But, if you or your team heard that Elixir and Erlang are powerful, so perhaps you may think that you don’t need to use Redis. Let’s search “Elixir cache”. We’ll find whitfin/cachex.

You can see, all of this doesn’t require us to follow trends or keep up with news. Instead, we start from the problem and look for possible solutions through through multiple channels:

  • search engine
  • forums
  • friends

This is not a simple decision. You need to consider:

  • your or your team’s preferences
  • the current state of your infrastructure
  • your personal enthusiasm (For me, I wanna simpler stack, so I might choose to learn cachex)

You can think of it this way: “I need to solve a problem, and I want to solve it elegantly with as few tools as possible. First, I need to do some research to understand what solutions others are using and what their pros and cons are. And, then, choose the one that best matches my problem and has the lowest cost.”

Did you notice the main difference? Everything starts from the problem, not from the tools.


If you still feel the need to master or learn more tools, you can settle for just knowing more tools, instead of wasting time on learning technologies you might never use.

What is the meaning of knowing more tools? You only need to know a one-sentence description of every tool, and create a map for yourself:

* cache
  - cachex - an extremely fast in-memory key/value store with support for many useful features, without using Redis
  - ...
* params validation
  - ecto changset - ...
  - params - parameter structure validation and casting with Ecto.Schema.

You don’t have to master it or learn it, just know what it is. That’s enough. When you really need it, it’s not too late to learn.

3 Likes