Most Active Speaker

Andres Almiray

Andres Almiray

Seasoned Sourceror

Basel, Switzerland

Andres is a Java/Groovy developer and a Java Champion with more than 2 decades of experience in software design and development. He has been involved in web and desktop application development since the early days of Java. Andres is a true believer in open source and has participated on popular projects like Groovy, Griffon, and DbUnit, as well as starting his own projects. Founding member of the Griffon framework and Hackergarten community event. Author of JReleaser. You can find him on twitter too as @aalmiray. He likes to spend time with his beloved wife, Ixchel, when not hacking around.

Awards

Area of Expertise

  • Information & Communications Technology

Topics

  • java
  • build tools
  • Core Java / Java SE
  • javafx
  • swing
  • maven
  • gradle
  • Spring
  • open source

Setting up data driven tests with Java tools

Everyone knows that performing tests during development is the Right Thing to do. But how do we test data driven test cases? How can we ensure clean environments, reproducible outcomes, setting the database with the correct state, ensuring results match expectations, and so on? The Java ecosystem offers several options that we can leverage to answer these questions. In this session we'll cover how to configure data driven testcases with Testcontainers, setup database state and verify results with DbUnit and Database Rider, even test PL/SQL statements.

Maven in depth: beyond the basics

Apache Maven is an ubiquitous build tool in the Java ecosystem, some even claim it’s the defacto standard build tool. Configuring Maven is deceptively simple, after all it’s just a matter of writing XML, isn’t it? Things look differently when the rubber meets the road. One must know the intricacies of the build lifecycle; how plugins, goals (mojos), and phases come together; rules for dependency resolution; configuration inheritance between parent – child POM files; enhancing the build with profiles; and more. Fortunately we’ll cover all these topics in this workshop. We’ll begin from scratch and move to advanced topics thus by the end of the session you should feel quite comfortable working with Maven.

Going beyond ORMs

For some time now JSON has been the preferred format for exchanging data between client (browsers) and servers. Often times developers had to configure data marshalling options to transform data into business objects, into persistent data, and back again. Perhaps it would make more sense to use JSON across the business pipeline without sacrificing performance nor missing benefits from the relational data world. this is what JSON Duality Views propose. In this session we'll explore options to enhance data driven applications written with Spring Boot, Quarkus, and Micronaut, enhancing your developer experience and increasing customer satisfaction.

Deploying to production with confidence

How many times have we asked ourselves if it is a good idea to release to production on a Friday afternoon? Is the production software sufficiently robust and/or resilient to vulnerabilities? How can we detect and correct security problems in production? Better yet, how can we prevent such problems or attacks? In recent years the topic Software Supply Chain Security has taken on greater importance. Concepts like SBOMs, SLSA, Reproducible Builds, CI/CD Security are widely discussed to answer the previously posited questions. In this session we will discover what are these concepts and how you may apply them to your own projects.

Dealing with JSON in the relational world

For a long time the first thing that came to mind when mentioning databases was relational data and SQL. This changed when the NoSQL wave came and an explosion of several formats for storing data came to light, with JSON becoming a favorite because it gain traction as the preferred format for interchanging data between clients (mobile & browsers) and servers. Both JSON and relational formats have their advantages and disadvantages, we'll have to pick one when implementing a given solution. But, this is not a zero-sum game. What if we're able to use both formats inside the same database engine? In this session we'll explore different options that relational databases offer for dealing with JSON data.

Lights, Camera, GitHub Actions!

It's been said that automating oneself out of a job is one of the best qualities of a software engineer. When it comes to building and releasing software that statement becomes more relevant than ever. GitHub is a popular choice for hosting code and since a few years ago offers a native CI/CD solution: GitHub Actions. They are a powerful tool that's worth adding to your development toolbox but getting started might be a bit daunting. In this session we'll cover the basics of working with GitHub Actions workflows and their structure, moving into more advanced topics such as inputs/outputs, job dependencies, job matrices, reusable workflows, composite actions, and secrets.

This session is example driven thus plenty of snippets will be shown and explained.
- a basic GH worflow (build a Maven project)
- show steps inputs/outputs
- show dependencies between jobs
- configure a job matrix for Linux, windows, Osx
- demonstrate secrets and variables
- demonstrate reusable workflows
- build a custom GH Action with composite (Java based)

Accessing Data in the Microservices World

Microservices are everywhere. There is more than one way to implement and deploy them, but in the end what we expect of them is to move data from one place to another databases are typically found at either end of a microservice execution. This session showcases access to a cloud and local database with Spring Boot, Quarkus, Micronaut, and Helidon. We'll compare approaches and similarities between these frameworks.

What I Wish I Knew About Maven Years Ago

Apache Maven is seen by many developers as the defacto build tool in the Java space. Since its early days back in April 2002, Maven has helped developers build projects and assemble artifacts. On the surface not much appears to have changed in the design, structure, and build file syntax, but in reality there are quite a good number of features that have been added through the years that make Maven a powerhouse. Come to this talk if you want to learn more about these hidden nuggets and make the most of your Maven builds.

