- Published on
- Reading time
- 7 min read
BLoC & Clean Architecture Learning Guide
This guide explains the BLoC pattern and Clean Architecture concepts and how to apply them in Flutter projects.
Notes on mobile development, software engineering and career.
22 posts
This guide explains the BLoC pattern and Clean Architecture concepts and how to apply them in Flutter projects.
In a legacy Java mobile app, I implemented an offline-first observability pipeline that persists user-action logs locally using a DAO-backed queue and syncs them to an API only when the device is online. Logs survive restarts, are shipped in batches of 50 every 3 minutes to reduce network and battery impact, and work as a “user action stacktrace” to reconstruct flows leading to bugs. Combined with Sentry, this creates a powerful two-layer system: exceptions plus a step-by-step history of what the user did right before the issue.
A mid-level developer stands out by being autonomous, reliable, and committed to continuous growth. Unlike juniors, they handle more complex tasks, mentor less experienced teammates, and take ownership of product quality and stability. To grow, they must constantly challenge themselves, close technical gaps, and develop soft skills like communication, trade-off analysis, and collaboration. The key is never staying in the comfort zone—consistency, responsibility, and ongoing learning are what truly define the best mid-level developers.
Getting promoted goes far beyond technical skills. Learn how to build executive presence, showcase your impact, and position yourself as a natural choice for leadership opportunities.
In this article, I share the details of a travel app I am building for my portfolio. Inspired by Pieter Levels and Nomad List, the goal is a solution that makes planning and managing trips simpler, focused on essential features like destination search, itinerary planning and expense tracking.
Some say mathematics is not essential for programmers, but it builds critical skills like logic, problem solving and data analysis, which are fundamental for complex areas of technology such as algorithms, AI, computer graphics and information security. This post looks at why mathematics is vital for software development and computer science.
A collection of what it takes for a programmer to be considered a true professional.
How to consume REST APIs in Flutter with the Dio and http packages: setting up requests, using interceptors, and handling errors in a way that keeps the user experience clear.
Choosing between Stateless and Stateful widgets shapes how a Flutter app is built and how it performs. This article covers the differences between them, when to use each one, how Flutter rebuilds Stateful widgets, and strategies for common state management problems.
This article introduces ISO 27000, a family of international standards that play a crucial role in information security and risk management. From an introduction to the topic to a detailed look at ISO 27001, how it applies to Brazil's General Data Protection Law (LGPD) and the differences between the standards in the ISO 27000 family, it covers what organizations need to know to improve their information security.
This article covers strategies to maximize performance, productivity and organization in software development. From setting clear goals to automating tasks, along with good coding practices and effective time management, you will learn how to optimize your work, with practical examples for each strategy.
Refactoring keeps your code in shape. In this post, I go through the signs that it is time to rework your source code, from code that is hard to understand to performance and scalability problems, and how spotting them early keeps your software efficient and sustainable.
In this post, we look at two ways to consume APIs in React JS apps: the native Fetch API and the Axios library. Both let us send HTTP requests to API endpoints and process the responses to show relevant information in the app.
In this post, we build a Next.js application with a light theme and a dark theme.
In this article, we take an introductory look at Redux in React development.
In this post, we go through practical examples of the useState, useEffect and useContext Hooks for managing state, side effects and context, respectively.
In this article, we explore some Clean Code principles and how to apply them when building ReactJS applications.
In this post, we look at implementing CI/CD in React projects, a key practice for a fast, reliable and high-quality development process.
In this post, we look at using Jest to test ReactJS apps: installation, example tests for basic components, components with state and props, and asynchronous calls. Jest simplifies testing and helps make sure the code works correctly.
In this post, we look at how a data structure called a "priority queue" works and how to implement it.
SQL is a standard language for accessing and manipulating databases, and this post is a short introduction to it.
Docker is an open platform for developing, shipping and running applications. It lets you separate your applications from your infrastructure so you can deliver software quickly.