Lessons from FOSDEM 2024: Performance, AI, and Beyond

At the beginning of February, our team had the pleasure of participating in FOSDEM 2024, an open-source event hosted in Brussels at the ULB Solbosch Campus.

Przemysław Mejna
Developer

In early February, our team had the opportunity to participate in FOSDEM 2024, an open-source event held at the ULB Solbosch Campus in Brussels. Despite the time constraints, we focused on panels that were relevant to our tech stack in the various Developer Rooms. We gathered valuable insights and highlights from the sessions we attended.

Logistics: Tips for Future FOSDEM Explorers

Traveling to FOSDEM in February? Consider the main Brussels airport, as a long queue caused a two-hour shuttle wait at Charleroi. Be prepared for potential delays and cold weather.

On the other hand, Brussels's public transport was great. If you choose this option, keep in mind that daily tickets expire at midnight, so if you arrive late, it might not be the most cost-effective option.Our accommodation was conveniently located close to Gaucheret Park, with a short walk to the historic center, easy bus/tram access, and a 40-minute journey to the campus.

What's the Conference All About?

The event began on a cloudy, refreshing Saturday morning. Our first stop was a nearby coffee shop for a hearty breakfast and energizing coffee, much needed after our demanding Friday journey.

FOSDEM, an open, ticketless event, resulted in a packed venue. It was well-organized, with themed Developer Rooms for easy navigation. Like most conferences, it offered a few less technical keynotes. We have two tips for a smooth experience: arrive early to avoid lines as some Developer Rooms fill up quickly, and once you find an interesting room, consider staying all day as re-entry can be difficult. Food trucks and a well-stocked cafeteria on campus make long days much more manageable.

Upon arrival, our team split into various Developer Rooms. This variety enabled us to delve into a wide range of topics. Here's a summary of the most intriguing ones we encountered.

Performance Enhancements

One of our key areas of expertise is web applications and websites. We don't just focus on the craftsmanship and quality of the code; we also prioritize the performance of our creations. Fortunately, we've come across several interesting presentations in this domain:

  • Your Web App is Taking Up Too Much RAM. Let's Fix It! [Link]
    Have you recently checked your app's RAM usage? This great talk on the significance of RAM management and the tools for optimization was a cool discovery. The topic is particularly important for memory-hungry apps, as it can lead to out-of-memory crashes, especially on iOS. Tools like Chrome Memory Profiler, with its HEAP Snapshot and Allocation Sampling, can help. A case study showed how misusing map functions for assigning UUIDs can cause memory issues. Identifying such issues can be challenging, but Memlab can help analyze data from large JSON files. Worth checking out!
  • Unraveling JavaScript's Heart: Mastering the Event Loop for Peak Performance [Link]
    This was a great refresher on NodeJS architecture, debunking the myth that asynchronous approaches should always be prioritized. During the talk, we explored the multi-threaded nature of NodeJS architecture and its implications on code runtime. We could see the differences between asynchronous approaches in core modules versus node modules. Additionally, we examined how different bcrypt strategies can impact the event loop and our application's performance. The talk ended with a mention of Piscina, a Node.js working pool, and doctor.js, a tool to help identify performance issues in your Node.js applications.
  • Fast JavaScript with Data-Oriented Design. [Link]
    Markus Stange, a decade-long member of Mozilla's web performance team, argued that using large objects isn't always the best solution, and the data presentation format we expect isn't always the most efficient for machines. From this, we concluded that we need to find a balance in data handling, particularly for large data sets used in chart presentations or data science. You can access the mini-profiler and lecture slides here.
  • The Importance of Web Performance to Information Equity. [Link]
    Have you ever considered how poorly optimized websites can exclude individuals from less affluent regions? Bas Schouten, a tech lead in Mozilla's performance department, shed light on this issue. He demonstrated how a substantial part of income is needed for people in Africa to access websites, pointing out that these percentages are alarmingly high. His presentation emphasizes the importance of good website performance to avoid excluding individuals from less wealthy areas.
  • Let's Build a RUM System with Open-Source Tools. [Link]
    During the presentation given by Tsvetan Stoychev, we learned how to construct our own Real User Monitoring (RUM) system from scratch. This system helps track the efficiency of our application, identify areas needing improvement, and guide decisions to enhance the application. Boomerang JS is a useful tool for collecting various types of information.

AI: Beyond the Hype

