Friday, July 31, 2026

Thoughtworks - Technology Radar 34

Intro

Twice a year, Thoughtworks publishes its Technology Radar, an opinionated guide to the current technology landscape. It organizes notable technologies and practices (which they call blips) into four quadrants: Techniques, Tools, Platforms, and Languages & Frameworks; and four rings that express how confident they are in recommending each one, from "Adopt" down to what used to be called "Hold". I have been following the Radar for several years now, and reading each new edition has become something of a ritual for me. Volume 34 came out in April of 2026, but this time I was only able to read it in July, so parts of it already felt slightly outdated... which says as much about the current pace of the industry as it does about my reading backlog. Here are my thoughts on this edition.


General Comments

The first thing that caught my attention was a change to the Radar itself: the "Hold" ring has been renamed to "Caution". I dislike this change. It feels like an unnecessary cave in to the current hype machine, which insists that everything new must be flawless and that pointing out problems is bad for business. Being able to take a stand and argue against certain things, when one has strong arguments, is important for any serious conversation about technology, and softening the language of the ring that exists precisely for that purpose seems like a step in the wrong direction.

The distribution of blips across the rings tells an interesting story. There are 62 blips on Assess and 30 on Trial, against only 17 on Adopt and 9 on Caution. That overwhelming concentration in the middle rings feels very symptomatic of the times we are living in: there is an explosion of new things appearing, and it is necessary to at least keep track of most of them, while investing time to go deep into only a few. It is also striking how few blips landed on Caution - eight of the nine are Techniques, one is a Tool, and there are none at all in Platforms or Languages & Frameworks. The Platforms quadrant, in fact, has zero blips in both Adopt and Caution: everything in it sits in the middle, still being evaluated, with nothing yet considered either safe enough to fully recommend or problematic enough to warn against.

All four themes of this edition are related to AI: "The challenge of evaluating technology in an agentic world", "Retaining principles, relinquishing patterns", "Securing permission-hungry agents" and "Putting coding agents on a leash". It is the second time that this is the case, in previous editions there used to always be at least one theme dedicated to something else, as an effort to keep a broader view of the ecosystem. The four themes seem to form two couples: the first two are about how we humans are changing to adapt to this new model of working, while the last two are about the technical side of embedding generative AI models within a useful "exoskeleton" that is both effective and safe.


Highlights

OpenClaw is the only tool placed under Caution, and to me it is a clear portrait of the current state of AI hype. It made a huge impact when it was first released, and just a few weeks later it was already far less talked about... by now, it is rarely mentioned at all. I was always skeptical about the "hyper-personal AI assistant" category itself, as I see little value in delegating relevant choices of my life to an artificial intelligence. But beyond my personal preferences, the trajectory of OpenClaw illustrates the broader pattern: there is a huge push towards adopting every new thing that appears, without any clear success story that has proved itself over sufficient circumstances.

The agentic coding tools, on the other hand, are where the consolidation is most visible. Cursor reached Adopt, and it was one of the first agentic IDEs I tried, early on. I had an overall good experience with it, though not a very remarkable one. It holds the distinction of being the only agentic coding tool with which I hit a token budget limit while coding (the only other time that happened was with Claude Code, and that was because I was testing Fable, a model with a more restrictive budget). Since the limit appeared unexpectedly, midway through development, I switched to Windsurf and never went back: overall, I preferred working with Windsurf. On Assess, Pi is one I find very promising: I have seen some very interesting proof of concept projects using the Pi SDK as a framework on top of which entire TypeScript systems are built, UI and backend included. It seems like a great candidate to bridge the gap between AI agents and traditional applications, enabling truly agentic applications, and I am very interested in testing it soon. Also on Assess is OpenCode, which became a true milestone in my routine - it is now my tool of choice for simpler or more exploratory tasks, and I wrote a dedicated post about it recently. And finally, Claude Code reached Adopt, having indeed become the industry standard for agentic AI coding: I have been using it extensively, reserving it for the complex tasks that demand state-of-the-art intelligence.

Small language models appearing on Assess caught my attention for a different reason. By "small", the Radar means models of 3B parameters and below, which sits just outside the range I most commonly explore in my personal open source projects - JenAI, LLP and Chargen are built to work with models in the 8B to 70B range. Adding the frontier models I use for development, there is now a whole spectrum of model sizes, each serving its own purpose. I like to think this shows we are starting to reach some level of maturity in employing AI for actual use cases, moving beyond mere experimentation: choosing the right size of model for the job is the kind of engineering decision that only becomes relevant once the technology is being put to real work.

Curated shared instructions for software teams reaching Adopt was particularly satisfying to see. As an InnerSource champion, I have been talking within my company about how AGENTS.md and similar instruction guidelines for agents are now an important and integral part of any project, and how they enable more effective collaboration even from outside contributors. I have given a series of talks about this in internal events already, and I plan to at least write a blog post on the topic soon.

Codebase cognitive debt, placed under Caution, names one of my main concerns with the current shift to AI-assisted software engineering. I have developed software across the whole spectrum that goes from full vibe-coding (just ask the AI and go with whatever it produces, without even looking at the code) to purely human-written code, and I have had successful results at every point of it. But the characteristics of those successes are different, and being distant from the code still does not feel as reliable and sustainable as being hands-on. A big part of being proficient at developing a software system lies in the mental map one has of it, and not being actively engaged in writing the code erodes that map very quickly. This fundamentally changes the process of software engineering. When humans write all of the code, the more you work on a system, the better you become at working on it, because your mental map keeps expanding. When humans stop looking at the code, the relationship inverts: the more you work on the system, the less proficient you become, as the code evolves in ways you can no longer clearly picture. There is no turning back, and the current push in the industry is for humans to be as far out of the loop as possible in order to gain development speed. But we have not lived with this model long enough to have clear success stories that have stood the test of time and proved it sustainable... and until we have those stories, I remain cautiously skeptical.


Things Tested And To Test

Beyond the highlights, several other blips crossed paths with my own explorations. Among the things I have already tested are LangGraph (which I have used as my default choice of AI agents framework - the Radar moved it out of Adopt and into Trial, as there are newer alternatives that can compete with it now), Google's Agent Development Kit (ADK) (which I used briefly when assessing different agent frameworks, and enjoyed more than other alternatives I also tried such as CrewAI, as it maps better to a software engineering mindset - the Radar's main criticism is that it is still pre-GA) and HTML Tools (the first time I see this explicitly named, but an approach I have been following for a while: whenever I ask a coding agent for a report, I ask for the findings consolidated in a nicely stylized standalone HTML page, which reads much better than the default markdown).

On the list of things I want to test are Mastra (a TypeScript-native open source framework for building AI applications and agents), team of coding agents (a technique I have only limited experience with so far), code intelligence as agentic tooling (I have not yet explored much of the Language Server Protocol as a way for LLMs to work more efficiently, but it is high on my list) and mutation testing (an idea I have known for years and was always skeptical about for human-written code, but as a "test-the-test" approach for AI-generated test suites, which realistically no one will fully review, it finally starts making sense to me).


Closing Thoughts

Stepping back, the picture this edition paints matches what I see in my daily work. Kent Beck describes the life of a product in three phases, his "3X" model: Explore, when you cheaply try many things in search of what works; Expand, when something has caught on and you scale it while removing bottlenecks; and Extract, when the ground is stable enough to optimize for efficiency. The AI-dominated landscape of this Radar feels like an industry moving from Explore into Expand: the explosion of new things being created continues (hence the crowded Assess and Trial rings), consolidation is beginning around a few winners (hence Claude Code and Cursor on Adopt), but there is still no concrete success story that has stood the test of time... which is precisely why so much of the Radar remains in the middle rings, and why I keep some healthy skepticism about the most aggressive promises being made.

