blog.stevenosse.comRethinking Software Engineering in the Age of AIHi everyone… I know, it’s been a long time since the last time we met. I've been following the development in AI with great attention and wonder, and I'm not gonna lie, AI got so good at coding. Nowadays, you have AI agents that can help you build en...Jun 8, 2025·4 min read
blog.stevenosse.comChanging my perspective on State and Cubit/BlocWhen I first started using flutter_bloc, I thought I had a good grasp of cubits and blocs. However, I soon realized my understanding was biased by my previous experience with the MVVM pattern. Initially, I assumed that each screen could be managed by...Sep 3, 2024·5 min read
blog.stevenosse.comBeFit - Workout trackerPicture this: You're at the gym, pumped and ready to crush your workout. But as you reach for your phone to log your first set, you're met with a clunky, confusing app that kills your vibe faster than a failed PR attempt. Sound familiar? We've all be...Aug 22, 2024·4 min read
blog.stevenosse.comData flow and readability within a widget treeOne of the most known good practice when building widgets in a Flutter project is the usage of widgets instead of methods. It is highly advised to split large widgets into smaller widgets. While this approach has many advantages, it can quickly turn ...May 24, 2024·4 min read
blog.stevenosse.comDart 3: Switch and Records in tandemDart 3 was introduced a few months ago and brought a lot of interesting changes. Among those new features were the "Record" type and more powerful switch expressions. This article will focus on the combination of these two features.Before diving deep...Dec 5, 2023·3 min read