In 2023, JavaScript frameworks were overshadowed as AI became the buzzword of the year, indicating a change in the tech industry's priorities. FOSDEM dedicated Sunday to an AI Developer Room showcasing discussions that went beyond the technical sphere to include important topics often ignored, such as AI's impact on legislation, regulation, safety, and security. Like all revolutionary technologies, AI and Machine Learning face some complex challenges. Here are some of the notable sessions:

  • Using Haystack to Build Custom Functionality for LLM Applications. [Link]
    Creating Retrieval-Augmented Generation (RAG) applications has become easier with plentiful resources, including coding and no-code solutions. This presentation emphasizes the open-source LLM framework Haystack, showcasing its modularity and simplified pipeline construction.
  • LangChain From 0 To 1: Unveiling the Power of LLM Programming. [Link]
    This is a basic introduction to Langchain. It provides a brief overview of text data handling, text splitting techniques, the fundamentals of embeddings, vector databases, and their role in RAG creation. While some may find it too basic, it serves as a good overview for those unfamiliar with these concepts.
    Additionally, it's worth highlighting an excellent initiative, focused on building European open-source LLMs. Well done, OpenLLM-France!

JavaScript Key Takeaways

Whether we like it or not, we all have to work with JavaScript at some point. We have covered most of the "developer room" focused on JavaScript. There were various topics and engaging talks, but we found the following to be the most useful:

  • Codebase Conquest: How Nx Turbocharged Our React Workflow [Link]
    This is a case study from Hasura on transitioning a React codebase to an Nx-powered monorepo. While some teams may find this transition inspiring and applicable, we at tonik have already tried Nx internally and encountered different challenges with its adoption. Nonetheless, the presentation is entertaining and worth watching.
  • Staying Ahead of the Game: JavaScript Security
    How frequently do you find yourself using dangerouslySetInnerHTML? This session emphasized the basics of JavaScript security, highlighting potential dangers and outlining best practices to circumvent common issues like XSS attacks, like setting up the Content Security Policy, or using HTTP Security headers. Additionally, the speaker discussed how they addressed various GitLab security issues in the past.

PostgreSQL: Deep Dives and Discoveries

For anyone with experience or plans to work with PostgreSQL databases, the enthusiasm for this specific panel resonated with us all. We also made some discoveries.

  • Isolation Levels and MVCC in SQL Databases: A Technical Comparative Study. [Link]
    This talk provides a concise yet informative discussion on database isolation levels. It's a recommended 'refresher' on the topic and is particularly useful for reshaping your perspective on isolation levels, especially if you approach it from an academic standpoint.
  • For Your Eyes Only: Roles, Privileges, and Security in PostgreSQL. [Link]
    The presentation offered a concise explanation of role functionality within PostgreSQL. Good overview with the top highlight: ‘Grants are allocated only to existing objects!’

Containers! Building blocks we need.

We managed to see only a few presentations in this particular room as our time on FOSDEM was limited. We highly recommend this one!

  • Forensic container checkpointing and analysis [LINK]
    Although it mentions ‘forensic,’ the focus is primarily on snapshotting containers with CRIU, its workings, and relevant use cases. The presentation provides insights into the structure of snapshots, their contents, and their potential uses.

Wrapping Up: More Than Just Tech

FOSDEM 2024 was as much about discovering Brussels, from its historic center to the search for the top coffee spots, as it was about technology. Despite the sparse presence of larger tech entities, with Mozilla being one of the few recognizable names in attendance and a variety in the quality of talks, the event proved to be a hotbed of ideas, discussions, and networking opportunities.

The core of the conference stretched beyond its sessions. It was encapsulated in unexpected ramen hunts, the collective pursuit of the ideal coffee, and the authentic connections formed while waiting in long lines. A round of applause to the organizers for not only creating a well-structured event but also one that was profoundly enriching, leaving us with memories and relevant insights.

Should you consider attending next year? Absolutely! Especially if the principles of open source align deeply with your values. However, if you're seeking big names, big frameworks, and big players, this may not be the conference for you.

Takeaways

  • JS can be fast and keep memory usage low while using open-source tools.
  • LLMs aren’t the only part of AI systems. Using open source to manage AI model calls can speed up application development.
  • Having a good understanding of DB isolation models when building applications can save you tons of problems later.

Przemysław Mejna
Developer
Let's talk

tonik here — a design studio focused on early stage startups, helping founders define, design and build products.

Opinions are our own