Hello, My Name Is Rob Conery

I am a software developer living in Seattle. I specialize in web development but I currently shifting my focus a bit towards backend systems and databases. I host and produce the podcase This Developer's Life with my friend Scott Hanselman.

When you build applications in the Erlang world you create discrete processes that interact. In theory this is pretty straightforward - until you actually try to do it. Microservices fans out there know the value (and the pain) of managing a fleet of services; there are benefits to it, definitely, and also problems.

As CTO I get to call the shots here at Red:4 but I do have to answer to the CEO and others. It's easy to arm-wave, to go on and on about Elixir and functional languages - but at the end of the day it's what you do, not what you say that counts.

About 3 years ago I had an idea for creating a different kind of tutorial. Something that would combine the problem-solving of a video game, the immersion of a sci-fi story and the joy of learning something new. A tutorial you wanted to finish in the same way you want to finish a good book or fun video game.

One of the things I've had to adjust to is how I want to structure function calls in Elixir. This is forced upon you by Pattern Matching and is a Very Good Thing. Deciding on these patterns early on can really be helpful.

I don't typically write "lifehack" posts, but this question has come up repeatedly over the last few weeks:

Had a great comment from my last post (about using Recursion):

I have to start out each post this way: I have no idea what I'm doing, but dammit am I having fun. In the fist few posts I ham-handedly threw some code against the wall to see what would ... stick? Anyway It worked, but I realized (as I did with Ruby, wonderfully) that there just has to be a better way.

I don't really know what I'm doing. I'm trying to learn Elixir and I'm having so much fun doing it that I thought I would share what I'm learning. So ... here goes. The code for the stuff I'm writing is up at Github - feel free to drop over.