The next edition of the Technology Radar should be released around October or November of this year. I intend to once again read it (hopefully closer to the release date this time) and share my thoughts here on the blog.

Saturday, July 25, 2026

Exploring opencode

I started using opencode around May of 2026, and it truly felt like a milestone in incorporating AI into my daily routine. I mentioned in my May monthly recap that I intended to write a dedicated post about the experience, this is that post.

Some context first. I started using AI coding agents (or harnesses, as I prefer to call them) around August of 2025, with Cline on VSCode, and then moved on to Claude Code in January of 2026. In both cases this happened at work, for purely professional purposes, coding and other software engineering tasks. It was only when I began experimenting with these tools on my personal computer, for a much broader range of tasks, that I eventually discovered opencode. It was a spark that changed a lot of how I think about and use harnesses, for a few reasons.


What Sets It Apart

Install And Start Using

The first thing that struck me is how simple the setup is. With every other harness I have used or looked into (Cline, Claude Code, Codex, etc.), there is a whole ritual before you can do anything: create an account, choose a subscription plan, log in through the tool, and so on. With opencode, you install it and start using it. That is the entire onboarding. It sounds like a small thing, but it completely changes the feeling of picking up the tool for the first time.


Free Access To Reasonably Good Models

The second reason is that opencode currently offers free access to reasonably good models, without any severe limits. The obvious caveat: it is impossible to know for how long this will be sustainable, and opencode might well start limiting usage or requiring a paid subscription in the future. The slightly less obvious caveat: every session needs to be treated as likely shared with the companies that created the model, as the simplest benefit a company can get from giving access to their models for free is data for future training... so, best not to share any personal or sensitive information. Regardless, right now it makes opencode a perfect tool for experimentation.

By lowering the cost of exploration to basically zero, it allows everyone to try the harness for all sorts of things, not just coding. These tools have access to terminal commands, beyond reading files and accessing the web - which means that anything that can be done on a computer can be explored through AI with them. And a huge amount of our society runs on computers, so the potential is enormous. To give a few examples of things I have done: searching for a public, free web radio station from any country (Argentine rock forever!) and playing it directly through the terminal, looking up lyrics and other info about new music I found, and debugging and fixing a broken game installation by letting the agent look at the actual configuration files. Without the burden of knowing you have a certain limit of tokens to spend, you feel free to explore all sorts of random things that an AI agent might do with a computer.

I am even considering making opencode the very first thing I install, the next time I setup a brand new OS installation (likely Linux, as it is my default OS). I find it intriguing to think what an AI-based distro would look like, though I would not want to go to the extreme yet. In my mind just being able to bootstrap the OS with opencode, and then using it to install everything else that I need (as it would have access to the package manager of the distro) by just talking with the computer feels really cool.


Open And Provider-Agnostic

The third reason is that opencode is a fully detached, open source agentic harness that can work with models from several providers. Most tools in this category fail at least one of these criteria: they are IDE-first (Cline), closed source, or tied to the provider that created them (Claude Code with Anthropic, Codex with OpenAI). Pi is an alternative that is also detached, open source and provider-agnostic, but it is far less complete when it comes to features and capabilities.

Being provider-agnostic also means opencode can be used with local models. So even if the free access to hosted models disappears in the future, it will still be possible to run it for free with local ones. That is a kind of insurance that no closed, single-provider tool can offer.


Limitations

Despite all the positive aspects, there are some limitations as well:


Model Quality

