In the first post of our series, we discussed how using distributed background tasks helped business operations remain smooth and performant.
In this post, we’re going to discuss different techniques we’ve used to keep our database usage sane and reduce the load on daily operations and deal with large amounts of data (up to tens of millions of entries).
The following are some of the hurdles we overcome by applying strategies we will soon discuss:
This week, the team currently working on our latest project and I were banging our heads against the wall trying to figure out why our fonts weren’t being displayed correctly. We were importing four different font-weights from google fonts but only two of them were being shown.
In a nutshell, angular-cli wasn't changing the order our font imports, therefore, making the browser ignore the import since it doesn't load any imports that's are not at the top of the file. …
In the last few months, I worked with a very large React and Redux application which is actively worked on by a team of around 20 people with mixed levels of experience.
The main form of work distribution was assigning people to screens. I’m not a big fan of this approach because that leads to code repetition and mixed practices within the same codebase (better to break down screens into Components and have people implement Components).
This work distribution, combined with a big number of requirements, delays, and rushes to release led to some poor performance scenarios.
In this post…
Code Review is a widely adopted practice in the software development industry. It represents the process of reviewing someone’s code before it gets merged into the existing code base.
Whenever a developer wants to perform any sort of change, he or she must create a Pull Request (PR). The PR represents all of the changes made against the current state of the code base. Other developers in the team will then comment on the work done and accept/refuse the change. This is either done in person or via version control software.
Code Review is a cornerstone of software development, whose…
I have recently got the Professional Scrum Master I (PSM I) certification from Scrum.org. During the time I was preparing for it I got to know Scrum better and cleared some misconceptions I had created during my experience as a Scrum Master.
In this post, I attempt to clear some of the things I found that are easy to understand in theory but harder to put in practice, especially when the organization is not 100% sold on Scrum.
Everyone is doing Agile. You want to be Agile, right? Because if you’re not Agile then that must mean you are… clumsy?
…

A few weeks ago I participated in the Start&Scale Week, promoted by the ScaleUp Porto organization. Besides events to promote entrepreneurship and other activities related to the startup ecosystem of the city of Porto, the Start&Scale Week also entails a series of Masterclasses on a variety of topics.
One of these Masterclasses, entitled “How we acquired Agility in our industry”, was taught by Kiro Harada. Kiro is an Agile expert experienced with different methodologies and frameworks such as Lean, Kanban and Scrum. …

Disclaimer: Being a Scrum Master is not the same as being a (traditional) Manager, although one can consider that Scrum Master is a management level position. This post helps clarify the distinction. I think the concepts in this article also apply to people who are developing and managing software and not necessarily doing Scrum. My apologies if the title of the article is somewhat misleading.
Typical Project Managers are interested in implementing and managing strong processes which translate into results. In Scrum, the Scrum Master handles processes but is also the one in charge of promoting the interaction between team…

This is another post about Impostor Syndrome. For the unfamiliar, Impostor Syndrome is the feeling that makes you feel like a fraud, that you do not deserve/fit the job you have and that the only way you’re keeping it is by sheer luck or blindness from your employer.
Definitions found online only attribute this feeling to high achievers, but in my point of view, this is applicable to anyone, independently of their ambitions, when faced with a demanding profession of some sort.
Software development is one of the usual suspects. You need to be competent in a multitude of areas…

Nowadays there is a natural progression for senior software developers (either in startups or more corporate style companies) to make the jump from their current technical role to a more leadership/management oriented role. This progression is usually motivated by several needs which arise from the evolution of the company/team/product and require the senior dev to dedicate his time to training/onboarding, planning/road mapping and leading the team, contributing to more macro level decisions and coaching while becoming less and less involved in day-to-day engineering activities.
The title of the job is not always “Manager”. It’s usually something along the lines of…

Today at work I approached a colleague of mine who’s a senior developer and asked him for help on the task I was currently assigned with. As I was explaining the problem and context of what I was facing he asked me one simple question.
“Why are you doing it in this way?”
I froze.
It was the end of the day and I didn’t want to handle a discussion. I didn’t really know how to explain it. …

Fullstack Software Developer • I occasionally write about Software, Agile and Personal Growth • Learning Everyday