What It Means to “Cook Beans” as a Nigerian Tech Bro
Micheal (Mikolo): The guy you call when you need a miracle. Known as Mikolo, he’s pulled off some incredible feats of coding wizardry. But there have been times when his magic didn’t work, and the beans ended up overcooked.
In Nigeria, when someone says they’ve “cooked beans,” it’s not about culinary skills. Instead, it’s a phrase used to describe a situation where something has gone terribly wrong. Especially in tech, it’s like saying, “I’ve messed up big time.” Now, imagine the life of a Nigerian tech bro! A world where the pressure to deliver flawless code is high, deadlines are tight, and the stakes are enormous. In this high-stakes environment, cooking beans can mean anything from a minor glitch to a catastrophic system failure. But what does it truly mean to “cook beans” in tech, and how do we avoid it?
The Beans Cookers: Tales from the Tech Trenches
Every tech team has its stories of beans cooked, and the Sudo team is no exception. Let's introduce you to some of the characters who have had their share of cooking beans.
How Beans Get Cooked
Beans in tech can get cooked for several reasons. It might be a poorly written piece of code, a missed bug, or even an unforeseen complication during deployment. Sometimes, it’s the simple things that trip us up; like a missed semicolon or a wrongly placed loop. But what exactly happens when the Sudo team finds themselves cooking beans?
- Code Writing: The process starts with writing code. Our developers are skilled and meticulous, but no one is immune to mistakes. A typo here, a misaligned variable there, and the beans start simmering.
- Quick Fixes & Impromptu Updates: Sometimes, urgent fixes or updates are needed, and rushing can lead to unexpected issues. A quick fix might patch a problem temporarily, but it can also create new issues.
- Fixing Bug on Production: Sometimes due to pressure, Developers/Engineers can decide to fix bugs on production, You just say it's just a quick fix, let me not waste time for the write-test-push-deploy process then Bammmmm!!!!! You are eating well-cooked beans for hours.
Fixing the Cooked Beans: The Sudo Approach
At Sudo, we don’t just cook beans; we fix, avoid and put measures in place. Here’s how we do it:
- Rapid Response: As soon as an issue is identified, our team springs into action. Whether it’s Abubakar’s “laughing in error” or Jeremiah’s “I will look into it,” the first step is acknowledging the problem.
- Collaborative Problem-Solving: Our team collaborates to diagnose the issue. Whether it’s Micheal bringing his Mikolo magic or Kedo diving deep into the code, we work together to find the solution.
- Deployment (Google Cloud Platform & AWS): After testing, it’s time to push the code to production. We use Google Cloud Platform, ensuring our applications are scalable and secure. But deployment can be a tricky process. GCP assists in making sure a build works before removing the old application, and allows us to roll back easily.
- Staging Server: A staging server (also called a sandbox) is where we deploy and test code to simulate the exact conditions of the production application. When a developer pushes code, it goes to the sandbox first, where all testing can be done before merging to production. It’s like a playground. You push your code there, test it, and make sure everything works before the customers see it. Internally, the code is there, but externally, no one sees it yet
- Approval: Before any code goes live, it goes through an approval process. This step is crucial in catching any last-minute issues. However, if something slips through, the result can be a pot of beans no one wants to eat on the sandbox, but it never enters into production.
- Types of Testing: To prevent beans from being cooked, we conduct multiple rounds of testing:
- Unit Testing: Focuses on individual components of the software to ensure each function works as intended.
- Integration Testing: Checks how well the different modules of the software interact with each other.
- System Testing: Tests the entire system as a whole to ensure that everything works together seamlessly.
- User Acceptance Testing (UAT): The software is tested in real-world scenarios to make sure it meets user expectations.
- Regression Testing: Ensures that new code changes don’t break existing functionalities.
- Performance Testing: Evaluates how the software performs under certain workloads, checking speed, responsiveness, and stability.
- Learning from Mistakes: Every time we cook beans, we learn from them. We analyze what went wrong and implement changes to prevent it from happening again. This iterative process helps us improve and avoid future bean-cooking disasters.
Cooking Beans Is Part of the JourneyIn the world of Nigerian tech bros, cooking beans is almost inevitable. But it’s not the end of the world. At Sudo, we’ve embraced the process, learning from our mistakes and improving our systems to ensure we serve only the best. So, the next time you hear about a tech bro cooking beans, just remember, it’s all part of the journey towards building something great.