While the free hosted models are good, they do not reach the same level of quality as frontier models. For more complex or nuanced tasks, they often do not achieve the best results. This can be worked around with more guidance and handholding from the user, but it takes more work. For the absolute best quality, proprietary models (which usually work better with their own company's harness) are still the way to go.


Context Management

Context management is often a problem. Most of the free models offered have a context size of at most 128k tokens, which gets consumed very quickly - the tool seems to be quite aggressive about how much it puts into the context. It does perform automatic summarization when it gets close to filling the available context, which is good, but more often than not the summarization loses some information that is essential to the task at hand. In practice, this means the quality of the results degrades very quickly, making opencode not very suitable for long-running tasks.


Closing Thoughts

For me, the real significance of opencode is not any single feature, but what the combination enables: a tool that anyone can install and immediately start using to explore what AI agents can do with a computer, at no cost. The frontier of quality still belongs to the proprietary models and their harnesses, and the limitations around context are real. But as a gateway for experimentation, and as an open, provider-agnostic foundation that will keep working regardless of what any single company decides, it has earned a permanent place in my toolbox. I expect to keep exploring what these agents can do well beyond coding, and I am sure some of those experiments will end up here on the blog.


Monday, July 6, 2026

Monthly Recap - 2026-06 June

After two very intense months of working overtime in April and May, June finally saw things gradually getting back to a more sustainable pace. I chose to take it easy and not use all of the newly available free time for personal work though, as I felt like I was very close to getting burnt out if I maintained the same rhythm. I hope that taking a few weeks now, mid way through the year, to rest and re-energize will allow me to have a very productive and purposeful second half of 2026. Here's a quick summary of what went on in June for me.


Achievements


Personal Studies Progress

My personal studies habit got quite messy over the last year, and I have not done a great job of describing what I have been doing in the last few monthly recaps, so I will take a short moment to put everything back on track here. At about the middle of last year (2025), it became clear that the software development ecosystem was finally locking in to embed AI in its core loop. While I had been exploring the field for about a couple of years already by then, I felt the need to build a more comprehensive and grounded understanding of the possibilities and implications of this shift - so, I picked up two books on the topic to study (AI Engineering and Beyond Vibe Coding).

At the time, I was already studying two other books. This, coupled with a transition to a new team (and organization) within my company, with a whole new tech stack, proved to be too much change in too compressed a timeframe, and so I went through a couple of not very productive months just struggling with too many things to do and progressing too little on each of them. Early this year, I organized myself to address this, and reduced the amount of books I was working through at a time. So, as I mentioned in previous recaps, I finished them one by one, the last one being AI Engineering.

In June I finally reached the stage in which I could move on to pick new books to study. The first one has been Nexus, by Yuval Harari - I have been a huge fan of his work for more than a decade now, having deeply enjoyed Sapiens and Homo Deus, so naturally I wanted to go through the rest of his work. So far, it has been totally worth it, and I will share more of my thoughts once I finish it.


Electron

While I have developed several tools and apps to be used on desktop environments in the past, they have always been restricted to one of three stacks: simple Python apps with TKinter (one of the first programming languages I learned, always feels very comfortable to go back to), Java apps leveraging Swing for the UI (Java being my main professional programming language for cloud and microservices systems, it was always tempting to accept an old and rusty visual presentation in order to do what I consider myself to be best at) or straight out web apps based on HTML and JavaScript running on localhost (made for better visual presentation while still allowing me to leverage over a decade of experience writing cloud systems, but was a very clunky distribution model).

After learning about the open source Pi coding agent, and seeing some creative usage of it embedded in applications through its TypeScript SDK, I got really interested in exploring its ability to embed AI agents within applications. So I used this as an opportunity to finally do something I've been meaning to for several years now: learn Electron. This will allow me to create desktop apps with agentic capabilities, something that gets me really excited. And also, by using Electron I believe I will be able to continue leveraging my knowledge of web frontend technologies while having a much better distribution model for desktop apps.

I went through Stephen Grider's Udemy Electron course to do this, and it was a really great short introduction. Throughout the years, I have taken several of his courses, and his style always resonated a lot with me. The combination of going very deep into the fundamentals of what is going on and getting that understanding, plus having a preference for code-along sessions instead of just showing the final result is an incredibly effective teaching style. Based on my previous experiences I expected this course to do the trick, and it definitely did.


Plans for next month


For July, the main things I expect to achieve are starting the next career-related book in my personal studies (the ideal number for me is 2, one for career and one for hobbies - currently I am working only on Nexus) and continue building personal applications that explore agentic capabilities woven into specific workflows. I am definitely focusing on Electron + Pi at the moment, but I will also try to build a few experiments with LangChain, as that seems to be the standard that the market is converging on for now.

Monthly Recap - 2026-05 May

May continued the intense overtime push of April, but having been operating in this manner for a while, I was able to get more things done even with little free time. Here is a quick summary.


Achievements


Finished AI Engineering book

After restarting AI Engineering, by Chip Huyen, in April, I was able to finish it this month. This is one of the most highly regarded books in this new field, and for good reason. It covers the full lifecycle of AI systems - from data engineering and model selection to deployment, monitoring, and responsible AI practices in production. While I already had some practical experience with several of these topics from building JenAI and other personal projects, the book helped me contextualize and structure that knowledge in a way I had not been able to before. I am glad I was able to finally complete it, and although it goes in depth on some areas that I normally do not touch (such as model training and fine tuning), I feel like this will be a reference I come back to often.


Started using opencode

This month I also started using opencode, an open-source AI-powered coding assistant. I intend to write a dedicated post about this, as I found the experience really intriguing. For now, it suffices to say that agentic coding assistants in general really feel like the next step for AI. Not the end state, but a significant (and positive) advancement in the capabilities that this technology bring to the table. I already used Claude Code to a good extent, but having an open source alternative, which has flexibility to work with several models from different providers, and comes out of the box with free options, democratizes the access to a whole new level. Really excited to explore the implications of this!


Started AI Engineering Track Udemy course

To complement the book studies, I also started the AI Engineering Track on Udemy. This is a more hands-on, practical course with a stronger emphasis on implementation and tooling. I have just started working through it, and my plan is to go through it systematically over the next few months.

Monthly Recap - 2026-04 April

April was a month with very little spare time for me. A huge rush to wrap up the work for the mid-year event of my company meant that every developer worked double shifts during this period. The bright part is that this time I was able to keep up my personal studies habit - although not much else. Here's a quick summary.


Achievements

Restarted AI Engineering

Last year I started studying AI Engineering, by Chip Huyen. This is one of the most highly regarded book in this new field, with some of the most prominent people in software engineering giving it high praise. Due to the several competing priorities along the way, though, I had to stop studying it for several months. Having just finished Beyond Vibe Coding in March, this month I was finally able to restart it. Maintaining consistency with this habit has been a focus for me this year, and I am very glad I was able to stick with it this month, despite the challenges.


Downpoints

Overtime

As I mentioned before, April was a very difficult month with regards to work-life balance. Of course, having to put some extra effort at specific times when the company needs is part of being a professional, but I hope this does not become the new normal for us.

Monthly Recap - 2026-03 March

March was a month of wrapping up ongoing work and exploring new horizons. After a couple of months getting my feet wet with different AI productivity ideas, I was able to finish studying a book I picked up specifically about this topic, as well as presenting a hands-on session at an internal developer conference in my company. Here is a quick summary.


Achievements


InnerSource synergy with agentic AI presentation

This month I had the opportunity to present at an SAP's internal developer conference. It was my second time presenting at this event in a row. I talked about how the InnerSource philosophy and techniques can have a positive synergy with agentic AI software engineering. I think there is a lot of unexplored territory in terms of how we can engineer collaboration in a way that optimizes the value provided by AI and human agents. It was a great experience to share my thoughts and to connect with other developers within the company.


Finished studying Beyond Vibe Coding

I finished studying Beyond Vibe Coding, a book by Addy Osmani about the evolution of software development with generative AI. It goes way beyond the superficial "AI writes code for you" narrative and dives into practical strategies for integrating LLMs into the development workflow in a sustainable and effective way. It covers topics such as prompt engineering patterns, context management, and how to structure projects to leverage AI without losing control of the codebase. While I think it suffers a bit from the pragmatics of this format for the current context (AI tools evolve way too fast for a book cycle - books shine in consolidating the best practices about things that have been around for a while, but for AI it seems that articles are able to cope with the pace of change better), I found it to be a very practical read and will definitely apply some of its insights going forward.

Monthly Recap - 2026-02 February

February was a month for exploration. With the increasing work load at my day job, I used most of my free time to learn and try out a few new things. As expected, all of them related to AI. Here is a quick summary.


Achievements

Productivity tools

While I continue to use JenAI on a daily basis, it remains (by design) a very limited tool. In order to leverage the benefits of AI more widely, I started developing a few more personal productivity tools. The gaps from JenAI that these cover are a simplified persistence model, more intuitive UI and more sophisticated context management. I have also created a few automations to run AI tasks on schedule. As of now, I have no plans to make either of these open source, as they are more exploratory and specific to my work flow.


ComfyUI

Another area of AI that I had not touched for a long while is image generation. While I played around with Stable Diffusion in its early days, and covered image generation on Chargen, it is not something I do regularly. In February I took some time to update myself on newer tools for this, and did a few lessons about ComfyUI. It seemed to me to do a better job of offering enhanced capabilities around the raw image generation models than the other tools I know about, and I look forward to work more with it.


Finished Rich Dad Poor Dad

On a more personal level, I finished studying Rich Dad Poor Dad as part of my personal studies habit. This took longer that I expected, as I started the book roughly in the middle of 2025, but had to interrupt the studies several times along the way. As someone who had never invested before, I really enjoyed the book and found it to be an excellent introduction to the topic.

Saturday, February 28, 2026

Monthly Recap - 2026-01 January

January is always a month for planning. This year, I have a really ambitious roadmap, with several times more goals than I take on average. It will be challenging to meet them, but I am very excited about the prospect of having a more active year!


Achievements

Started AI Projects

One of my goals this year is to start leveraging AI more widely in my work. While I have been studying it and building some projects around generative AI tools, I want to incorporate it more in my everyday activities.

Not only I plan to use AI to get more work done, I am also determined to create a lot more systems that use AI creatively. I do not want to share the details yet, but I will surely write about them as the year goes. I already started with some, and the results have been very inspiring!


Released JenAI v1.8.0

I have been building JenAI since 2024, and despite its simplicity it is still a tool that is very much present in my routine. This month, I released a new version (v1.8.0) adding database support for both Postgres and SQLite. JenAI always had an emphasis on local environments, and one aspect of this was its usage of the filesystem as the only persistence option - while I remain fully commited to keep it local-only, supporting the usage of a database (which still has to be local, anyway) allows for more easily integrating complex features, such as AI-initiated chats and embedding JenAI as the underlying engine for a broader AI system (a future project of mine).


Downpoints

Personal studies lacking

Having difficulties to find time for personal studies was a recurrent theme last year - unfortunately this year started in a similar way. I am not too concerned about this, because I had very good reasons to divert my time to other projects and I have a strong plan on how to get back to this soon, but it still was a negative aspect of the month.


Plans for next month

More AI Engineering studies

Last year I started studying AI Engineering books alongside the classic career and hobby studies I do. This did not end well, as I was overwhelmed with tasks and almost never got the time to do them all. So for February I plan to retake these studies, and come up with a better plan on how to address all the needs in a healthy and sustainable manner.


Year In Review - 2025

2025 was a very busy year, marked by constant changes and several ups-and-downs. While I have been writing monthly recap blog posts for quite some time now, my plans to write an yearly review were left behind last year - I intented the first one to be about 2024, but only now I am able to catch up and write a first attempt at summarizing the year. I will try to be consistent with this, and follow up with one for 2026, 2027, and so on.


Highlights

I will not go deep into the details of each achievement, as that would lead to a very long post and the content would likely be redundant with other posts I did during the year. So, I will just arpeggiate them with a brief description.


Here were the main highlights of the year for me, grouped by their relevant categories:


Personal studies

As a direct consequence of participating in several technical book clubs at work, I took on a personal habit of picking books to study by myself, with the same level of attention that I give when attending a book club. I have been doing this since 2021 (so about four and a half years by now), and it has been an amazing source of personal growth for me. I aim to put around 30 minutes every working day in studying either a career-related book, or a hobby-related book.

This year, however, I was very inconsistent with how much time I was able to put into this. A mixture of going back to working on-site most days of the week, applying and moving to a new team inside my company and buying and moving into a new home meant that I was most often not doing these studies than doing them. Nevertheless, I was still able to go through a few books, here they are:


Studied The Captain Class

Great book about leadership, I started it in late December of 2024 and was able to finish early this year. I saw a lot of the Scrum Master role reflected in the Captain role that the book talks about, and was able to take several lessons about how I could be a more effective Scrum Master. I read this as part of career studies.


Studied Building Successful Communities of Practice

Short but useful book, which I picked up because I wanted to start some groups inside my old team as a forum for bringing improvements to what is a very, very old and static mindset. I ended up getting a position in a different team before I was able to stablish too many things, but I did set up a Code Quality forum that as far as I know is still going strong, so it served its purpose. I read this as part of career studies.


Studied The Prompt Report

Paper about prompt engineering, useful because I have been steadily trying to get more involved with AI Engineering these past few years (yes, before the crazy push we have right now for everyone to become an AI Engineer). I read this as part of career studies.


Started studying Fundamentals Of Software Architecture

Longer book which is an introductory-level presentation of Software Architecture as a field, with its responsibilities, history and peculiarities. I started it roughly in the middle of the year, but was not able to finish yet. So far it has been interesting, although nothing ground-breaking and seems pretty biased at times. I read this as part of career studies.


Started studying Rich Dad Poor Dad

The only hobby studies book I picked this year. I started reading it around August, and wasn't able to finish within the year. However, that should count in favor of the book, because it led me to start investing for the first time, and for several months all my personal time was spent in studying about different types of investment and structuring my finances. This book was really life-changing for me. While I have read several criticism of the book, and I do not agree with everything said in it (in fact, my personal interests and investment profile is very different than that of the author, and I would never want to make the same investments that he does), I still found the content very inspiring and educational. You do not need to blindly follow everything a book says to get value out of it. I read this as part of hobby studies.


Started studying AI Engineering

While I usually separate my studies in either career or hobby, the accelerating pace of AI led me to try a new approach this year. I started adding a technical book as well into the mix, effectively making it three categories. This did not go as well as I expected, I ended up having way too many tasks with less free time, and started skipping the studies for weeks at a time. In 2026, I plan to restrict it to at most 2 categories again. Regardless, the first technical book I picked up was AI Engineering, which is a foundational book for the most hyped type of development of our current times. I have not yet finished it, and so far it has been instructive but not particularly engaging. I read this as part of technical studies.


Started studying Beyond Vibe Coding

The second technical studies book I picked up was Beyond Vibe Coding, which tries to give some guidance of how to effectively incorporate AI development tools into solid engineering practices. This has been more useful than the AI Engineering book I mentioned previously, but it does have the feel of an extended blog post. It is unclear if the content in it will still be relevant 2 or 3 years from now. Nevertheless, I intend to finish it in 2026. I read this as part of technical studies.


Portfolio projects

I like to keep a portfolio of representative projects in my Github profile. These are not only public and open source, but also display, as much as possible, the engineering practices that I value: automated tests, automated CI/CD pipeline, good documentation, etc.

Each year I try to develop at least 1 new project, but I also keep releasing new version of older ones when I have anything I want to add to them. Most of the new projects are focused on exploring how to incorporate LLMs and other generative AI tools into software systems as more than mere chatbots.

Here are the relevant developments of 2025:


Several new versions of JenAI

JenAI was my first portfolio project around generative AI tools, and is basically a terminal chatbot (I have written a blog post about it). I use it extensively for personal purposes, and have built quite a bit of tooling around it for myself. It is intended to be a personal tool, so I have no plans of putting effort into making it generally useful to a large audience, despite being very fond of the project.

In 2025, I released two patches for it: v1.7.2 and v1.7.3, both to improve the sanitization of strings so that it doesn't break when exotic characters are used in the conversation.


Developed LLP (Local Language Practice)

Local Language Practice (LLP) is a system to practice languages through a roleplay chat with LLMs (I have also written a blog post about this one). This was my main project for the year, and it is around a topic that I really want to explore further in the near to medium future: generative AI applied to education. It is a project I have used quite a bit for real learning, but not as much as I wanted because I have had very little time to invest in studying languages this year, unfortunately.

I released the first version in April of 2025 (v1.0.0), and two more versions later in the year (v1.1.0 and v1.1.1).


Developed LicLacMoe

LicLacMoe was more of a fun project, one in which you can play tic-tac-toe against an LLM (as per usual, I have a blog post about this one as well). I like to think of it as "the most useless application of LLMs you will likely ever see". Despite the obvious silliness, it was also an interesting study about how to use LLMs for specific tasks, instead of a generic chat interface. It also allowed to verify the (admittedly obvious) fact that reasoning models are better at playing games with logical rules than vanilla models.

I also released three versions of this one in 2025, all of them in May (v1.0.0, v1.0.1 and v1.1.0).


Finished 4 first steps into AI Engineering projects

Back in 2024 I had started a series of four projects I called "First Steps Into AI Engineering" (guess what? I also have a blog post about this). These consisted of JenAI, Chargen, LLP and LicLacMoe. In 2025 I was able to complete the last two, and wrap up the series. This series was very useful for me to learn how to build systems around generative AI tools (not only LLMs, but also image generation ones), something that is likely to become the baseline of contemporary software development.


Created programming language learning projects curriculum

Late in the year, after moving to a new team that was using Go as the primary programming language (and having no prior experience or knowledge about Go at all), I saw myself having to very quickly learn a new language and tech stack, with the all-too-helpful but way-too-helpful assistance of AI coding tools. While I was able to very quickly become productive, I felt like I didn't understand very well the code I was shipping, and that annoyed me. So I set out to create a curriculum of projects for myself that covers most of the basic concepts I have used in my career, the purpose of which being that if you implement all the projects it contains in a particular language, you should feel very comfortable developing software in that language. I am currently applying it to Go, and so far it has been proving itself as useful as I intended it to be. (Of course, I have a blog post about that).


Developed Catcher Server project

In the end of the year I also developed the Catcher Server project (and wrote a blog post about it). It is somewhat of a break with the large line of AI-related projects I have been implementing in the past two years, but I think it is a nice little tool that already proved useful to me a few times. I also used it as an opportunity to apply full vibe coding in building something a little more complex than simple scripts - applying this to a simple and low risk project was very good to build experience for more challenging ones in the future.


Professional

I also had a quite busy year at work, being involved in a series of initiatives, moving to a new position and winning a few prizes.


Open Source Champion

I have been an Open Source Champion within my company since late 2024. However, the first months were mostly onboarding and ramping up in the topic and the role. In 2025 I was finally able to really make some meaningful contributions in this role. Beyond just Open Source, I have also been heavily involved in the topic of Innersource (applying Open Source concepts and techniques in the context of a private company). As part of this role, I presented the topic at internal developer conferences of the company, organized hackathon-style events and delivered workshops as part of some of our internal development curriculums.


Innoweeks as Dev Lead and MVP

At my company we have a month-long event called Innoweeks, in which we get together with customers to build an MVP that solves a real business project in a burst of short iterations. I had participated in 2019 and 2024, and I did so again in 2025. This year, I was the dev lead for the team, and received the MVP prize for my team at the end of the event.


Won third place prize at Innovation in my location

I work at one of the biggest locations my company has - we have over 3000 full time employees here. Which means we get to do a lot of cool events and initiatives based here. In 2025, the location offered prizes to the people who got involved the most in boosting innovation at the company. The way it worked was that each participation in innovation events or activities would give the participant a certain number of points along the year, and the people who won the most points at the end of the year would win. I was very honored and happy to be in the podium for this, I was the third person who contributed the most among the 3000+ employees we have.


Moved to a new team

I rejoined my company in 2024, but I did so in a team that was really not a good fit for me - it was responsible for a very old monolithic system and still operated with waterfall methodology, both of which I am strongly opposed to. After I concluded the one year that the company demands you stay in a position before applying to another one, I applied to join a new team working in building the platform that the company runs on. While I am enjoying the current technology stack, and our technical scope, much more than the previous one, unfortunately the new team also has several leadership and organization issues that I am trying to improve, little by little. But overall I am much happier now than last year.


Learned Go programming language

With the move to the new team, I also had to pick up the technology stack the team was using. In this case, it was mostly the Go programming language, with Kubernetes as the runtime. I am already quite familiar with Kubernetes, but I had never worked with Go before. So that was an opportunity to learn the language, and add another tool to my toolkit.



Saturday, January 31, 2026

Monthly Recap - 2025-12 December

December was a very nice wrap up for the year, in which I could get a lot more done than in previous months. Big changes, lots of catching up, and an overall bump in productivity. While not everything is yet perfect, it certainly helped to improve morale.


Achievements

Back to personal studies

First off, after a long stretch (almost half an year!) without being able to focus on personal studies, I was finally able to get back to it. While I am not entirely back to my normal pace, I made a lot of progress in both books I am working through, and put some time into it most weeks. I am almost finishing Rich Dad, Poor Dad now.


Blog posts

I was also able to set aside some time during the holidays to write several blog posts I had been planning to. These were all based on projects I undertook in the last three months of the year, but that I was too busy to document.

Here they are:


Attending TDC

December is usually the month in which The Developers' Conference (TDC) has its Porto Alegre edition. This year was no different, and fortunately I was once again able to attend it in person. This is the third year in a row that I do this, and it is always one of my favorite times of the year.

Just like last year, this edition was smaller than the normal version of the event. While last year it followed the "AI Summit" format (which I highly dislike), this time it used the "TDC Experience" format, which I found better than the AI one, but still not as good as the full version. The event took place in a different venue from the classic Uniritter campus - while I liked the space (inside the Barra Shopping), I felt it had a less distinct atmosphere. Nevertheless, this time I was able to attend it together with other colleagues from my company and even my team, so it was overall a great and pleasurable experience.

The talks themselves focused more on seeing AI through a more mature and seasoned perspective, keeping the high expectations while starting to recognize and analyse several of the possible pitfalls it offers. I think this shows the "growing up" of the software development ecosystem with regards to this technology, and I only wished my company was at this stage as well - unfortunately, we are only now getting into the "starry-eyed adolescent" phase, a good 3 years behind the whole world.


Downpoints

While there were no major negative points this month, I do feel I am not yet fully back to speed, after all the chaos of changing jobs and moving to a new place. There are several days in which I still get stuck with some minor problem to solve and can do no useful work. Thankfully, these have been getting rarer lately.


Plans for next month

January is usually a month to plan things and set up new routines. The only thing I am mostly convinced I will be focusing on for next year is improving AI skills, so I expect to already get started with some of that. But mostly it will be coming up with a solid plan for 2026.


Wednesday, December 31, 2025

Monthly Recap - 2025-11 November

After several chaotic months, in November things finally started to settle down a little. While it was still far from my normal, I was able to put some time working on things I wanted to do, and had some nice achievements. Here's a quick summary.


Achievements

Programming language learning projects

For a long time I wanted to create a personal curriculum of projects to develop in order to become proficient in any new programming language. Having gone through the process of learning Go during the second half of this year led me to finally do this. I created a list of ten projects which get progressively more complex and cover most of the essential programming concepts. I have made this personal curriculum open source on Github, and wrote a blog post about it.


Go learning projects started

I immediately started applying the previously mentioned curriculum to my learning of Go. I am slowly working through it, and so far the experience has been really great. I can already feel the benefits, as I feel way more confident developing software in Go now than when I started. I am keeping the projects in private repositories on Github, as for now I do not see the value in making them public - this might change in the future.


Catcher server project

This month I also published another new open source project, catcher-server. It is a simple Python web server that logs to the console information about any request it receives, useful for debugging and validating applications that make outbound requests. The need for something like this came when I was working with microservices and a very new platform which does not have full observability capabilities yet - while I could look for existing alternatives, I thought the scope was perfect to have some fun and vibe code plus open source a simple project. The combination worked pretty well! I have also written a blog post about it.


Downpoints

Personal studies blocked again

While November allowed me to dedicate some time to work on personal projects, it was not yet enough to fully get back with personal studies. It has been a rough year, and I have been blocked on this front for several months already.


Plans for next month

Get back to personal studies

I expect December to continue the trend of things getting less chaotic, and with that to have more time to focus. One of the main things I expect to get back on track is my personal studies habit, as it has suffered tremendously already this year.


Monday, December 29, 2025

Project: Catcher Server

Every now and then, while building and gluing together different pieces of a system, I run into the need for exactly one thing: a tool that will tell me, in the most direct way possible, what a given service is sending out as an HTTP request. No frills, no mystery, no surprises... just give me everything, and don't ask questions.

This is precisely the itch that catcher-server was built to scratch. It's a minimal open source HTTP server designed with only one job in mind: to receive any HTTP request, on any endpoint, and log clearly to the console its method, endpoint, and payload. You throw requests at it, it logs them. That's all there is to it.


Why did I build it?

The motivation came from real needs in my day-to-day work. I was working with a new platform at my job, dealing with limited deployment and observability capabilities. When you are working in such an environment, the quickest way to validate and debug what is happening is often to set things up locally. So, rather than guessing at what my services were really sending, or trying to wade through partial logging and indirect clues, I wanted something that would display the complete truth about outgoing requests, with zero ceremony.

You might reasonably ask why not look into one of the many alternatives out there. The answer is simple: I wanted something I could run locally, that would be mine, with zero licensing or learning curve to think about. Just something I could launch instantly, trust, and forget.


Vibe Coding

There's another reason why I consider this project relevant. It is a great example of a good use for vibe coding. Catcher-server is not a polished product for broad public consumption, but rather a practical and friendly tool, spun up to fulfill a personal/internal need. Projects like these are perfect for a more relaxed, collaborative coding session, especially when working with AI tools to speed up the boring parts. I see vibe coding as an ally for prototypes, utilities, and experiments - fast, fun, and effective in their scope, even if not suited for rigorous software that needs to last forever.


Under The Hood

True to its spirit, catcher-server is built on Python with Flask. That's it: no frameworks or engines beyond what is needed. The idea was to keep everything as simple as possible. No clever tricks or fancy abstractions, just a straight line from incoming HTTP requests to the console log.


Use Cases

While I personally used catcher-server for a microservices project, the intention is broader: it's meant for debugging, testing or observing outgoing HTTP requests from any project. If you want to get the real payload, headers, or query params from your code, without distractions, catcher-server is here for you. It isn't opinionated, and it isn't limited to any domain. Point your requests at it, and it will always catch them!


Conclusion

Catcher-server is the kind of tool I like to have at hand: minimal setup, instant feedback, and the freedom to use and adapt it however I want. It's not going to change the world, but it just might prevent some early gray hairs!


Links

Source code: Github


Saturday, December 27, 2025

Learning Golang

This year marked a significant shift in my professional journey as I transitioned to a new team, where Go stands as the primary programming language. As someone who hadn't previously engaged with Go, these past months have been a deeply immersive learning experience. In this post I will briefly share some of my thoughts about this process.

It's particularly pertinent to consider this journey amidst the current, somewhat chaotic, integration of AI into every facet of software development. It offers a valuable opportunity to pause and reflect on what it truly means to acquire new skills in an era where some people claim AI makes all skills obsolete.


My Learning Trajectory 

My approach to learning any new subject, especially a programming language, typically involves a structured path. While often a single video course suffices, I added a few more steps in this case. I began with the official language tutorial, followed by a full video course, and, finally, embarked on a series of personal projects to solidify my understanding.


Official Tutorial 

The initial step involved working through the tutorials on the official Go programming language website. This proved effective for environment setup and familiarizing myself with the core code-build-run cycle. My exploration here was primarily foundational, extending only slightly beyond the "Hello World" scope.


Udemy Course 

After gaining a basic grasp of project bootstrapping, I sought a more in-depth, structured resource. For years, Udemy has been my go-to platform for professional development in software. Thankfully, I found out that Maximilian Schwarzmüller offered a "The Complete Guide" course covering the language. Having completed several of his courses previously, I had high confidence in the quality, and I wasn't disappointed. Though perhaps less comprehensive than some of his other offerings, it provided a robust foundation in the language's fundamental concepts and constructs.


Projects 

While a thorough video course usually equips me sufficiently, in this instance, I felt the need for more. This followed from a confluence of factors: Go not being my immediate choice for personal applications, its less-than-intuitive aspects, and the workplace emphasis on AI-generated code over manual development. All of this motivated me to deepen my learning through practical application.

That is when I created a list of 10 application projects to develop in the language, which would progressively make me exercise more and more complex concepts. I have wanted to create such a "curriculum" for a long time now, so this was the perfect opportunity to do so. I tried to frame the projects in a way that could be used for almost any language, and put the list in a public Github repository. I also wrote a blog post about it.


Challenges 

AI

Artificial Intelligence undeniably offers substantial productivity gains in our field. However, the prevailing directive from upper management to uncritically deploy AI-generated code introduces significant challenges, particularly concerning knowledge acquisition and retention.

When your only incentive is to push out as much code as possible, as quickly as possible, it is easy to not put the effort (and time) into learning new things. If it seems to mostly work most of the times for the things you already know, you end up assuming it will also work when you do not know enough to make a judgement on what it is producing. But the catch here is in the "most" and "mostly" part: there are very significant and problematic cases in which you need to use your judgement to override something the AI made. If you are using AI to ship something in a language you do not know, you are not able to do that.

My approach has been to use AI as dictated while at work, and while creating things for personal use that I already know deeply how they work. But to avoid as much as possible relying on it while I am learning something new - I try to write all new code by myself, researching when I do not know how to do something, and only resorting to generated code when I am at an absolute loss. I then use generative AI models to analyse and evaluate my final implementation, asking it to give tips about best practices and where I could improve. I believe this approach not only preserves the learning benefits of a pre-AI era but also augments them, maximizing the value derived from this new technology. It is a shame that it is so hard to communicate this to the highest level of management at companies, these days.


Overlapping 

Another challenge I found is the fact that I do not see myself using Go for my personal projects. The language seems to overlap a lot with other languages (mostly Java, also some Python and JavaScript) that I already master and that work perfectly fine for me. I feel like I have to put conscious effort to choose Go as the main language for any new project I might start, and I am not sure how sustainable this is in the long run.


Thoughts So Far 

Overall, I find Go a pleasant language to work with and considerably simpler to learn than I anticipated. While it is definitely not my favorite language (not by a long shot), and I don't foresee continued investment in it beyond my current professional requirements, it effectively serves its purpose, generating optimized executables with minimal overhead.


Error Handling Code Everywhere

One aspect of the language that I find slightly weird is how much error handling code it needs. I do not know if this is just a skill/experience issue, but having seen code for fairly seasoned Go developers I am inclined to conclude that it really is intrinsic to the language. It feels like half of every Go source code file I read consists of "if err != nil".

While I do appreciate the safety that this might bring to programs, it still makes the code feel slightly uglier than in other languages, to me.


Dependency management

The only other point that I find disconcerting is Go's dependency management mechanism. Coming from a Java and JavaScript background, I am used to having solid, unambiguous and strict manners of declaring and managing your dependencies. Go's approach feels very idiosyncratic and flaky, and at least once per month I have very experienced Go developers telling me to run some arcane command to "just fix your vendoring" without being able to explain what the command is actually doing.

Thursday, December 25, 2025

Projects Curriculum For Learning Programming Languages

While learning the Go programming language, I did something I have been wanting to do for a long time and created a short "curriculum" of projects to develop when learning a new language. The idea of this curriculum is to progressively expand one's understanding of how to do several common programming tasks in the desired language, and should be agnostic enough to work for almost any language.

I made this list public in a Github repository, and in this post I will briefly describe the reasoning behind it and introduce the initial set of projects.


Reasoning 

For many developers, embracing new programming languages is an intrinsic part of the professional journey. While some may comfortably settle into a familiar stack, the evolving technological landscape often rewards those who frequently broaden their linguistic horizons.

While it is possible to become reasonably proficient by fumbling your way around, especially if you already know a very similar language, the results are better when you apply deliberate effort to the learning journey. A mixture of understanding the concepts and getting your hands dirty creating something with the language works the best. This curriculum covers only the second part, you should first have taken a short course or read the basic tutorials of the language to get the concepts and theory.

My initial list has 10 projects, starting from the simplest behavior possible (logging some text to the console) and ending with an application to fully manage a resource. Along the way, it exercises programming constructs, interaction with the filesystem and exposing a service through HTTP requests.

By following this sequence and implementing each project, one can acquire a robust intuition for tackling the vast majority of tasks encountered in any language. This gives the confidence to then use the new language effectively for any project requirement.


A Note On Perspective 

This list is heavily shaped by my own experience, as someone who has mostly developed for the cloud and desktop, and with a backend focus. It might not cover several things that are important for frontend, mobile and AI/ML development.


The Projects

I created a public Github repository with the list of projects, and I intend to enrich their descriptions and refine the list as insights emerge from using it.

Here is the initial list, with a short description of what each project contributes:


1. Hello World

Classic first program in any language, just print out the message "Hello World" to the console. This makes you understand how to set up, build and run a project in this language.


2. Current day and time greeting

Print to the console a short greeting informing the current day and time. This allows you to learn how to use the standard library of the language, move away from hardcoded values to start using variables, and string formatting.


3. Guess the number game (CLI)

Simple game in which the application chooses a number between 1 and 100 and the user has to guess it in 7 or less attempts. This introduces handling user input, conditionals and loops.


4. Note taking (CLI, local filesystem)

Start a CLI that reads user input until a certain pattern is entered (such as /exit or similar), then saves all the text entered to a file named with the current date and time to a standard folder - optionally, offer a "view" mode in which the notes already saved are displayed. Focus here is learning how to interact with the filesystem and an initial mode of persistence.


5. To-do app (CLI, database/sqlite)

Application that allows users to create tasks and mark them as done from the terminal. Learn how to interact with databases in the language, a good first option usually being sqlite.


6. Hello World (GUI)

Same as the first project, but now displaying "Hello World" in a graphical interface. This project makes you learn the very basics of creating an UI in the language. Depending on the language, this (and the next two projects) might not be relevant, or be redundant - in a language usually applied in a stack that is graphical by nature, the CLI version of these projects will already teach how to create graphical interfaces.


7. Guess the number game (GUI)

Same as the third project, but now with a graphical interface. Most important learnings here being how to receiver user input in a GUI and how your custom logic interacts with the UI rendering loop (often requires basic multithreading understanding). Depending on the language, might not be relevant or be redundant.


8. To-do app (GUI)

Same as the fifth project, but now with a more sophisticated user experience to edit tasks. The main benefit I see for this project is to give a holistic understanding of a complex end-to-end scenario, going from an user interface all the way to a database and back - after finishing this project it should feel like you can comfortably use this language to solve real-world problems in a user-friendly way.


9. Quotes app (REST)

Web application that returns famous quotes from certain people (can be hardcoded) through HTTP requests, preferably applying the read-only parts of REST. This project allows you to learn how to run a web server in this language, and use your custom logic to respond to requests. I do not see the need to also implement the client part for this project, but frontend-focused developers might see the benefit.


10. Album manager app (REST)

Web application that fully manage an "album" resource - allowing the creation, edition, listing and viewing of musical albums. The challenge with this project is implementing the full management of a resource, including its nested entities (an Album has an Artist, a list of Musics, etc.) and database persistence. It serves as a capstone - if you are able to do this, you should feel confident to say you are proficient in the language. Most entry-level jobs would have very similar (if not lesser) expectations, and if you reached this stage it should be very easy for you to go after any subsequent knowledge as the need arises.



Sunday, November 30, 2025

Monthly Recap - 2025-10 October

Another short one for October. Things have been crazy busy with the logistics of moving out to the new apartment, and with the bootstrapping of the new team at work. I've had very little time to work on learning and personal projects.


The main highlight of the month was finishing a course on the Go programming language, which I have never worked with before but is part of the core stack in my new team. I usually learn better with video courses than with any other material, so I chose this approach again and it worked as expected. But it turns out that it is not very easy to learn something new in this age in which AI is just right there ready to do everything for you at the distance of a single prompt... I plan to write a few posts specifically about this and how the process of learning the language has been so far.


I have also been involved very deeply in how AI is changing the software development process at our team, but this is a huge topic that deserves attention by itself. Hopefully I will be able to write a few pieces on this, but it might take several months yet. We'll see!


I expect to be able to write more in this last stretch of the year, and continue doing so next year. But the pace might still be a little erratic, due to all the changes in my personal life. For the remainder of the year I will probably be still working on getting comfortable with Go and more writing, leaving any new major projects to next year.

Friday, October 31, 2025

Monthly Recap - 2025-09 September

Short update this time.

September continued the trend of major changes, both professionally and in personal life.

Professionally: still onboarding into the new team and area. Worked with several different agentic frameworks for Python (Google's ADK, CrewAI, LangChain), mostly investigating and building small PoCs. Very unhappy with current methodology directions at work.

Personal life: Bought new apartment, started all the chaos of moving out - unlikely to end soon. Got into investing as well, which has been incredibly insightful.

October should still be hectic and with very little to add for technical discussions. Hoping that things will calm down around late November, early December - but not fully convinced they will!

Tuesday, September 30, 2025

Monthly Recap - 2025-08 August

August was a very busy and chaotic month. Lots of big changes lumped together, across all aspects of life. Most relevant to this blog, starting at a new team in the company and learning a new programming language.


Achievements

New team

In 2024 I returned to a company I had worked for several years in. Although I was glad to be back, I was never really happy with the environment. Working on a legacy system, with waterfall methodology... it was way too detached from what I believe in. After one year, I was ready to move on. So I jumped into an opportunity to work at a different area of the company, which couldn't be more different: a platform team, with the mission of improving the developer experience across the company's developer ecosystem. Needless to say, there is a huge amount of new things to learn. I spent all of August in onboarding mode, and although at the end I had already started contributing effectively, it will still take a few more months to get fully adapted to this new environment.

Go

Moving teams often mean changing your technology stack. I have started learning the Go programming language, which has been a fascinating journey. As a mainly Java developer, I am enjoying the simplicity and the modern feel of the language, while being highly skeptical of the several implicit conventions that it relies on.

Searching for new apartment

On a more personal note, I have also started looking for a new apartment to buy. At this point it is really important for me to live in a more central part of the city, as the logistics to do anything are becoming a real bottleneck. While fun, it is certainly a very demanding activity - so many hours every week lost looking through alternatives, visiting places, and so on.


Downpoints

Habits on hold

The bad part of having so many new things happening all at once is that your routine gets totally disrupted. During this month, all of my usual habits (exercising, personal studies, etc.) have been put on hold.


Plans for next month

Continue onboarding and adaptation

I do not expect September to be much different. There is still a long way to adapt to all these changes, and it should continue for a few months at least. Hopefully, I will be able to get back on track with some of my habits, but I would not be surprised if that is not possible yet.


Sunday, August 31, 2025

Monthly Recap - 2025-07 - July

July was completely a vacation month. I took a month off of work before switching areas inside the company, and used this opportunity to also disconnect from software development as a whole for a while. After a very exhausting period working on legacy code, methodology and mindset, I really needed this time off.

This month's recap will be a short one, but nevertheless here's what went on.


Achievements

Vacations

As mentioned in the introduction, I had vacations during all July. I used this time mostly to pursue other interests, such as music (I found a new favorite Youtube genre: music reaction videos) and gaming (though I was not able to finish my Baldur's Gate 1 run). It was the first time in over 2 years that I spent a significant amount of time not actively developing anything, which felt both weird and necessary.


Personal studies

Despite being on vacation, I did not stop my personal studies habit. I actually started three new books this month:

For career studies, I picked up Fundamentals Of Software Architecture. I have been working on several personal projects for a while now, in addition to everything I have done professionally, so I thought it was well past the time to start getting some grounding on software architecture. I am mostly interested in evolutionary architecture (for a plethora of reasons that there is no need to get into here), but I felt like I could use some more basic foundation first.

For hobby studies, I picked up Rich Dad, Poor Dad. I should have started digging into a good financial education ages ago, and it has been well over 4 years that I have been postponing it until I felt financially stable enough to be able to benefit from it. No more procrastinating here!

For technical studies, I picked up AI Engineering. It has been a little over 1 year that I have started focusing on AI Engineering in my side projects, and I am also very interested in this field as a whole. I felt so inclined to get a stronger grounding on it that I added a third type of studies to the usual 2 (career and hobby). I am just hoping that it does not get too overwhelming, but it really feels like the right time to get more serious about this stuff.


Downpoints

Not much coding

I do not have many downpoints to mention about July. Only that, since I have turned off from the software development world for this period, it did feel particularly unproductive. Not writing much code gave me time to do other things I am passionate about, and I did enjoy it, but the itch to go back is very strong.


Plans for next month

In August I will be starting in a new area at the company. I am very excited about its goal! I expect to be fully invested in getting acclimated to it for a few months.

Because of that, I will probably spend the major part of August, if not all of it, learning the base stack of this new area, and adjusting to this new period. It should be an incredible ride!


Thursday, July 31, 2025

Monthly Recap - 2025-06 June

June was a very atypical month, mostly driven by transitions. In my personal work I moved on from the previous set of projects with AI engineering onto exploring other ideas, and in my career I went through the process to join another team inside my company, which is much more aligned with my current vision and goals. Here's a quick summary.


Achievements


LLP version 1.1.1 Release 

Local Language Practice (LLP) is a desktop application to practice languages through contextual chat roleplay with local AI models. I first released this project back in April. A part of my First Steps Into AI Engineering series, I consider it my main software project of the first half of 2025. In June, I released version 1.1.1, which fixes a bug that prevented it from being launched from the JAR file and added more sanitization cases for the messages. I also took the opportunity to update the Readme, making gemma3 now the default model in the examples instead of llama3.1.

With regards to software development, I have been taking some time off from major public releases, as I am focusing more on exploring some ideas on my own. I expect this to last a few months, and I will probably only go back to have major public development in the last quarter of 2025. I am very happy to have this pause, as I need some time to just test out several approaches and see what works and what does not, without any commitment to sticking with the code. I am mostly still staying in the generative AI enabled applications space, though.


Personal studies

I was able to continue and make great progress in my personal studies habit. For career studies, I finished Building Successful Communities Of Practice, which offered great insight into an area that I have been more and more involved with in the recent past. And for hobby studies, I finished The Prompt Report, a nice overview and catalogue of techniques for prompting generative AI models - I have been following the AI field with great interest since 2023, and this was a great material to shine some light in the topic and learn a few new tricks.


Blog post about LicLacMoe

Although I released LicLacMoe (a simple tic-tac-toe game in which you play matches against LLMs without any conversational interface) back in early May, I only got to writing the blog post about it in June. That shows how busy and chaotic my routine has been. Better late than never, I guess!


Internal move

As mentioned at the start of the post, during June I went through the process of applying and being accepted at a different team inside my current company. I am very, very happy about this change, as it allows me to work more aligned to the global vision of the company and on internal developer experience tools. I expect to gain a lot of knowledge and insights about how to build great tools for developers out of this experience, but we will see how it goes.


Downpoints


TDC with little participation

The second edition of The Developers Conference (TDC) took place in June. Although I was very optimistic about it, mainly because it was a full-fledge version (instead of the "AI Summit" format, which I have already complained about in a previous post), I was so involved in my daily activities at work (the entire interviewing process also taking its toll, of course) that I was not able to attend many sessions. I still plan to go over the recordings in the near future.

The session that I felt was most productive for me was one about the product development process for a Brazilian company that develops video games. I am very intrigued at the prevalence of waterfall-like processes and cycles in that industry (AAA games often taking half a decade or more before ever making it to the players hands), and this has been in my mind for quite a while now. It might be something I will look into further in the future, as someone who both loves games and believes deeply in Agile for any kind of creation.


Internal move in effect only in August

Another negative point was that, although I had my movement to the new team at my company approved, it could only be in effect from August onwards. Which meant that I had to wait for about a month and a half from receiving the approval to actually moving. Definitely a longer waiting time that I would have liked, but, once again, better late than never!


Plans for next month


Vacations

I will spend pretty much all of July in vacation. Since I had a lot of available days piled up (which HR would soon kindly ask me to use), and it would not make much sense for me to start new things considering I would move teams soon, I decided to take several weeks off and start fully charged at the new position. I intend to dedicate most of this time to gaming (I am horribly late on my backlog of games, to be honest) and music, though I never really stop studying and coding in my free time.


Next portfolio project

Speaking of coding, I plan to start working on my next portfolio project as well. I expect to go several months purely exploring ideas and building little sketches for independent parts of it before starting the "official" project, so it will definitely not be anything public for now. This new project should have roughly the same size of my last one (LLP), and will also be focused on applying LLM models to a specific problem (I already have the scope and initial set of features in mind). I expect it to be quite fun, and very useful to myself - while hopefully being insightful for anyone who is also interested in generative AI as an enabler for our future activities. I will share more about it in the near future.


Monday, June 30, 2025

Monthly Recap - 2025-05 May

May was a very intense and productive, if not always positive, month. I finished a series of project that took me almost a year, was able to restart some of my habits and had some vacations (with mixed results). Here's a summary of what happened.


Achievements

LicLacMoe

LicLacMoe is a desktop application to play tic-tac-toe against a local LLM model. It is the fourth and final project in my First Steps Into AI Engineering series. I have written a blog post about it, Project: LicLacMoe. This was a much more laid back and casual project than the one before it (Local Language Practice, LLP), and I both had fun and achieved some cool insights while developing it. These were its releases in May:

  • 1.0.0: Initial version, containing the basics to play matches.
  • 1.0.1: AI player chooses move asynchronously.
  • 1.1.0: Support for reasoning models and verbose mode to log full response from model.


Finished First Steps Into AI Engineering series

With the release of LicLacMoe, I finish the scope I had in mind for my First Steps Into AI Engineering series. I started planning and implementing this series way back in August of 2024, so it took me almost an year to finish it. That was somewhat surprising, I initially thought it would take only a few months, around 4 or so. Despite taking longer than expected, it was a thoroughly enlightening project, and I enjoyed each part of it. I feel like it gave me a much stronger grounding on working with generative AI models, and paved the way for much more ambitious projects in the future.

In this series, I focused on writing most of the code myself, while avoiding popular frameworks focused on interacting with generative AI models. Now that the goal was accomplished, I feel comfortable to start using frameworks, without feeling like I am too dependent on them, or treat them as a magic black box.


Started studying SpringAI

As a result of what I just mentioned, I started exploring one of the popular frameworks for generative AI development: SpringAI. It is part of an ecosystem that I am very familiar with, so it seems like a logical next step. I will experiment and try to create a few projects with it, before also trying out other Java frameworks and the ecosystem of other programming languages.

Going forward, I expect to shift my time balance to once again invest more time in studying courses and less time on building projects. In the past, I leaned completely towards studying courses and almost never built anything by myself, while since around the first months of 2024 I shifted to exclusively invest my time in building stuff - now it is the time to balance both things at the same time. I know for sure I will not stop building new projects, as I have a huge backlog of ideas (even if I get no more inspiration for the next 5 years, I think I should have enough to not stop working on them).


Restarted personal studies

Another nice point of the month was getting back on track with my personal studies habit. I had paused my career studies in April, and had not done any hobby studies since December of last year. In May, I was able to pick both back up.

I picked some very short books and papers, which allowed me to move fast and achieve some accomplishments quickly. This was a very good morale boost!

For hobby studies, I started and finished the paper Future Brains (purely for intellectual curiosity), while for career studies I started the book Building Successful Communities Of Practice, which was useful for my current job.


Downpoints

I had almost no down points in my personal space. Everything went smoothly, I was able to both finish long standing projects and restart some of the things I enjoy.

However, professionally it was a challenging time. Even though I took some days off, I ended up having to work on a few of them, and in general several changes that happened were done in way that I disagree with, which gave me some frustration. Just a reminder that not everyday is a perfect day.


Plans for next month

TDC

June will have the second edition of The Developers Conference in 2025. While I have been less motivated with the event since its change to the "AI Summit" format, this one should be good as it will be the first one of the year in the full, 3-day long, several-tracks format. It will happen in Florianópolis, and so I plan to attend it remotely.


Deeper exploration of AI Engineering development

With the First Steps Into AI Engineering series complete, in June I plan to start going deeper into some AI Engineering projects and ideas. I don't have anything I can share right now, but I have plenty that I expect to get done along the year, and I will write about it as I finish each project.


Thoughtworks - Technology Radar 34

Intro Twice a year, Thoughtworks publishes its Technology Radar , an opinionated guide to the current technology landscape. It organizes not...