Stateless vs stateful web apps

With Rails 5 soon to be released, many developers are planning to further explore Action Cable and add stateful features to their web applications via WebSockets. In this article we will highlight some points worth discussing when deploying such features. When we use HTTP, scaling horizontally and vertically is cheaper and easier as the server … »

Power of the metrics: Don’t use average to forecast deadlines

Almost all project stakeholders are used to ask for deadlines when the subject is software development. Every time I face this type of question I usually answer something like this: — “Well, the only thing I know is that uncertainty is one of the few certainties about software development, so let’s look at the team’s … »

Writing Acceptance tests in Phoenix

Acceptance testing seems to be in its first steps in the Elixir ecosystem, but there are already some cool libs that can help us out to do it. I’m going to show you how we did it with Hound. In this blog post, we’ll write a few acceptance tests for an expenses report listing page, … »

How to do remote meetings effectively

Several teams, different locations. As technology evolves, this scenario gets more and more common. When you need to set up a meeting between distributed teams, it usually leads to frustration. Noise, poor sound quality, interruptions and lack of focus tend to erode communication and make things chaotic. As a consultancy, we have learned a lot … »

Improve remember me cookie expiration in Devise (CVE-2015-8314)

A security bug (CVE-2015-8314) has been reported in Devise’s remember me system. Devise implements the “Remember me” functionality by using cookies. While this functionality works across multiple devices, Devise ended-up generating the same cookie for all devices. Consequently, if a malicious user was able to steal a remember me cookie, the cookie could be used … »

O aprendizado a partir de indicadores ágeis

Desenvolver software é algo que traz naturalmente uma carga de incerteza, afinal de contas, envolve uma mistura de desafios técnicos e dúvidas de negócio. Independente do processo ou framework adotado pelo time (ex. Scrum, Kanban, Cascata, etc.); clientes, usuários e stakeholders demandarão uma resposta quando o assunto diz respeito ao prazo de entrega do produto … »