loading
Loading...
ink
Lennert Soffers

People describe me as enthusiastic, motivated, hardworking and precise. I am a full stack software developer with a focus on Java backends. In my free time, I try to keep myself up to date with the latest technologies and develop diverse projects.

Occasionally I like to take part in hackathons together with friends and I’m pleased to say I already won a few. I am always looking for opportunities where I can learn new concepts and gain work experience.

Furthermore, I'm not afraid of undertaking challenges. A great example was going on Erasmus to Finland for half a year. Here, I enhanced my social skills and my English.

Before going to Finland, I was a leader at my local Scouts for three years. Here, I helped organizing camps and coming up with games. In retrospect, it was fun, but also useful. I learned to be flexible, problem-solving and working in team.

finland

mushroom
mushroom

Technologies

  • Three.js
  • Typescript
  • Blender
  • GLSL

This portfolio website was also a huge undertaking. Around January 2023, I got really interested in WebGL and discovering the power of Three.js. I took the ‘three-js-journey’ course by Bruno Simon, in which I went from someone with a passion for 3d on the web, to someone who was able to create whole 3d experiences.

For my portfolio website, I want to stand out from other developers, and why not broaden the definition of a ‘website’ for this. The real challenge came in trying to write a very custom application, without the use of any Three.js extension libraries. It was really hard for parts like moving the camera or placing objects in the world. I went even more in-depth and wrote custom shaders in GLSL to really customize the experience.

I learned how to set up Typescript without a framework, used WebPack as a development server and bundler and learned a lot about Typescript in general. Besides that, all the assets you can see in the website are completely self-made in Blender which is another skill I now have.

mushroom

Technologies

  • Android
  • Java
  • SQLite

Already since the start of my programming career, I’m very interested in understanding the magic behind the frameworks I use. I especially got interested in Java annotations and how frameworks such as Spring Boot or JPA do with them.

This is when I decided to create a project about annotations and what they can be used for, with a deep dive into annotation processing. In this project, I looked at the annotation processor of Room, a simple persistence API for Android development. After understanding how this worked, I recreated this library from scratch that generates persistence code by just adding specific annotations to your entity models.

For me, this was one of the most important projects, because I really learned a lot about using frameworks in Java and what exactly they do behind the scenes.

pokemon city
pokemon city

Technologies

  • Spring Boot (+ security)
  • React
  • React Native

During my exchange in Finland, I took a mobile, web and server programming course. For all three of these, we could make an optional project. Since we were allowed to combine the projects, it was the perfect opportunity for me to create a larger scale project.

I created a city builder browser game written in React and Spring Boot secured with JWT. Besides that, I made a mobile application with React Native, where the user could see his/her stats.

Bringing these three parts together needed the necessary project planning and really maintainable code. This project also has extensive documentation on GitHub.

I’m really proud that I was able to pull this off and create a full blown browser game. I learned a lot during the planning and development process. The most interesting parts for me were game design principles, React optimization and Spring Security.

Technologies

  • Laravel
  • PHP
  • Javascript
reminder

For the course "PHP Project" we were asked to build a Laravel application of an agenda for people with dementia. The functionalities that were required, were specified by a fictitious customer. First, we translated her story into a Use Case Diagram and create a data model from it. After that, we did the actual programming of the application in Laravel.

I was mainly involved in building the agenda itself and the creation, editing and deletion of tasks. The biggest challenge was to do this without a library.

Teamwork was at the heart of this project, which I really experienced as an added value. The team could work very individually, but also help each other out when someone was stuck. I also saw the importance of multiple solutions for certain challenges, where you can decide as a team which is the best.

From this project I learned a lot. We went through the design process of the application, and then we coded it and pitched it for the customer. I try to add value and see opportunities in discussing with others.

flower
pokeplayer
pokeplayer

Technologies

  • C#
  • WPF
  • Dapper

As our final project of the C# course, we had to create a very basic WPF application. This application had to fetch data from an API, and also use an SQLite database with Dapper as ORM. Furthermore, we needed to use a CI/CD pipeline to publish the application to GitHub.

I took this assignment to the next level by challenging myself with building a game in WPF. PokePlayer was my solution, this is a game that offers the same functionality as the old Pokemon games on the Nintendo DS. I made use of the PokeAPI to fetch various data about the Pokémon in the game.

It was my first time using an ORM. It’s easy to use, yes, but it brought up the question in me: “How does it work?” This question got answered in a later project of mine (see annotation processor).

win
ink
HTF
HTF

Technologies

  • Drupal
  • PHP
  • Virtualbox

A classmate and I decided to participate as a team in the Drupal challenge of Hack the Future 2021. As a kick-start for the assignment, we already received the front-end for a Cluedo game. Our goal: create a backend where we finish as many milestones as possible in one afternoon

Working with Drupal was a very good introduction to the topic of CMSs. I didn’t know what they were and what they were used for, but now I see how they can be used to speed up the creation process of web apps.

mushroom

