

November 30, 2023 marked a highly anticipated day for numerous ACA employees. Because on Ship-IT Day, nine teams of ACA team members, whether or not supplemented with customer experts, delved into creating inventive solutions for customer challenges or for ACA Group itself. The hackathon proved to be both inspiring and productive, with at the end a deserved winner!
The atmosphere in the ACA office in Hasselt was sizzling right from the early start. Eight out of the nine project teams were stationed here. During the coffee cake breakfast, you immediately felt that it was going to be an extraordinary day. There was a palpable sense of excitement among the project team members, as well as a desire to tackle the complex challenges ahead.

9 innovative projects for internal and external challenges 🚀
After breakfast, the eight project teams swarmed to their working habitat for the day. The ninth team competed in the ACA office in Leuven. We list the teams here:
- Chatbot & course integration in customer portal
- System integration tests in a CI/CD pipeline
- Onboarding portal/platform including gamification
- Automatic dubbing, transcription and summary of conversations
- publiq film offering data import via ML
- SMOCS, Low level mock management system
- Composable data processing architecture
- Virtual employees
- Automated invoicing
If you want to know more about the scope of the different project teams, read our first blog article Ship-IT Day 2023: all projects at a glance.
Sensing the atmosphere in the teams
Right before noon, we wondered how the teams had started and how their work was evolving. And so we went to take a quick look... 👀
1. Chatbot & course integration in customer portal
“After a short kick-off meeting with the customer, we divided the tasks and got to work straight away,” says Bernd Van Velsen. “The atmosphere is great and at the end of the day, we hope to present a result that will inspire the customer. In the best case, we will soon be able to use AI tools in a real customer project with the aim of making more optimal use of the customer's many data.”

“The Ship-IT Day is an annual tradition that I like to participate in,” says Bernd. “Not only because it is great to collaborate with colleagues from other departments, but also because it is super educational.”
2. System integration tests in a CI/CD pipeline
“We want to demonstrate that we can perform click tests in the frontend in an existing environment and verify whether everything works together properly,” says Stef Noten. “We can currently run the necessary tests locally, so we are good on schedule. The next step is to also make this work in our build pipeline. At the end of the day, we hope we will be able to run the tests either manually or scheduled on the latest version of the backend and frontend.”
3. Onboarding portal/platform including gamification
The members of this project team all started at ACA fairly recently. And that is exactly what brought them together, because their goal was to develop a platform that makes the onboarding process for new employees more efficient and fun.

Dieter Vennekens shared his enthusiasm with us, stating, "We kicked off with a brainstorming session to define the platform's requirements and goals. Subsequently, we reviewed these with the key users to ensure the final product aligns with their expectations. Our aim is to establish the basic structure before lunch, allowing us to focus on development and styling intensively in the afternoon. By the day's end, our objective is to unveil a functional prototype. This project serves as an opportunity to showcase the capabilities of Low-Code.”
4. Automatic dubbing, transcription and summary of conversations
Upon entering their meeting room, we found the project team engrossed in their work, and Katrien Gistelinck provided a concise explanation for their business. "Our project is essentially divided into two aspects. Firstly, we aim to develop an automatic transcription and summary of a conversation. Concurrently, we are working on the live dubbing of a conversation, although we're uncertain about the feasibility of the latter within the day. It might be a tad ambitious, but we are determined to give it a try."
She continued, "This morning, our focus was on defining the user flow and selecting the tools we'll utilize. Currently, multiple tasks are progressing simultaneously, addressing both the UI and backend components."
5. Publiq film offering data import via ML
Comprising six publiq employees and three from ACA, this team engaged in an introductory round followed by a discussion of the project approach at the whiteboard. They then allocated tasks among themselves.
Peter Jans mentioned, "Everyone is diligently working on their assigned tasks, and we maintain continuous communication. The atmosphere is positive, and we even took a group photo! Collaborating with the customer on a solution to a specific challenge for an entire day is energizing."

"At the close of the day, our objective is to present a functional demo showcasing the AI and ML (Machine Learning) processing of an email attachment, followed by the upload of the data to the UIT database. The outcome should be accessible on uitinvlaanderen.be." Peter adds optimistically, "We're aiming for the win." That's the spirit, Peter!
6. SMOCS, Low level mock management system
Upon our arrival, the SMOCS team was deeply engrossed in their discussions, making us hesitant to interrupt. Eventually, they graciously took the time to address our questions, and the atmosphere was undoubtedly positive.
"We initiated the process with a brief brainstorming session at the whiteboard. After establishing our priorities, we allocated tasks accordingly. Currently, we are on track with our schedule: the design phase is largely completed, and substantial progress has been made with the API. We conduct a status check every hour, making adjustments as needed," they shared.

