The only way to survive in a codebase is by refactoring continuously – we are all increasingly aware of this. But when working with massive complex code, it’s sometimes hard to see the design issues in the code. Being able to quickly identify code smells is a game changer, as all of them have a number of classic solutions. This talk takes you through some of the most dangerous code smells in the projects today: God Class, Duplicated Code vs Divergent Code, Temporal Coupling, Middle Man, Speculative Generality, Accumulator Loop, Comments, and more. For each of them we’ll discuss a typical workaround, plus several subtleties and variations. Join this live-coding session to taste and get addicted to refactoring.
Rather than being a presentation with a large power point, this is a practical demonstration. I’ll start with a large block of code, that I have been asked to work on and ‘ticket’ that describes what I have to do.
I’ll review the existing code, show how it needs to be refactored before I start working on it. I’ll then refactor the code in line with modern design principles showing how everything we do should be designed to make the code more testable and easy to change.
During the refactoring I will be explaining why object orientation is no longer relevant in Java, and has been de-facto replaced by functional programming.
While there are many alternatives for cloud-native CI/CD workflows in the community, selecting the right technology brings on a whole different challenge in the telecom industry.
Up-time in the high 9s for millions of subscribers of tier-1 operators – what does this level of stability and performance require?
Let’s discuss the challenges and solutions with focus on testing and code-coverage – all in the context of Java being the programming language behind most of the projects scheduled to benefit from these CI/CD workflows.
Most of the work as a programmer isn’t typing, it’s thinking. Faster thinking comes with experience, while faster typing can be developed quite early with the help of a good tool. In this session, you will get to see how to type faster using Intellij. Don’t blame your tool, just take the best out of it! #java #codefaster #intellij #beefficient
With an ever-increasing number of Java applications
moving to containers, the modern Java developer needs to know about
the emerging cloud-native technologies and standards. Of particular
importance is the growing area of Observability, which goes beyond
performance monitoring to provide a new deep understanding of complex software stacks.
In this talk, Ben Evans provides an overview of Observability that is
suitable for Java/JVM devs that may be new to the subject, or may have
only experienced traditional monitoring and APM tooling. By attending
this talk, developers should gain a better understanding of what
Observability means for their applications and what aspects of it they
should begin considering as part of their application roadmaps.
An introduction to the cache concepts, the support offered with Spring Cache and hands-on examples.
One of the most common approaches when designing loosely-coupled (micro)service architectures is using a database per service. But given the fact that these services are communicating asynchronously, how can we make sure that the data remains consistent between all our systems?
Change Data Capture gives us a solution to this challenge: it allows us to react to database changes (insert/update/delete operations) of interest and propagate specific events to our event bus.
During this keynote, we will be addressing the following topics:
• how to implement this pattern using open-source tools;
• advantages and disadvantages of such an approach;
• different ways to further improve our solution;
• other areas where CDC might prove useful.
Let’s figure out what Project Loom is for the Java Platform and how it can help your code run faster on the same hardware – sounds like a free lunch isn’t it?
Unit / Integration / GUI – an obvious association when anybody mentions a test triangle. Every ISTQB student can drill down these elements when woken up in the middle of the night. The thing is: is this decomposition still relevant? Does it even work when you run a highly distributed, microservice environment? Does this make any sense in a microservices world?.
During this session we will walk through different test goals, a different hypothesis we want to assert during testing, evaluate tools that can support us and see these tools in action: on a “real” java based microservices. So expect some critical thinking and a walk-through a set of tools and methods on how to use unit and integration tests effectively. But first and foremost, we will look beyond that and look when to initialise application container, how to approach validation of the service’s contracts and finally is it worth to mimic a part of production environment with test containers.
Meet Mambu: the only true SaaS banking platform leading the change in the world of banking. Some call us “experts at collaborating globally”, others know us as a close-knit team capable of solving big problems. One thing is for sure, what brings us together is drive, confidence and a collaborative spirit. We are a dedicated team of +500 professionals spanning 6 continents, building the core part of a major shift in the future and evolution of banking. Our leading cloud native solution is the driving force behind our customers as they grow, scale and transform to meet evolving digital demands. Our mission? Make modern financial services accessible to everyone.
We constantly adapt to the modern ways of working. If your professional development is a key focus, you will be glad to hear that we are sharp technology adopters. One of our colleagues’ favorite job perks is not getting bored even after 5 years with us.
We are a market leader in security analytics software that empowers governments and enterprises with Actionable Intelligence for a safer world.
Cognizant Romania is one of Eastern Europe’s largest Software Product Engineering delivery networks. We serve global clients in several industries, including Banking & Financial Services, Insurance, Healthcare & Life Sciences, Communication Media & Technology, and Retail & MLEU (manufacturing, logistics, energy & utilities).
Our product thinking mindset defines, builds, and launches new, experience-centered software products that reinvent business.
To learn more about Cognizant Romania and explore career opportunities visit our website (https://www.cognizant.com/ro/en)!
HCLTech is a global technology company, home to more than 223,400 people across 60 countries, delivering industry-leading capabilities centered around digital, engineering, cloud and AI, powered by a broad portfolio of technology services and products. We work with clients across all major verticals, providing industry solutions for Financial Services, Manufacturing, Life Sciences and Healthcare, Technology and Services, Telecom and Media, Retail and CPG, and Public Services. Consolidated revenues as of 12 months ending June 2023 totaled $12.8 billion. To learn how we can supercharge progress for you, visit hcltech.com.
Bosch Service Solutions is a leading provider for Business Process Outsourcing. We are solution designers offering complex technical and software services to the Bosch Group and to external customers in the areas of automotive/ mobility, sensor technology and Internet of Things. We design and provide best-in-class services, such as: software-based solutions, AI and automation, project management, customer experience. Join a team with more than 17 years of experience providing exceptional services as our newest AI Consultant, DevOps engineer, software developer or business process modeler.
Work #LikeABosch
We’ve been present in Romania for more than 10 years and we are one of the main players on the IT&C local market. Our Luxoft employees in Romania are involved in cutting-edge projects for key industries such as automotive, finance and digital enterprise. And we are always looking for brilliant minds to join our team.
Architects often describe their work in diagrams and other visual artifacts, but how can they test to see if the implementation is aligned with the architecture? Architects are expected to not only design new systems, but continuously govern what they’ve already built and ensure that their architecture is aligned with the technical and business environment. This session uncovers a new way to think about architecture—as code. Architecture as Code is a new concept that allows you to describe an architecture through executable source code, therefore allowing you to govern the architecture as well. In this session we discuss numerous intersections of software architecture with all the tendrils of the organization, including implementation, infrastructure, engineering practices, team topologies, data topologies, systems integration, the enterprise, the business environment, and generative AI, defining each intersection using architecture-as-code to verify that the architecture is properly aligned.
A common saying by software architects is “that’s an implementation detail”. All too often we treat software architecture and implementation as two separate things, where implementation is something that happens once a software architecture is defined. In fact, it’s the other way around: software architecture should be viewed as a first draft, where implementation reveals more details and refinements. In this session Mark Richards discusses the intersection of architecture and implementation and how the two must be in constant alignment to achieve success, demonstrating along the way why architecture is a critical element of any system. Through real-world examples, he shows how implementation can easily get out of alignment with the architecture, causing the system to fail to achieve its desired goals. He then shows some techniques and tools to help ensure the alignment between architecture and implementation.
Production agentic AI needs more than agents.
It needs structure. It needs boring stuff: observability, modularity, data profiling, and monitoring.
Otherwise, it becomes chaos with a personality, fancy demos that fail silently in production.
In this talk, we’ll show you how old-school software and MLOps principles are the secret weapon for building real, scalable, and reliable agentic systems.
No hype. No buzzword bingo.
Just field-tested thinking and hard-learned lessons from production AI deployments.
What you’ll take home:
* A framework to cut through the noise and think clearly about agentic architecture
* How to debug, observe, and monitor agents like real software systems
* How to avoid the trap of shiny tools and focus on system design that actually works
* A checklist for building agentic AI that doesn’t crash after your first user touches it
In today’s fast-paced, global market, companies must be agile, responsive, and interconnected. A connected Product Lifecycle Management (PLM) environment is no longer a luxury but a necessity. This transformation is powered by advanced technologies such as cloud computing, the Internet of Things (IoT), Artificial Intelligence/Machine Learning (AI/ML), digital twins, and digital threads.
These technologies offer unprecedented opportunities to enhance efficiency, collaboration, and innovation across the entire product lifecycle. However, they also present significant challenges, particularly in terms of system integration and data management. Properly managed, these tools can revolutionize your operations, breaking down data silos and streamlining processes from product conception to retirement.
By integrating these digital tools, experts can transform their PLM systems into robust, dynamic platforms that not only meet but exceed the demands of the digital age.
Join us in exploring how these technologies can revolutionize your PLM strategy and drive a company’s success.
When teams adopt Microservices with an understanding of the structure of the architecture, but not of how to get all the pieces to communicate, it is all too easy to accidentally create a distributed Big Ball of Mud. Neal introduces a new measure, the architecture quantum, to help analyze and identify communication boundaries and define static and dynamic coupling. Then, the session provides tools – integrators and disintegrators – to help architects iterate towards the correct granularity for their Microservices for static coupling. Next, for dynamic coupling, architects must understand when to choose synchronous versus asynchronous communication between services, consistency, and coordination to ultimately analyze transactional sagas; this talk describes eight possible sagas and when each is applicable.
Leadership Coach and author Andrei Postolache talks about the attitudes, behaviours and skills that high performance Individual Contributors and Leaders need to succeed in today’s world. Based on his work with hundreds of teams and individuals, he narrows down the essential organizational, communicational and inter-relational skills that truly make the difference.
During this session, you’ll discover how GenAI is transforming Quality Engineering efficiently and cost-effectively. From summarizing specifications to designing manual test cases, GenAI streamlines early QA activities. It also revolutionizes automation code and test framework architecture.
Join us to see how GenAI makes Quality Engineering faster and easier!
Coding has always been more than just writing lines of code; it’s about solving puzzles, creating solutions, and adapting to challenges. But what happens when AI begins to tackle those puzzles as well? How will your role evolve in this new landscape?
As AI integrates deeper into our toolsets and workflows, the real revolution isn’t about simply learning new technologies. It’s about fundamentally changing the way we think, how we architect solutions, and our entire approach to software development. This talk cuts through the AI hype and zeroes in on your growth as a developer.
Discover practical strategies to leverage AI beyond mere automation, unlock untapped creativity, strategic thinking, and problem-solving. It’s time to not just write code, but to reforge it, leveraging AI as a powerful ally in your journey towards mastery.
As our industry has evolved through various paradigm shifts, certain fundamental patterns continually emerge despite changing technologies and methodologies. In this keynote, Michael Feathers examines why we repeatedly rediscover similar solutions across decades and propose that there may be one deeper universal principle governing effective software design. Though this singular principle might appear to be an over-generalization, it provides surprisingly good guidance across contexts. Drawing connections between biological scaling laws, human cognitive limitations, and software architecture patterns, I challenge you to look beyond surface-level best practices to understand the underlying forces that shape successful systems. This perspective—discovering the fundamental principle that underlies all principles—could transform how we approach software design challenges at any scale, helping us make more intentional design decisions that withstand the test of time.