The Impact of Sci-Fi in Technology

Since the dawn of time humans have relied on technology to advance their civilizations. In the last 300 years our reliance on technology has increased exponentially from horse-drawn power, to vapor power, to nuclear; all driven by yet-to-be sentient machines. We call our current era "The Digital Age". Some of the technology we enjoy nowadays seemed like fantasy tales some years back, presented in cheesy and/or utopian SciFi shows. Take the smartphone that many take for granted, it may very well be the foundation of the tricorder of the future, except the tricorder came to existence in the 70s. What about those tactile holograms we enjoy watching in superhero movies? Or personal cloacking devices? Robo-companions?

In this session I'll show how SciFi has changed our perception of tech and our nudged our curiosity to create new tech.

Qapla'!

Releasing Fast, Easy and Consistently

When a project has reached that stage when it’s a good idea to post binaries, new questions arise such as where should they be posted? How do we make it easier for users to install and discover binaries? Where should releases be shared? Most importantly, can it be automated? There are so many requirements and considerations depending on the distribution channels, wouldn't it be great to have a tool to make it easier? JReleaser is a tool that provides answers to these questions and more.. It may be used to create GiHub/GitLab/Gitea releases and publish binaries that can be consumed from different distribution channels such as Homebrew, Snap, Scoop, and more. Once published, the release can be automatically announced on Twitter, Slack, Gitter, Discord, and other communication channels.

Oracle Database for Java Developers

Oracle Database and Open Source are two subjects that are not seen together that often. However, it would surprise you the number of projects associated with the Oracle Database ecosystem that are directly available to Java developers at no cost or in Open Source form. Some of these projects are lead and sponsored by Oracle itself, others are lead by third parties and/or popular integrators. You'll find amongst these projects options for database connectivity (sync & async), ORMs, testing, migration tools, and more. These session offers a look at these projects.

Maven from A to Z

Apache Maven is an ubiquitous build tool in the Java ecosystem, some even claim it's the defacto standard build tool. Configuring Maven is deceptively simple, after all it's just a matter of writing XML, isn't it? Things look differently when the rubber meets the road. One must know the intricacies of the build lifecycle; how plugins, goals (mojos), and phases come together; rules for dependency resolution; configuration inheritance between parent - child POM files; enhancing the build with profiles; and more.

Fortunately we'll cover all these topics in this workshop. We'll begin from scratch and move to advanced topics thus by the end of the session you should feel quite comfortable working with Maven.

Maven Puzzlers

Apache Maven is an ubiquitous build tool in the Java ecosystem, some even claim it's the defacto standard build tool. Configuring Maven is deceptively simple, after all it's just a matter of writing XML, isn't it? Things look differently when the rubber meets the road. One must know the intricacies of the build lifecycle; how plugins, goals (mojos), and phases come together; rules for dependency resolution; configuration inheritance between parent - child POM files; enhancing the build with profiles; and more. These features may trip you over if the rules that govern them are unclear. We'll present a series of scenarios to test your knowledge on Maven rules. we guarantee you'll leave this session with a few bits of new information and better understanding of the Maven build tool.

Mixing JSON Duality Views and Spring Boot

For some time now JSON has been the preferred format for exchanging data between client (browsers) and servers. Often times developers had to configure data marshalling options to transform data into business objects, into persistent data, and back again. Perhaps it would make more sense to use JSON across the business pipeline without sacrificing performance nor missing benefits from the relational data world. this is what JSON Duality Views propose. Spring Boot is the most popular Java framework for building web applications and microservices. In this session we'll explore options to mix this technologies together, enhancing your developer experience and increasing customer satisfaction.

All You Wanted to Know About Contributing to OpenSource

OpenSource has changed how we develop software. Once seen as a rebellious activity it's now embraced by organizations with great success. A great way to level up your programming skills it to code more. Another way is to read others’ code. OpenSource fosters collaboration and communication, allowing you to expand your reach to a wide variety of code styles, viewpoints, use cases, and tools. In this session we'll cover several aspects of OpenSource, from getting involved, setting up a toolchain, starting a community, maintenance and governance, and more.

PosaDev 2023

December 2023 Guadalajara, Mexico

J-Fall 2023

November 2023 Ede, The Netherlands

BaselOne 2023

October 2023 Basel, Switzerland

JCON EUROPE 2023

June 2023 Köln, Germany

JNation 2023

June 2023 Coimbra, Portugal

swampUP 2022 City Tour - Munich

October 2022 Munich, Germany

JConf.dev 2022

September 2022 Chicago, Illinois, United States

swampUP 2022

May 2022 Carlsbad, California, United States

J-Fall 2021

November 2021 Ede, The Netherlands

JCON 2021

October 2021

JNation 2021

June 2021

Andres Almiray

Seasoned Sourceror

Basel, Switzerland