"By the end of the day, our aim is to showcase an initial version of SMOCS, complete with a dashboard offering a comprehensive overview of the sent requests along with associated responses that we can adjust. Additionally, we have high hopes that the customized response will also show up in the end-user application."
7. Composable data processing architecture
This project team aims to establish a basic architecture applicable to similar projects often centered around data collection and processing. Currently, customers typically start projects from scratch, while many building blocks could be reused via platform engineering and composable data.
“Although time flies very quickly, we have already collected a lot of good ideas,” says Christopher Scheerlinck. “What do we want to present later? A very complex scheme that no one understands (laughs). No, we aspire to showcase our concepts for realizing a reusable architecture, which we can later pitch to the customer. Given that we can't provide a demo akin to other teams, we've already come to terms with the likelihood of securing second place!"
8. Virtual employees
This team may have been the smallest of them all, but a lot of work had already been done just before noon. “This morning we first had a short meeting with the customer to discuss their expectations,” Remco Goyvaerts explains. “We then identified the priority tasks and both of us quickly got to work. The goal is to develop a virtual colleague who can be fed with new information based on AI and ML. This virtual colleague can help new employees find certain information without having to disturb other employees. I am sure that we will be able to show something beautiful, so at the moment the stress is well under control.”
Chatbot technology is becoming more and more popular. Remco sees this Ship-IT project as the ideal opportunity to learn more about applications with long-term memory. “The Ship-It Day is a fantastic initiative,” says Remco. “It's wonderful to have the opportunity to break away from the routine work structure and explore innovative ideas.”
9. Automated invoicing
The client involved in this project handles 50,000 invoices annually in various languages. The objective is to extract accurate information from these invoices, translate it into the appropriate language, and convert it into a format easily manageable for the customer.
“Although we started quite late, we have already made great progress,” notes Bram Meerten. "We can already send the invoice to Azure, which extracts the necessary data reasonably well. Subsequently, we transmit that data to ChatGPT, yielding great results. Our focus now is on visualizing it in a frontend. The next phase involves implementing additional checks and solutions for line information that isn't processed correctly."
Bram expresses enthusiasm for the Ship-IT Day concept, stating, "It's fun to start from scratch in the morning and present a functional solution at the end of the day. While it may not be finished to perfection, it will certainly be a nice prototype."
And the winner is …. 🏆
At 5 p.m., the moment had arrived...
Each team had the opportunity to showcase their accomplishments in a 5-minute pitch, followed by a voting session where everyone present could choose their favorite. All teams successfully presented a functional prototype addressing their customer's challenges.
While the SMOCS team may not have managed to visualize their solution, they introduced additional business ideas with the SMOCintosh and the SMOCS-to-go food concept. However, these ideas fell just short of securing victory.
In a thrilling final showdown, the team working on the onboarding platform for ACA came out as the winners! Under the name NACA (New at ACA), they presented an impressive prototype of the onboarding platform, where employees gradually build a rocket while progressing through their onboarding journey. Not only was the functionality noteworthy, but the user interface also received high praise.
Congratulations to the well-deserving winners! Enjoy your shopping and dinner vouchers. 🤩

See you next year!


What others have also read


At ACA, Ship-IT Days are no-nonsense innovation days.
Read more

