Welcome to Mad Collective! Here's What to Expect During Onboarding

Congratulations on your new role at Mad collective! We're thrilled to have you join our team. As you prepare to start, we wanted to give you a rundown of what to expect during the onboarding process. Well, maybe you won't join us yet, but you want to have a sneak peek of how our onboarding process looks like, then this post it's also for you. Our Onboarding Process: A Step-by-Step Guide Day 1 On your first day, if you come to the office, you'll start with a tour to get familiar with our space and facilities. If you start remote, we will do this office tour the first occasion you are around. Then, our IT team will contact you and help you get set up with your laptop, systems, apps, and access. Next, you'll attend a people session to learn ...

Read more
Adopting GitOps for Kubernetes deployments

After some years of grappling with various approaches to deploying apps on Kubernetes, we've finally embraced GitOps 🥳 > GitOps leverages Git as the single source of truth to define every part of a cloud-native system. Once declared in Git, a GitOps agent automatically applies all code, configuration, and policies across dev, test, staging, and production environments. With GitOps, whenever there is any divergence between Git and what's running in a cluster, developers are alerted. Depending on the case, Kubernetes reconcilers automatically update or roll back the cluster. With Git at the center of the delivery pipelines, developers can use familiar tools to make pull requests to accelerate and simplify both application deployments and ...

Read more
Building your Observability plan

The key concept behind running a successful business on the internet is knowing in real time how your business is doing. Knowing if your key transactions are in a healthy state and operate around the estimated/optimal level, and getting fast relevant notifications to the adequate people when they don’t will make a difference between succeeding and failing. But how can you achieve this level of awareness? Observability. ::: tip Definition Observability: measure of the ability of the internal states of a system to be determined by its external outputs. ::: Bringing the definition to more understandable terms, we want to be able to figure out what’s going on in our system/application interpreting the information gathered from the system it ...

Read more

When the pandemic hit and forced all of us to suddenly stay at home, we all had different experiences no need to go into details. After months of remote working and understanding it would take a while to go back to the office. In our team we started noticing the lack of diverse topics we talked about, well mainly we talked about tickets, deploys and tech issues. Zoom Fatigue? As the months pass we, as everyone in the world, had the need to socialize more with our team. Bring back our coffee talks, lunch breaks' jokes, and random conversations. We tried many things, online coffe breaks, sharing virtual lunches. They all generated great engagement at the beginning but after a few weeks they disappeared in the horizon with not many of us miss ...

Read more
Our ownership model

You all will agree that ownership is a trendy word lately in teams, management, etc... And it makes sense, since we all know it's a big driver to improving productivity, retention, and commitment from employees. But at the same time, ownership can have tons of nuances depending on the company and the culture, and it's not that easy to explain or transmit, it's like creativity, rather than trying to teach it, you better have the environment to spark it. Then, what does ownership mean in our Engineering department? It means moving from "it's not my code, it's not my responsibility" mantra, to, taking action in someone else responsibility for the best of the organization. It means taking the initiative to solve anything in the way we, as ...

Read more
Mastering Distributed Applications - Setting the bases

It's been quite some time Software Architectural patterns have veered towards Distributed Models. It's unthinkable that any modern stack does not include at least some MicroServices or FaaS elements... or is it not? Engineers have dealt with Distributed Systems for a very long time, but with the growth of Cloud computing services, particularly Serverless services, and the rise of popularity of MicroServices patterns the impact this concept has in our day to day has peaked dramatically. Our understanding of what a Distributed Application has also changed in these last years, distancing itself from its original meaning. Sadly, not all engineers have adapted fast or good enough to the changes this paradigm brings into the equation, and more ...

Read more
The Individual Contributor Progression Framework
Photo by Sigmund on Unsplash

About two years ago we started noticing (in 1on1’s, surveys, etc.) a growing interest in the progression possibilities from the people in the Engineering Department. Up to that point we always handled professional development ad hoc: when somebody was standing out in their job they were promoted, given a raise, or offered training and mentoring to progress further in their role. After several years, we had grown from 50 to 190 people and this was not enough anymore, people wanted to know what was expected from their role, what was needed to progress, and what options they had. We learned a while ago that when we face a challenge it rarely is something very specific to us and most of the time we find that many other companies faced similar ...

Read more
Scheduling Messages In A Pub/Sub Pattern (1)

Around 6 years ago, we started to improve our User Experience implementing new ways to process heavy tasks in a asyncronous way so our users wouldn't be affected waiting for an image to be processed or an email to be sent while visiting our sites. We could achieve that applying the Publish-subscribe messaging pattern, so all the heavy or none critical tasks could be executed in a different process improving not only the UX, also the server capacity and the load control. But some time afer we sucessfully build the system, a new requirement was thrown: we want to schedule the produced messages to be consumed later. Why later? Because some use cases require to schedule actions to be triggered in the future. So, as our infrastructure stack i ...

Read more
Our journey building a cross-platform app

Around October of 2019, the idea of creating a health-based web app took hold, and shortly we started developing an MVP to confirm just how viable the idea was. Back then it was actually called Ketobody, and as the name suggests ketogenic diets were the main focus. The MVP was what we call a "tour", where we ask the user a series of questions about their dieting habits and/or preferences that would be used later to help generate and send a customized meal plan to them as a PDF. Once we saw how popular it was, we decided to create a separate Members Area (MA). After completing the tour, instead of receiving a PDF, the user would now be sent to the MA, where they would be able to interact with their meal plan, by liking/disliking recipes, ...

Read more

For more detailed info about, you may visit https://proxysql.com/ ::: tip ProxySQL lets us automate and secure the access to our DB instances. It's design and the multi layer configuration system allow us to easily automate and customize the ProxySQL instances deployment and configuration via terraform and other automation tools. ::: Problem As our databases grew, the administration and security began to cause issues, especially in terms of time. We had thousands of DB users across the whole infrastructure, and these users had several IPs whitelisted. Then, we started looking for a proxy service that could allow us to manage all these users and have total control over them. And we found ProxySQL. What is ProxySQL, and how does it help ...

Read more