Please be advised that the schedule for the event may be subject to modifications. We appreciate your understanding and flexibility regarding potential changes.
Why can't we make software architecture once and for all? Why do we keep having to make the seemingly same decisions over and over again? This keynote delves into the slippery nature of software architecture decisions and the modern way to do trade-off analysis. I show tips and techniques for assessing architecture trade-offs, as well as some easy-to-fall-into anti-patterns. I also discuss iterative architecture–the faster you can get feedback for your trade-off analysis, the easier you can make architecture decisions based on objective reality, not opinions
Retrieval Augmented Generation (RAG), similar to the artistry of Remy’s Ratatouille, combines the brilliance of Large Language Models (LLMs) with the precision of information retrieval. Just as Remy layers flavors in his dish, RAG seamlessly blends vectorized documents, images, audio, and video to craft nuanced responses in AI-powered applications. The RAG-multi index, like Gusteau’s secret spice blend, optimizes data organization, allowing LLMs to access a rich pantry of knowledge. And much like Anton Ego’s discerning palate, RAG-search ranking ensures that the most relevant insights rise to the top. Vector DB, our culinary laboratory, refines this recipe for a delectable user experience.
This talk will explore the main architectural blueprints for Java GenAI Applications, offering insights on addressing the most typical requirements for such applications, approaching recurrent problems, and breaking them into manageable components to unlock the potential of LLMs. The talk comprises the most common design patterns for building GenAI solutions, and some examples with Java and Kubeflow for MLOps will be presented as well.
You’ve heard of the 10x developer, but can AI make you into a 10x technical communicator? I will share with you some of the patterns and antipatterns of harnessing AI as a software architect. Can AI generate and understand architecture diagrams? Could an LLM really architect a system? In the seemingly endless selection of AI-powered tools and LLMs to prompt, discover what’s worth your attention and where the risks outweigh the benefits.
We make decisions all the time in software - our architectures are the sum of them; both conscious and unconscious. In this talk I’ll describe what architectural decisions are, and the different ways that we approach them (individually and collectively) making clear the pros and cons of each. I’ll then compare them all, concluding by describing the ideal characteristics of a decision-process for modern software development.
Software architects will not be replaced by Generative AI or LLMs. They will be replaced by software architects that know how to leverage Generative AI and LLMs. For the last two years, Avraham has been on a journey using generative AI to augment the way he does architecture and makes architecture decisions. Along the way, Avraham has learned so much both about generative AI and about himself as an architect and as a person. In the talk, Avraham invites you to join him on his journey. This talk will equip you with the knowledge and tools to start on your own adventure to leverage the power of GAI, elevate your architectural practice, and hopefully stay ahead of the curve.
Micro-Frontends are the distributed architecture for the user interfaces that are solving not only technical but also organizational challenges. In this session, you will learn the most common anti-patterns I've seen in the past 9 years of implementing and consulting worldwide companies in their journey into the micro-frontends architecture. Whether you are an expert or a newbie, in this talk, you will learn how to properly structure your micro-frontends architecture and how to avoid common mistakes while building micro-frontends.
The primary advantageous aspect of AI has always been its ability to function autonomously, enabling the deployment of "smart" systems that are capable of independent action, without requiring constant human oversight to reach a specific target. Architectural patterns are needed for effective multi-agent setup coordination.
Software engineering challenges stem from two constraints: humans' limited cognitive capacities and the necessity for human effort in modifying software. Innovations like OOP, Agile, DDD, and Team Topologies serve to thrive within these constraints. As AI evolves to regenerate and redeploy entire systems, it promises a profound paradigm shift in software engineering, altering our work and software's role in the business ecosystem. This talk delves into AI's potential to revolutionize software engineering and offers insights into the future of AI-driven software development.
In recent years increasing environmental awareness has resulted in a sudden increase in interest in the environmental sustainability of software systems. The creation of the Green Software Foundation in 2021 helped to accelerate this interest by providing a focus and community for those interested in sustainable software development. However, we are still in the early stages of industry-wide adoption, with relatively few development teams actively prioritising environmental sustainability in their work. In this talk we will briefly review the history of sustainable software development in academia and industry, review the current state of the art in measuring the environmental impact of a software system. Through the use of case studies, we will illustrate the significant effect that architectural decisions can have, positively or negatively, on a system's environmental sustainability, and explore some of the architectural techniques, tactics and patterns that we can use to estimate and reduce the environmental impact of our software systems.
Every software engineer and architect strives to design modular software systems and avoid complexity. Yet, frequently, the outcome is the opposite: what promised to be an elegant, well-thought architecture results in another big ball of mud. Why does this pattern persist and how do we learn not to repeat it? In this talk, we will explore the nature of modularity and complexity, including their surprising similarities.You will learn what forces drive software design towards modularity or complexity, and the effects these forces have on your organizational design. Understanding the relationship between social and technical design principles will make you more effective in architecting systems that thrive over time.
This hands-on workshop delivers a deep dive into the transformative world of software design powered of Large Language Models (LLMs) that redefine possibilities application of all kinds. Through four structured labs, participants will learn the art of prompt engineering and bridge the gap between human communication and machine understanding through the cutting-edge synergy of LLMs, vector databases, diverse AI technologies. The workshop promises to equip attendees with the knowledge to further explore how applications can be not only more intelligent and responsive but also tailored to the demands of modern users and businesses. Advance to the forefront of software development and learn all about AI powered software architecture, where practical knowledge and understandings unlock new dimensions of interactive and immersive experiences.
Building technological products ethically is not a matter of truth but of method. This workshop introduces the audience to the main concepts and methodologies used in AI ethics. It helps developers focus on the right questions, think critically about the implications of their products and identify ways to perform trade-offs when values are in tension.
In this workshop, we are going to learn to apply AI tools for Architecture-related activities. We will figure out how to improve architecture decision records, find the problems in the architecture diagrams and create solid documents. We also get to create Architecture Review artefacts using AI tools to write the outline for review documents, create diagrams with code and many more!
In this second part of the Building Softwares Responsibly 101 we will dive into possible ways of dealing with ethical dilemmas as a software architect. This interactive part will serve to understand and practice the “technical” solutions related to AI in the architecture decision making.