Introduction These are some of the lessons that I have learned over my 5 years at a Fintech startup that went from 0 to 100k customers and grew the team from 4 to 50 people. It would be hard for me to identify what we did to put us in this fortunate position; the market…
Tag: softwareengineering
Not So Random Software #29 – Waterfall history
Hello everyone and welcome back to Not So Random Software! This week I am exploring the history of the Waterfall software development model to better understand how it came into place and the rationale behind it. In the era of Agile, we look at Waterfall as the evil from the past; I believe that by…
Not So Random Software #17 – Agile
Welcome back to Not So Random Software, this week’s links are dedicated to Agile! Have you ever taken a step back and spent some time reflecting on why you use Agile methods every day? In what context is this the perfect choice? Is there a case for not using Agile methods? Not exactly your everyday…
Not So Random Software #16 – Leadership
Welcome back to Not So Random Software, this week’s links are dedicated to leadership. We often struggle to define it, measure it and promote it, but leadership is still a key factor for your tech team’s success. This week’s links serve as a good reminder of what to focus on. Enjoy this random walk! A…
Not So Random Software #15 – Values
Welcome back to Not So Random Software, this week’s links are dedicated to team values. Team values help you define what a great job looks like; you might value speed over quality, or you might value working together over fully delegating to the experts. These are not easy choices to make because each choice works…
Not So Random Software #10 – Automation
Welcome back to Not So Random Software. This week’s links are dedicated to Automation and how we can keep a healthy relationship with it. A random article or paper In an automated system two roles are left for the human operator; (a) monitoring that the automated system is working correctly, and (b) taking over control…
To raise or not to raise exceptions, and the art of designing return values
Each time we call a function that’s meant to perform some operation that could succeed or fail we are always left with the same dilemma. What should be the return value? Should I return nil if a failure happened? Or I should throw an exception? What does failure means anyway? Like every interesting question, the answer is…
Introducing Hash#dig_and_collect, a useful extension to the Ruby Hash#dig method
In this blog post I will introduce Hash#dig_and_collect , a simple utility method that is built on top of Hash#dig to help you navigate nested hashes mixed up with arrays.