Four KubeCon Highlights from the Developer Experience Team

Posted by Joep Weijers on March 26, 2024

The Developer Experience team in front of the KubeCon + CloudNativeCon 2024 sign.

Last week, a delegation from the Platform Layer of our Development department attended the KubeCon+CloudNativeCon in Paris. The hundreds of sessions, loads of vendor booths and thousands of attendees provide great ways to catch up to the latest and greatest in the Cloud Native space. Here are four interesting topics that we learned about this KubeCon.

Read more

Azure learnings from the ISV Innovation Days at Microsoft

Posted by Joep Weijers on February 6, 2024

Screen showing "Welcome to the NL ISV innovation days"

To stay on top of the latest developments and best practices in Azure, TOPdesk joined the ISV Innovation Days at Microsoft. During two days our Cloud Architects and Operations team worked together with Microsoft’s Cloud Solution Architects to create proof of concepts of ways that TOPdesk can better benefit from Azure.

Read more

Why you should go to a conference in person

Posted by Joep Weijers on September 12, 2023

TOPdesk provides each developer a budget and time to broaden and deepen their knowledge. I recommend to invest such a budget into visiting a conference in person.

Why attend conferences?

TOPdesk SEE conference
TOPdesk SEE conference

In an industry that is changing as fast as the software industry, it is imperative to keep your knowledge up to date. A conference is one of the tools to stay informed on what is happening in the industry. Other examples include reading blogs, following industry leaders on Twitter, or listening to podcasts. A conference bundles a year worth of innovations and best practices and offers then in a one or multi day package.

Read more

Upgrading from JavaEE to JakartaEE using OpenRewrite

Posted by Joep Weijers on April 26, 2023

In our software, we have transitive dependencies on code from Java’s Enterprise Edition (JavaEE). The code is typically in javax.* packages. The owner of Java, Oracle, opensourced the JavaEE specification and has donated it to the Eclipse foundation. This however came with one very impacting condition: that the trademarked Java name is no longer used in the specifications. The specification rename to JakartaEE was pretty easy. Renaming all the packages to jakarta.* was not. This means that all code depending on JakartaEE has to be updated to use the new packages. Although some libraries manage to handle both javax.* and jakarta.* packages at the same time, you really only want to have only one of them. That also means that all libraries that you use have to be updated to use jakarta.* packages before you can successfully update your own code. Here is how we did it:

Read more

Solving the “artifact has been relocated” warnings in Maven 3.8.3

Posted by Joep Weijers on January 21, 2022

After updating to Maven 3.8.3, we have several warnings regarding the relocation of artifacts in our Maven builds. See for example the output of using Maven’s dependency plugin to analyze the dependency usage of an empty Maven project:

$ mvn dependency:analyze
[INFO] --- maven-dependency-plugin:2.8:analyze (default-cli) @ relocation-messages ---
[WARNING] The artifact xml-apis:xml-apis:jar:2.0.2 has been relocated to xml-apis:xml-apis:jar:1.0.b2
[INFO] No dependency problems found
Read more

Extracting a Heap Dump from a running OpenJ9 Java process in Kubernetes

Posted by Joep Weijers on November 26, 2020

At TOPdesk we run many Java services in our Service Architecture. We use the AdoptopenJDK OpenJ9 JRE as base image for our services running in Kubernetes. In this post we will find out how to get a Java Heap Dump from a Java application running on OpenJ9 JRE.

A Java Heap Dump is a snapshot of all the objects that are in memory in the JVM at a certain moment. Typically, a heap dump is created at the moment a Java application crashes because it runs out of memory. The heap dump can then show you what the application was doing in its dying moments, providing insight into potential memory leaks.

Read more

The technical aspect of public speaking: coming on stage

Posted by Joep Weijers on February 7, 2020

Your presentation starts in a few minutes. It is your time to shine. You plug in your laptop and nothing happens. No slides on the big screen behind you. An already stressful moment becomes even more stressed. You’re starting to lose your audience.

Nobody wants to be in this situation. Here are some tips to make getting on stage a smooth process, even if unexpected events occur.

Read more

The technical aspect of public speaking: preparing slides

Posted by Joep Weijers on January 29, 2020

Public speaking can be pretty stressful. All eyes will be on you and the last thing you wish to happen is a problem with your slides or microphone. A flawless presentation requires proper preparation. We have gathered some best practices, drawn from practical experience, to help you prepare your presentation. With these tips and tricks you will confidently walk on-stage, knowing that slides and sound will not hamper your presentation.

Read more

Preparing (and cheating on) an ignite talk

Posted by Joep Weijers on February 5, 2019

An igniting matchIn an ignite talk, a speaker has 20 slides to present a topic to you. The slides automatically advance every 15 seconds, so they have exactly 5 minutes to get their point across. Topics typically include quick pitches of software tools, methodologies, but fun topics are also game: I’ve seen a speed course Dutch, and a talk about coffee.
Read more

6 ways to make your alerting less boring (and more effective!)

Posted by Joep Weijers on November 8, 2018

Imagine you are a developer and you have just pushed a change that breaks the build. The Continuous Integration system, Jenkins in our case, sends you an email to notify you about this failure. BORING! Here are six examples that you can use to spice up your alerting and motivate your Development and Operations teams to react to alerts faster.
Read more

Pipelines: breaking the wall between Dev and Ops

Posted by Joep Weijers on October 11, 2017

At TOPdesk our Development department is working closely together with our Operations department. This collaboration started off a bit rough, but through several initiatives this was smoothed out. In this post I’d like to show how we used Deployment Pipelines to break down the wall between Development and Operations.

Read more

Put EVERYTHING in version control!

Posted by Joep Weijers on March 15, 2017

Screenshot of Revision HistoryThe whole software world is backed by Version Control Systems, providing history and traceability to code changes. But you don’t have to restrict its usage to code. Read on to learn how TOPdesk enjoys the benefits of a VCS by employing it in 5 alternative ways.

1. Documentation:

You want your documentation to live as close as possible to the code it describes. Putting your documentation right next to the code in a VCS allows you to keep both up to date. People who work with a certain revision are automatically presented with the relevant documentation for that version.
Read more