Don't aim for speed

When a marathon runner realizes he got the first 10km 30% faster than planned, does he get happy? No! He knows he already lost the race. Too much energy was spent and, as humans are not perfect machines, he will burn out before the finish line. Building software is a long distance run. When all you can think about is how fast we can go, your judgment gets clouded. All extra speed will come with a price down the road. Instead, what should we strive for?


Monitoring endpoint performance with Grafana and CloudWatch Logs

Slow things usually just turn out slow when they reach production. The worse scenario arises when a specific combination (often involving lots of data) occurs, and it is hard to simulate it on stage environments. Once you rule out obvious mistakes, the best way out the sluggishness is to monitor how your application is performing through new versions. This way you can identify slow components and treat them accordingly. This article is about how you can store performance data about your REST application using CloudWatch and visualize it with Grafana.


Waiting Goroutines: fetching stock prices

Goroutines are a lightweight approach for concurrent processing. This means you can trigger different long running tasks and let Go and your hardware find how to use the available resources. However, your program will not wait automatically for those tasks to finish. The execution can simply stop, and your routines will die along it. This article shows how you can wait for all goroutines to finish on a common use case: fetching data from a external API, such as stock prices.


How to keep things personal on a remote work environment

Keeping everyone engaged on a project is a key attribute to its success. Teams should be synergistic and keep knowledge exchange up, focusing on the common goals you set up for. This is a challenge on in-office work, and can evolve into a huge issue on remote environments.