Friday, December 27, 2024

Event: The Developer's Conference 2024-6 Porto Alegre (onsite)

The Developer's Conference (TDC) is arguably the most important technology event for software developers in Brazil. It is regularly held around four to six times a year, each time in one of the recurring host cities (São Paulo, Florianópolis and Porto Alegre being some of the most common ones). The talks presented in each edition span a wide variety of topics, giving a great overview of the technology ecosystem as a whole. 

Since 2020, most editions have also been transmitted online, either in a fully remote format or in a hybrid one. I have written in a past blog post about how I have been a regular attendant ever since my first participation in 2019.


Porto Alegre edition for 2024

While most of the times I attend remotely, whenever there is an edition in Porto Alegre I try to be onsite for the event. This was the case for the final edition of TDC in 2024, which took place in Porto Alegre between December 4th and December 5th. 

Going back to the familiar Uniritter campus and meeting in person with some of the most important figures of the national software development scene, as well as colleagues from the past whom I had not seen in years, is always an amazing experience!


Summit AI format

The Porto Alegre edition for this year was in the new "Summit AI" format, in which there are only two days of event and three main stages (plus several other venues such as stands and digital rooms), with all of the talks focusing on the topic of AI. Overall, there were 4 editions in this format this year, with 2 other (in São Paulo and Florianópolis) using the more traditional tracks format. 

While I understand the need for a more frequent and deeper discussion about AI, given the overwhelming speed with which it took hold of the conversation in the tech industry since ChatGPT's launch on November 2022, I admit that I prefer the traditional format, with more tracks and thus more talks and a wider variety of topics being discussed.


Mute talk format

One feature that was new to me, although I believe it was already used in previous editions this year, was the use of multiple talks happening in the same place at the same time, with headsets given to the attendants that would allow them to choose which talk they wanted to listen to. 

While it allowed to easily switch talks whenever there was a dull moment in one (very reminiscent of the online experience of switching rooms in the streaming platform with a single click), I did not find this novelty to be particularly helpful, from an attendant's point of view (although I'm sure it made the logistics much simpler). I also thought that the different talks interfered slightly with one another, as a loud ovation would sometimes interrupt a speaker mid-sentence when one talk ended while the other was still in progress.


Sessions

These were the talks I attended:


Day 1: 2024-12-04

  • Nova Indústria Brasil: as ações da Finep para apoiar o desenvolvimento de IA no país. (New Industry Brazil: Finep's Actions To Help The Development Of AI In The Country)
  • Inovação no Varejo: A Nova Era das Lojas Automatizadas com IA (Innovation In Retail: The New Age of Shops Automated With AI)
  • Inteligência Artificial a Serviço do Farmacêutico: Consulta Interativa de Bulas de Medicamentos (Artificial Intelligence At The Service Of The Pharmacist: Interactive Consultation Of Medicines Leaflets)
  • Reimagine o desenvolvimento de software com IA generativa (Reimagine Software Development With Generative AI)
  • LLMonsters: desafios de GenAI em produção (LLMonsters: Challenges Of GenAI In Production)
  • Discovery Kanbanizado - O que garantir antes do compromisso (Kanban-ized Discovery: What To Guarantee Before Committing)


Day 2: 2024-12-05

  • Potencializando a Agilidade com Inteligência Artificial: Transformando Decisões e Processos em Tempo Real (Powering Agility With Artificial Intelligence: Transforming Decisions And Processes in Real Time)
  • Uso de Agentes baseados em LLMs como suporte a equipes (Usage Of LLM-Based Agents As Support To Teams)
  • Aplique AI e deixe agir: como implementar agentes de IA generativa (Apply AI And Let Act: How To Implement Generative AI Agents)
  • Engenheiro de Prompt: A Arte de Fazer Perguntas que Movem a Era da Inteligência Artificial (Prompt Engineer: The Art Of Asking Questions That Move The Age Of Artificial Intelligence)


Takeaways

Attending this edition was a very good learning experience. I was able to hear about the implementation of LLMs for real use cases and in production scenarios - as someone who has been following closely this area, and who has been implementing several personal projects using LLMs, this was extremely insightful. I was also able to get a good overview of agentic AI, a subarea that I hope to dive deeper into in the near future but that I have not yet explored much. 

Finally, I was able to meet a few people whom I had not seen in a long time, which is always nice and heartwarming. As always, I intend to continue attending every edition of TDC that I can, and I hope to next year see more editions happening in the traditional tracks format instead of the Summit AI one.


Sunday, December 22, 2024

Monthly Recap - 2024-11 November

November was a month with a lot of behind-the-scenes work. While I did release the first version of a new project and finished the study of a book, most of what I did was the kind of inglorious, but very much needed, work that does not generate big headlights when it is finished. Nevertheless, I am quite glad of all I did this month.


Achievements


Work on personal projects

I did some small updates to my existing personal projects. For JenAI, the most current one, I released version 1.7.1, which introduced a third-party library to parse command line options, instead of handling that with custom code. I also used this opportunity to add unit tests for all supported command line options so far, before making the change. As Michael Feathers says in Working Effectively With Legacy Code, "Cover and Modify".

Other than that, I added a CONTRIBUTING.md file with guidelines for contribution to all my currently maintained personal projects (example). While the guidelines themselves are very simple, and I am only accepting very specific types of contributions, I like the idea of making them very clear and explicit in the repository. This is a further step towards adhering more formally to open source practices, beyond adding an open source license (all my projects are released under MIT license). Hopefully I will be able to continue adhering more and more, as I plan to get more involved with the community both in my daily job and in my personal projects.


Chargen

Chargen is an open source desktop application to generate fantasy character avatars and biographies, based on basic info and attribute points. It is the project I picked up after finishing the initial scope for JenAI, and a part of my First Steps Into AI Engineering roadmap. I have written a blog post about it, Project: Chargen. In November, I released the initial version, 1.0.0, which covers the basic functionality: after the user inputs infos such as name, class, alignment, etc. and attribute scores for a character, the application allows the generation of an avatar and a biography for it, using local generative AI models. It uses an LLM model with an OpenAI API-compatible server and a Stable Diffusion model.


Finished studying Working Effectively With Legacy Code book

This month I finished the study of the book Working Effectively With Legacy Code, in the context of my personal studies habit. I had been studying it for almost half a year, as it is a large book and I had some pretty busy times along the last months. I read it both by myself, in my personal studies, and with my colleagues at work, in a book club format. Despite the book being quite old by now (it is from the early 2000s), it was a very productive read, and I learned several techniques and names for techniques I already knew. I probably won't be writing a review for this one since the content is so technical and dense. Overall, it is a book I can highly recommend to any software developer who cares about their craft, regardless of ever working with legacy code.


Plans for next month

I am writing this recap already deep into December, so it does not make much sense to talk about plans for it. However, here are some general lines of work that I intended to follow as I wrapped up November.


Finish Chargen

Just as it was with JenAI, the initial version of Chargen is functional, but not particularly amazing. There are several aspects of it I want to improve. 

I want to use streaming text to generate biographies instead of blocking the application until the text is complete (leveraging what I learned by implementing streaming responses feature on JenAI). I also want to group the form where the user enters the information about the character, to make it stand out more in the UI and be clearer that this is where the user is expected to fill out the fields. And finally I want to do some minor enhancements on both the functionality (adding checks and validation to guarantee all fields are filled before trying to create anything) and the code quality (adding more unit tests, refactoring, moving things around into a better architecture, etc.). 

I expect to finish all I want to do in Chargen during December, so that next year I will be free to work on other projects that I already have lined up.


Finish hobby book

I expect to finish the study of the book Brave New Words in December. This is a book by Sal Khan (founder of Khan Academy) about the impact that GenAI will have (and is already having) in our society, with a slight focus on education. I am enjoying it greatly so far, as it is an insightful book about a topic I am following with great interest. If all goes to plan, I should finish it in the last week of December, and pick a new one in early 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 als...