• Book Review: Understanding Computation

    I have two University degrees in different engineering disciplines, but came to Software Engineering without any formal training in Computer Science. I learned how to use databases and shortly later how to write programs. I mostly learned from practical books and online resources. All my deeper knowledge of computer theory came years later. Understanding Computation: From Simple Machines to Impossible Programs by Tom Stuart seems to have been written for people like me: Thirsty for knowledge about computer theory, with explanations written in the language we use every day and without the mathematical notation1.

    1. I actually do like mathematics, but mostly as a tool to explore physics. My familiarity with the math underpinnings of computation is lacking. 

    Read on →

  • Celluloid, Nice to Meet You

    In my projects, I regularly encounter the need for a long-running process that runs in the background. In ruby, it’s easy to reach for Thread:

    Read on →

  • The REPL: Issue 12 - July 2015

    Elixir in times of microservices

    José Valim, creator of Elixir and Rails Core member, weighs in on microservices. He makes a great case on why Elixir, leveraging the Erlang VM makes it easier to work with distributed systems and imposes less up-front tradeoffs than the current trend of microservices communicating via JSON API.

    Elegant APIs with JSON Schema

    At work, I have been exploring how to work effectively with microservices on a Rails stack. JSON Schema, comes up often, especially, especially with all the tools open-sourced by Heroku/Interagent. The blog post by @brandur, is the best introduction to JSON Schema I have read so far.

    Improved production stability with circuit breakers

    The circuit breaker pattern provides a way for resiliency and stability when working with distributed systems. In this post, Heroku introduces their new Ruby library for implementing the pattern. I especially liked the idea of having a roll-out strategy introducing logging-only circuit breakers first. At the very end, they advise to tune timeout settings for underlying libraries. Don’t know how to do that? Check the Ultimate Guide To Timeouts In Ruby

    Read on →

  • Book Review: Programing Elixir

    Dave Thomas is celebrated in the Ruby community for having written the “Pickaxe”: The first english language book on Ruby and widely used as the beginners guide and reference to Ruby. Now, he brings us *Programming Elixir: Functional > Fun > Cuncurrent > Pragmatic > Fun*.

    Read on →

  • The REPL: Issue 11 - June 2015

    Phoenix and Rails performance comparison

    Benchmarks are always to be taken with a grain of salt: They think that they are measuring can be very far from the performance you are likely to see in production. Their usefulness is in informing our decisions about technology choices. I have been getting interested lately in Elixir and the Phoenix Framework and the results of this benchmark confirm my anecdotal experience: Phoenix, out of the gate, blows Rails out of the water. Very interesting considering that the code you write in Phoenix applications is very pleasant, like Rails. Developer happiness, right?

    This Is Professionalism

    This short post by Chris Doyle captures very succinctly what professionalism is: Autonomy, responsability and humilty. It resonated with me. As I mentioned before, excellence and professionalism in Software Engineering don’t require a medieval craftsmanship metaphor.

    Designing a Secure REST (Web) API without OAuth

    I have been doing a lot of research lately on API authentication and came across this article. It’s a bit rambling at times, but it’s filled with good information of what issues can arise with API authentication and was food for a lot of thought and further research.

    Read on →