Technologies

  • Cordova (Javascript)
  • CSS (+ Bootstrap)
  • Google Speech

In the Cordova course, we had to create a mobile application as an individual project. The application had to communicate with an API and use some Cordova Plugins. It was the perfect opportunity as I was thinking of creating a planning app as a personal project already.

Plennert is an application that allows you to schedule deadlines and set reminders. Categorizing and filtering deadlines was also a priority. Another cool feature was the use of Google’s speech recognition plugin for Cordova, to operate the application with your voice. The backend is created with Spring Boot.

Cordova was the first cross-platform mobile technology I used. It was interesting to be able to write code and deploy it to multiple devices.

Even while the project wasn’t focussed on it, I learned about dependency management and how to use it. This turned out to be one of the most important skills of developers nowadays.

flower

Technologies

  • Java
  • Spigot Api
elementalstones_logo

Knowing that the game ‘Minecraft’ is written in Java, I jumped into a little side project with a very basic understanding of the language. It turned out to become one of my biggest and certainly longest running project so far.

While Minecraft in itself is fun, it’s even better to hook your custom features in the game. This is exactly what a plugin does. The goal of my plugin, titled Elemental Stones, is to add a little bit of spice to the game with magical stones. These stones can be used against other players, or just to help yourself out in dangerous situations.

In this project, I learned an important topic: code maintainability. This, I learned the hard way with a lot of rewrites and optimizations. Also testing became significantly harder due to the size. “Let somebody else test your software” is a great lesson I will remember forever.

With great features comes great documentation… The project became really big, containing lots of features. This also meant that a wiki page for players was necessary. I really focussed on great communication to the player base and supporting them with new updates and bug fixes. Continuously improving the plugin and updating it really paid off in the end, the plugin has over 300 downloads on Spigot.mc!

win
ink
ypto
ypto

Technologies

  • PowerApps
  • Powerpoint

In October 2021, I went to Brussels with a team of 5 students to participate in the hackathon organized by Microsoft and Ypto. They challenged us with the following problem: “How can we inventorise the components of a train wagon efficiently, while it is under maintenance?”.

We came up with an inventorisation application, with which mechanics can easily scan each component and enter its status (if it needs reparation, replacement…). Since we would also keep track of the circumstances in which components break, we can act preventive on future problems. With this solution we won the main prize of the hackathon, an exclusive tour of the Microsoft headquarters in Paris.

My contribution was brainstorming with the team and creating the preview application to show the audience. The thing I recollect the most is how important it is to give a good and clear presentation. Your solution can be amazing on its own, but being able to convince others of this.

win
mushroom
mushroom
AR
AR

Technologies

  • Python Flask
  • Javascript

During the first year's project week, we were challenged to create 3 AR implementations: a business card for our team, a moving AR model and an AR treasure hunt. While my team focussed on the first two, I created the treasure hunt.

For this project we worked together with ZappWorks, a software tool in which you can easily write an application and link it to an AR experience. I wrote the backend for this treasure hunt in Python Flask. It became an interactive treasure hunt where attention was also paid to the visual aspect. With this solution, we won the project week's AR challenge!

This was the first project I did, where I took more responsibility as the team leader in a team of 4. I learned to check up with team members about the statuses of their individual tasks, and also tried to divide the work equally.

From February 27th to May 26th, 2023, I was an intern at Lykios, a Java consultancy. I'm extremely grateful to Nico and Philippe, my internship mentors, for their consistent support and direction. Their knowledge and commitment have made my internship a rewarding and educative experience.

On the next pages, you will discover more about my internship and find the internship documents.

I developed Lykiosbay, a web-based auction platform. It is a Java Spring-based web application with a decoupled front-end in React offering a user-friendly interface. My primary responsibility was to develop the Minimum Viable Product (MVP) for Lykiosbay, which enables employees to place bids on products in auctions. lykiosbay

It has been nothing short of incredible working on this project. I've been able to give testing my full attention in order to ensure that the application is operating at its best. Furthermore, I became quite familiar with the Scrum workflow by taking part in its well-known meetings.

Working on Lykiosbay gave me the chance to experiment with cutting-edge technologies like Java 17, React 18, and RTK Query. I was able to work with experts who helped me through the project and gave me plenty of space to come up with my own answers. This has helped me enhance my skills and taught me a lot about the best practices in the field.

The project plan is a document that was used as a guide during the execution of my internship project. It contains information about Lykios, the project and its business case, the planning of the project, a risk analysis and a plan of reporting.

Click the icon below to read it.

The user manual is a document I created for Lykios. It guides users and admins trough the usage of Lykiosbay. It is completed with demos of all the functionalities. The goto document to get a preview of Lykiosbay.

Click the icon below to read it.

The technical manual covers the technical aspects in depth and gives information on how Lykiosbay is built up. This document is the goto for new developers on Lykiosbay.

Click the icon below to read it.

In the reflection, I go in depth about my personal experiences Lykios as an Intern. You will also find more information about the current state and the future of Lykiosbay.

Click the icon below to read it.