Staying current with the latest trends and best practices is crucial in the rapidly evolving world of software development. Innovative approaches like EventSourcing and CQRS can enable developers to build flexible, scalable, and secure systems. At Domain-Driven Design (DDD) Europe 2022 , Paolo Banfi delivered an enlightening talk on these two techniques. What is EventSourcing? EventSourcing is an innovative approach to data storage that prioritises the historical context of an object. Rather than just capturing the present state of an object, EventSourcing stores all the events that led to that state. Creating a well-designed event model is critical when implementing EventSourcing. The event model defines the events that will be stored and how they will be structured. Careful planning of the event model is crucial because it affects the ease of data analysis. Modifying the event model after implementation can be tough, so it's important to get it right from the beginning. What is CQRS CQRS (Command Query Responsibility Segregation) is a technique that separates read and write operations in a system to improve efficiency and understandability. In a traditional architecture, an application typically interacts with a database using a single interface. However, CQRS separates the read and write operations, each of which is handled by different components. Combining EventSourcing and CQRS One of the advantages of combining EventSourcing and CQRS is that it facilitates change tracking and data auditing. By keeping track of all the events that led to a particular state, it's easier to track changes over time. This can be particularly useful for applications that require auditing or regulation. Moreover, separating read and write operations in this way provides several benefits. Firstly, it optimises the system by reducing contention and improving scalability. Secondly, it simplifies the system by isolating the concerns of each side. Finally, it enhances the security of sensitive data by limiting access to the write side of the system. Another significant advantage of implementing CQRS is the elimination of the need to traverse the entire event stream to determine the current state. By separating read and write operations, the read side of the system can maintain dedicated models optimised for querying and retrieving specific data views. As a result, when querying the system for the latest state, there is no longer a requirement to traverse the entire event stream. Instead, the optimised read models can efficiently provide the necessary data, leading to improved performance and reduced latency. When to use EventSourcind and CQRS It's important to note that EventSourcing and CQRS may not be suitable for every project. Implementing EventSourcing and CQRS can require more work upfront compared to traditional approaches. Developers need to invest time in understanding and implementing these approaches effectively. However, for systems that demand high scalability, flexibility or security, EventSourcing and CQRS can provide an excellent solution. Deciding whether to use CQRS or EventSourcing for your application depends on various factors, such as the complexity of your domain model, the scalability requirements, and the need for a comprehensive audit trail of system events. Developers must evaluate the specific needs of their project before deciding whether to use these approaches. CQRS is particularly useful for applications with complex domain models that require different data views for different use cases. By separating the read and write operations into distinct models, you can optimise the read operations for performance and scalability, while still maintaining a single source of truth for the data. Event Sourcing is ideal when you need to maintain a complete and accurate record of all changes to your system over time. By capturing every event as it occurs and storing it in an append-only log, you can create an immutable audit trail that can be used for debugging, compliance, and other purposes. Conclusion The combination of EventSourcing and CQRS can provide developers with significant benefits, such as increased flexibility, scalability and security. They offer a fresh approach to software development that can help developers create applications that are more in line with the needs of modern organisations. If you're interested in learning more about EventSourcing and CQRS, there are plenty of excellent resources available online. Conferences and talks like DDD Europe are also excellent opportunities to stay up-to-date on the latest trends and best practices in software development. Make sure not to miss out on these opportunities if you want to stay ahead of the game! The next edition of Domain-Driven Design Europe will take place in Amsterdam from the 5th to the 9th of June 2023. Did you know that ACA Group is one of the proud sponsors of DDD Europe? {% module_block module "widget_bc90125a-7f60-4a63-bddb-c60cc6f4ee41" %}{% module_attribute "buttons" is_json="true" %}{% raw %}[{"appearance":{"link_color":"light","primary_color":"primary","secondary_color":"primary","tertiary_color":"light","tertiary_icon_accent_color":"dark","tertiary_text_color":"dark","variant":"primary"},"content":{"arrow":"right","icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"tertiary_icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"text":"More about ACA Group"},"target":{"link":{"no_follow":false,"open_in_new_tab":false,"rel":"","sponsored":false,"url":{"content_id":null,"href":"https://acagroup.be/en/aca-as-a-company/","href_with_scheme":"https://acagroup.be/en/aca-as-a-company/","type":"EXTERNAL"},"user_generated_content":false}},"type":"normal"}]{% endraw %}{% end_module_attribute %}{% module_attribute "child_css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "definition_id" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "field_types" is_json="true" %}{% raw %}{"buttons":"group","styles":"group"}{% endraw %}{% end_module_attribute %}{% module_attribute "isJsModule" is_json="true" %}{% raw %}true{% endraw %}{% end_module_attribute %}{% module_attribute "label" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "module_id" is_json="true" %}{% raw %}201493994716{% endraw %}{% end_module_attribute %}{% module_attribute "path" is_json="true" %}{% raw %}"@projects/aca-group-project/aca-group-app/components/modules/ButtonGroup"{% endraw %}{% end_module_attribute %}{% module_attribute "schema_version" is_json="true" %}{% raw %}2{% endraw %}{% end_module_attribute %}{% module_attribute "smart_objects" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "smart_type" is_json="true" %}{% raw %}"NOT_SMART"{% endraw %}{% end_module_attribute %}{% module_attribute "tag" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "type" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "wrap_field_tag" is_json="true" %}{% raw %}"div"{% endraw %}{% end_module_attribute %}{% end_module_block %}
Read more

Last year, I started out as an intern at ACA Group, the highlight of my college education. Later on that year, I was offered the opportunity to join the IT company on a fixed contract. In this blog post I talk about my experiences throughout this process, I offer a number of useful tips and warn against potential pitfalls. The job interview, an intimidating beast? Applying for an internship may feel like a daunting and uncomfortable prospect. However, it is the first necessary step as part of the process to land an internship. Which is why it is important to sit down and make a thorough selection of the kind of businesses and internships that take your interest before getting started. One of the companies that caught my eye was ACA Group. The thing that struck me right away during the online job interview with ACA Group was the proper balance between the technical and more general questions I was asked. So come prepared and bear in mind the context of your assignment. This will make you feel more at ease answering questions. I had a good feeling coming out of the online interview, also because, alongside the more serious topics covered, there was time for a bit of a laugh. This also showed the kind of company culture that exists at ACA Group. After a couple of weeks, they got back to me with the good news saying the internship was mine. I did not think twice and decided to embark on my adventure at ACA Group. The internship unboxed I had opted for an internship assignment outside my comfort zone. This enabled me to pick up many new skills over this short time period and take the challenge head on. Previously, I had been especially interested in back-end technologies like Java, but my internship assignment ultimately ended up being largely front-end focused (React, Jamstack). It’s all about being unafraid to take the jump! The assignment was to build an application for ACA to test job applicants' basic knowledge by having them solve technical assignments presented in the form of puzzles (not entirely dissimilar to hackthebox). By successfully completing these technical assignments, the applicants show that they have what it takes. Afterwards, they get to hand over their resume and contact details, along with the solutions they’ve come up with. During the job interview, the recruiter provides feedback on the results of these technical assignments. This application enables implicit information to be exchanged between ACA and the job applicant. Internship onboarding Soon the day came when I headed out to the office for the first time for my induction. That same morning, I was issued with a MacBook Pro with all the peripherals, and I was provided with all the information I needed to successfully accomplish my internship. The thing that struck me right away was the fact that the induction was conducted in a very homely atmosphere and everything was perfectly geared. ACA was well-prepared: everything was ready and waiting, and the induction session went without a hitch. This also made me feel I wasn't just a number and very much part of the team. Internship takeaways I hugely enjoyed my internship, first and foremost, as it allowed me to learn a lot of new things and pick up new skills. I was challenged every day I was there. No two days were ever the same. Personally speaking, I love this kind of variety. I’m a creative spirit by nature. Which is why it was very pleasant to find I was getting a lot of leeway and opportunities to draw on my creative insights in developing the application. As a result, I’m proud to say I was able to give the application a personal touch. This came to the fore in the way I was allowed to flesh out the assignments and puzzles. What’s more, I was provided with all the necessary tools. I was given everything I needed during the course of the development of the app, as long as I was able to argue my case as to why I needed them. In addition, I was able to rely on excellent support right throughout the process. I was never directed, but gently steered in a different direction or informed as and when necessary. This also allowed me to learn a lot, simply by trying things out by myself. Trial and error. The thing is to try and strike the right balance: getting stuck on a problem for two hours doesn't do anybody any good. Don't be afraid to try and figure things out by yourself, but also don't be afraid to ask questions when you need help! Alongside the personal effort I put in, the team I joined did their utmost to make me feel welcome and appreciated in these digital times. Everybody was helpful and open to a bit of leisure and relaxation when it was called for. Lifestyle Something which is definitely underrated is maintaining a sane and healthy lifestyle during these digital times. Mental welfare has a direct impact on our performance, including that of interns. In times of corona, it is not always easy to be mentally on top form at all times. So be sure to use your own initiative to keep your mental well-being in shape! Speaking for myself, I got into exercising (running/walking) big time, precisely because it gave me that mental and physical boost. Obviously things are different for each and every one of us and we all have different interests, but to me sports and exercise are a big part of life as a developer. So, if you spend most of your working time sitting behind a computer screen, my advice would be to find an active hobby that works for you. You will soon notice and feel the benefit! The final stretch: the final defense of your internship The pinnacle of the internship has to be the final defense. Perhaps not the main element of your internship in terms of the grades you get in your final report, but most certainly the most important thing in terms of your future career. You will usually have a number of people calling round to hear what you have to say. People who are able to open doors for you in the form of a job. So be sure to put the time and effort needed into your final defense! Now, a final defense doesn’t have to be grueling or stressful. So come in well-prepared and make sure you start on time. Relieve yourself of that stress. My ACE internship coaches were very helpful to me in this respect. I was able to stage a dry run of what was to be my eventual presentation to the jury. Let me tell you, the difference between my dry run and my actual presentation couldn't have been greater. Which was all down to the structured feedback I received in response to my dry-run, both in terms of content and in terms of my presentation skills. Seize on this opportunity to gather feedback to fine-tune your presentation! Your grades and upcoming audience will thank you for it. ;-) In the end, my presentation to the jury went without a hitch and I graduated with flying colors. Thankfully, the story didn't end there. I was offered a steady job at ACA. After my internship experience, starting my career at the ACA Group was a no-brainer. My first months at ACA After some well-deserved rest and recreation, the real work started on 16 August. This was my first real working day at ACA Group. That day I received a new induction session, again hosted by the HR team. During my first week, I was given time to get up to speed with the existing systems and environments. Whenever something wasn't quite clear, everybody was happy to answer my questions. The second week was time to embark on my duties as part of an actual project. For this first assignment, I was given the opportunity to work on the ACA Website project, which was aimed at restyling the company website in the guise of a new technology stack in JAMstack. As this project was in keeping with my internship assignment, I was very swiftly able to get really stuck in. Yet, each day was different, with a lot of scope to learn from seasoned developers. The general project activities were a joy, and we even went out to dinner with all the team members at one point. I’m delighted to say I look back on what was a formative and positive experience. Alongside this assignment, which chiefly focused on front-end duties, I was also given the opportunity to work on IntraBLOX. This project is being built around Liferay DXP, a solution for which ACA Group is justly a Platinum Partner. IntraBLOX is an SaaS intranet platform developed in-house which makes Liferay as a product more accessible to SMEs. I learned a lot about Liferay DXP as a platform on this project. There was also plenty of variety between front-end and back-end duties, so my work was similarly varied. After this project, I also got the opportunity to earn my first certification as a “Liferay DXP 7.3 Back-End Developer”. I have to say, it was nice to be able to delve back into the books. ;-) I’m certainly keen to earn further certificates in the future. It’s a great way to keep up with the latest technological innovations brought to Liferay as a platform. Personal development growth One thing I noticed very early on after my first couple of weeks on the job is the fact that ACA as a company places a great emphasis on the personal development of its employees. ACA goes by the on-the-job coaching concept, which helps people give the very best they have to offer. Along with your coach, who is someone from your own team, concrete action points are defined that are designed to push your personal growth, depending on your own commitment and dedication. This also gives you constructive feedback on how you are doing as part of the project activities. As to the future, I have every intention of giving it all I have, both in terms of the projects I get to work on and in terms of my personal development. For now, this has been a fantastic start to my adventure at ACA Group! And this certainly won't be the last you hear from me. ;-) Interested in an internship at ACA Group? {% module_block module "widget_6d8735fb-131c-4276-abf8-b0ece592ca55" %}{% module_attribute "buttons" is_json="true" %}{% raw %}[{"appearance":{"link_color":"light","primary_color":"primary","secondary_color":"primary","tertiary_color":"light","tertiary_icon_accent_color":"dark","tertiary_text_color":"dark","variant":"primary"},"content":{"arrow":"right","icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"tertiary_icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"text":"Take a look at our internship page"},"target":{"link":{"no_follow":false,"open_in_new_tab":false,"rel":"","sponsored":false,"url":{"content_id":226491452602,"href":"https://25145356.hs-sites-eu1.com/internships","href_with_scheme":null,"type":"CONTENT"},"user_generated_content":false}},"type":"normal"}]{% endraw %}{% end_module_attribute %}{% module_attribute "child_css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "definition_id" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "field_types" is_json="true" %}{% raw %}{"buttons":"group","styles":"group"}{% endraw %}{% end_module_attribute %}{% module_attribute "isJsModule" is_json="true" %}{% raw %}true{% endraw %}{% end_module_attribute %}{% module_attribute "label" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "module_id" is_json="true" %}{% raw %}201493994716{% endraw %}{% end_module_attribute %}{% module_attribute "path" is_json="true" %}{% raw %}"@projects/aca-group-project/aca-group-app/components/modules/ButtonGroup"{% endraw %}{% end_module_attribute %}{% module_attribute "schema_version" is_json="true" %}{% raw %}2{% endraw %}{% end_module_attribute %}{% module_attribute "smart_objects" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "smart_type" is_json="true" %}{% raw %}"NOT_SMART"{% endraw %}{% end_module_attribute %}{% module_attribute "tag" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "type" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "wrap_field_tag" is_json="true" %}{% raw %}"div"{% endraw %}{% end_module_attribute %}{% end_module_block %}
Read moreWant to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

Want to dive deeper into this topic?
Get in touch with our experts today. They are happy to help!

