Levi9 and GiftShift Collaborate to Develop Donation Platform

Levi9 and GiftShift Collaborate to Develop Donation Platform

Amsterdam, October 3rd, 2023

Levi9 Technology Services and GiftShift, a Utrecht-based startup dedicated to bettering the world, proudly announce a new partnership. As part of this alliance, Levi9 will develop an advanced donation platform with GiftShift to enhance the positive impact of charitable organisations and donations.

Addressing Challenges and Enhancing Engagement

GiftShift recognises the challenge charities face in engaging and retaining younger demographics, despite this generation’s ongoing intention to contribute to a better world. Research has shown that flexibility, transparency, and user-friendliness are essential to engage (young) donors.

Inclusive Collaboration for Impact

Therefore, GiftShift provides a new channel that meets these needs for both charities and donors. Collaborating closely with a consortium of charitable organizations, including KWF, Greenpeace, Red Cross, Oxfam Novib, Doctors Without Borders, and Bird Protection, GiftShift operates from a shared vision. “Both the consortium and GiftShift welcome more charities to join this movement, especially because that’s what our target audience is asking for,” says John van Pijkeren, co-founder of GiftShift.

Expanding Reach through Commercial Collaborations

In addition to partnering with charities, GiftShift also collaborates with (commercial) organisations to increase visibility and, consequently, donations to charitable causes. “Through these fruitful partnerships, we are present where the audience is, lowering the threshold to ‘do good’. Moreover, it provides organisations a straightforward and accessible way to be socially involved and contribute to a better world,” asserts John van Pijkeren.

Leveraging Technology for Social Good

The donation platform that Levi9 will develop for GiftShift allows charities to benefit from advanced technology and innovative features. Offering flexibility, transparency, and ease of use to both donors and charitable organizations, the platform ensures the donation process is smooth and effective. This enables charities to continue their vital missions and contribute to positive change.

Shared Visions and Ambitions

The donation platform that Levi9 will develop for GiftShift allows charities to benefit from advanced technology and innovative features. Offering flexibility, transparency, and ease of use to both donors and charitable organizations, the platform ensures the donation process is smooth and effective. This enables charities to continue their vital missions and contribute to positive change.

About GiftShift

GiftShift, a Utrecht-based startup founded by Jelle Heijman, Richard Ritsema, Thierry de Groot, Jordy Dekker, and John van Pijkeren, is driven by entrepreneurship and the desire to bring about sustainable and positive change. With a mix of expertise in strategy, marketing, data, design, and technology, GiftShift seeks collaborations that create real impact and contribute to a better world.

Levi9’s Contribution to Society

Levi9, with years of custom software development experience, sees the partnership with GiftShift as an opportunity to employ their technological capabilities for a socially important cause. Through the development of the donation platform, they aim to make a positive contribution to society and support charities in their efforts.

Looking Toward the Future

Both organisations look forward to a long-term collaboration and are committed to improving the world together by combining innovation, technology, and social engagement

Celebrating Customer Experience Day 2023: Delivering Better Outcomes Together

Celebrating Customer Experience Day 2023: Delivering Better Outcomes Together

Amsterdam, October 3, 2023

In every interaction, there lies an opportunity to make a difference—not just for the customers and employees but for the entire society  we are all part of. This philosophy intertwines with the essence of Customer Experience Day, celebrated globally on October 3, 2023. This year’s theme echoes a powerful message—“Good CX delivers better outcomes for customers, employees, and organizations.”

At Levi9, the core of our business isn’t just about technology; it’s about crafting lasting impact through meaningful relationships. We are not there to simply deliver what you ask for. We are in it for the long run, and your goals become our milestones.

Technology is a catalyst, and when tailored with a deep understanding of your business, it becomes a transformative force. Throughout our remarkable 18-year journey, we have navigated the digital landscape with our customers, creating experiences defined by efficiency, innovation, and a people-focused approach.

The recent external benchmark on IT Xperience in the Dutch market is a testament to our unwavering commitment towards excellence in customer experience. With an elevated fan score and a notable rise across all topics, we comfortably exceed the market average. It’s a small yet significant victory in our larger narrative of empowering businesses to realize their fullest potential.

Good CX doesn’t just happen; it’s carefully crafted through purpose, understanding and a relentless dedication to adding value. It requires an environment where leaders, CX professionals, and every single individual is tuned towards a common goal: to enhance the experience, to solve, to innovate, and to drive sustainable outcomes. At Levi9, we are not just a part of this ecosystem; we strive to enhance it by incorporating our core values of transparency, proactivity, and our result-driven mindset.

As we immerse ourselves in the festivities of this year’s CX Day , we reaffirm our commitment to remain your technology partner who not only delivers solutions but also ensures a more seamless and fulfilling path towards realizing your business goals.

Levi9 Partners with FLTRD to revolutionise healthy food choices

Levi9 Partners with FLTRD to revolutionize healthy food choices.

Amsterdam, September 19th, 2023

In a world where chronic illnesses are on the rise, making healthy food choices has never been more critical. Levi9, a technology solutions provider, is proud to announce the partnership with FLTRD, an innovative startup on a mission to transform the way people approach their dietary decisions.

The Power of Food

Recent statistics reveal that over half of Western society is grappling with chronic illnesses, and this number is steadily climbing. But there’s good news: many of these conditions are preventable through a combination of a healthy diet and lifestyle.

Your Filter - The FLTRD App

Enter FLTRD, with its groundbreaking solution: the FLTRD app. This cutting-edge application will be built by Levi9 and acts as your personal food filter, simplifying the complex landscape of food choices. By providing easy-to-understand educational content, FLTRD empowers you to create a personalized filter that aligns with your health goals and dietary preferences. “With the help of Levi9, we were able to build an MVP in considerably less time,” says Anke Kuik, co-founder of FLTRD.

With FLTRD, you can confidently purchase only those products that support your unique well-being, cutting through the noise of misleading health claims and confusing product information.

Be the First to Try It Out!

Are you eager to experience the future of food choices? Download the FLTRD app now and be among the first to embrace this revolutionary approach to healthy living.

Groendus and Levi9 Join Forces for a More Sustainable Future with Enhanced Energy Management System

Groendus and Levi9 Join Forces for a More Sustainable Future with Enhanced Energy Management System

Amsterdam, September 14, 2023

Groendus, the progressive sustainable energy network for businesses in the Netherlands, is partnering with IT service company Levi9.

Groendus made the decision to collaborate with Levi9 carefully. Levi9 sets itself apart as a long-term partner capable of contributing to the product’s development and integrating it with Groendus’ internal IT organization.

“As an ambitious scale-up, we see Levi9 as a strong partner to support our rapid growth and digital product development. They have proven expertise and skills in their field, with standardized processes that elevate our product to a higher level,” says Remco Breebaart, Director of IT at Groendus.

This collaboration enables Groendus to further expand its activities in the energy transition. “Our goal is to provide truly clean energy, which is only possible if we manage the assets in the field very smartly. Levi9 can help us with that,” says Remco Breebaart, Director of IT at Groendus. “We have a buy & build strategy with assets of various ages that are managed from various systems. We need to consolidate the control of these assets quickly. Levi9 has faced these challenges before, and it shows in their approach.”

Levi9 specializes in developing custom software and solutions. “We look forward to supporting Groendus with our technical expertise in the further development of their energy management system, and thus in the growth of the energy company of the future,” says Boudewijn Haas, Industry Director at Levi9.

Groendus and Levi9 are collaborating to make improvements in the energy management sector, contributing to the mission of 100% clean energy. This aligns with both companies’ goals to create solutions that are sustainable, transparent, and smart, with a focus on innovation and a greener world.

Reading Between the Smiles: Emotion-Sensing with AI

On a May evening in Iaşi, Romania, the grand halls of the Palace of Culture came alive with snaking queues of eager visitors. They gathered to experience the newest interactive exhibit unveiled for the Night of Museums: an emotion detection device created by the technology innovators at Levi9 in collaboration with a local museum. Using Artificial Intelligence for facial analysis, the installation could detect and display a user’s prevailing mood in real-time.

Thousands of visitors interacted with this cutting-edge AI-enabled emotion recognition system, which was able to detect emotions such as happiness, curiosity, frustration, wonder, sadness, and many more. As for the emotions of the Levi9 team in front of their project’s success? “Pure joy”, says Engineering Lead Codrin Băleanu, who coordinated this project.

“Joy”, he emphasizes, “is the key to technological innovation.”


Step into the Future

On Museum Night, visitors in Iași expected to step into the past with long walks along historical and cultural displays. Instead, they stepped into the future. Entering what seemed like a photo booth, they had an AI-powered immersive experience. A facial expression reader built by Levi9 volunteers used real-time facial analysis to identify key expressions like smiles, frowns, and surprise. This allowed the application to estimate the prevailing mood of users as they interacted with it. The interface then reflected the captured emotion back to the visitor, making the experience highly accessible and engaging for all audiences. The installation was such a popular exhibit that hundreds of people patiently waited in line to interact with the emotional scanning technology, only to be amazed and dazed when their turn finally arrived.

Decoding Human Emotion

Several years prior, attendees at a developer conference had a similar WOW experience. Codrin Băleanu, Levi9 Engineering Lead, was on stage, talking about topics such as computer vision, face detection, and machine learning. At a precise moment during the presentation, he turned a live webcam towards the audience, allowing the participants to see themselves through the eyes of Artificial Intelligence: each of them identified and framed by a rectangle, their public social media profiles displayed. At that time, Băleanu was one of the few computer vision aficionados who had the foresight to see what that spectacular technology would become.

With ChatGPT and image-generating AI like DALL-E and Stable Diffusion capturing the imaginations of millions of people, Codrin Băleanu saw an opportunity to ride the AI craze and engage the local community with technology. Of course, he already knew the answer to the question on everyone’s lips: Can artificial intelligence read human emotion?

“The human face is relatively easy to identify and recognize in the sense that there are some features that are exactly the same and exactly in the same places, regardless of the shape of the face or the general appearance. There are software solutions where the moment a picture is introduced as test data,” Băleanu explains. “In our case, to identify the face and then to determine the emotions themselves, we created an algorithm that was simple enough by Levi9 standards but efficient enough.”

The Levi9 AI facial expression reader scans for key facial landmarks like whether the mouth is open and smiling or the eyes are wide in surprise. By measuring the distance between these points and comparing them to defined intervals, the application categorizes the strongest emotion detected.

The interactive exhibit was built using the popular Python programming language along with the OpenCV and MediaPipe libraries for computer vision capabilities. OpenCV enabled vital image processing like capturing webcam input, framing the user’s face, and rendering the dynamic effects. MediaPipe’s pre-trained machine learning model detected the subject’s face in real-time and extracted 468 facial landmarks.

These facial points were key for mapping out the grid overlayed on the user’s face and classifying their emotion based on key expressions like smiles or raised eyebrows. The one exception was detecting a “happy” mood, which was inferred from the curvature and width of the mouth relative to the overall face width. Specifically, smiling was identified by measuring how open and upturned the corners of the mouth were in the facial landmark data.

While 468 data points seem Matrix-level technology, by machine learning standards, this is not highly performant. But the data richness and complexity were just right enough to allow for relatively cheap computing power and an engaging experience for the public.

Technology and Culture can Empower Each Other

The Palace of Culture provided an ideal stage for making emerging technologies relatable through an immersive cultural experience. “The reaction of the participants was very good”, says Coralia Costas, PR, Marketing, Logistics, Projects, and Programs coordinator of the host.

Costas says that fusing technology and culture benefited all audiences. “For the young ones, who were born with technology all around them, the experience was native and it reduced the chronological distance they might feel from many exhibits. For seniors, it was an invitation to voluntarily and non-invasively test, along with their grandchildren, for example, the way in which technology is our life partner today.” One highly appreciated point of the interactive display was that it did not require any particular technological skills.

This is precisely what the Levi9 team has aimed for since the inception of the project. Codrin Băleanu knew the application needed to be visual, interactive, and playful for maximum impact. Just like making complex ideas accessible, wrapping advanced applications in cultural experiences broadens their appeal.

The wow factor of the emotional biometrics installation even worked on Codrin’s own peers. As Levi9 employees were passing by in the hallways, they stopped to inquire about the project and the technology behind it. They wanted to play with it, too!

The Power of Play

“For me, play is the key. It is the most important thing in this profession”, reveals Codrin. “I believe it helps us move forward, to continue to innovate and to be able to be in step with and even ahead of market trends.”

This quote encapsulates the ethos that made the emotion scanner possible—one valuing space for playful exploration above all else. Codrin had palpable excitement when the concept first formed, before final approvals were even completed. He dove right in, pulling together an agile team of four people united by their shared enthusiasm.

“I was so excited about this idea that I simply started working on it,” Baleanu recalled. “When you have enthusiasm, things happen almost without any kind of friction. It goes by itself, and development began to take place at a much faster rate than expected.”

This freedom to organically build and experiment is oxygen for innovation in fast-changing technology fields. It provides room for programmers to pick up emerging skills like computer vision outside of their daily responsibilities. Regularly indulging passions through side projects can combat the inevitable sense of routine that sets in.

New skills such as creating emotional analysis algorithms might prove invaluable in the future. These systems have diverse real-world applications beyond museum exhibits. Sophisticated implementations analyze sentiment across crowds in public spaces like metro stations, airports, and train platforms. Individual facial tracking helps identify VIP customers, as  is the case in certain Asian banks where managers receive notifications when high-value clients approach so they can greet them personally.

Some Travel Involved

The runaway success of the emotion scanner proved museums can provide fertile sandboxes for the public to explore emerging technologies hands-on. It forged connections between groups that might not otherwise interact. The Levi9 team hopes to be able to bring this immersive experience to communities all around Romania.

Moreover, the collaboration between Levi9 and the Palace of Culture Museum was a prime opportunity to let the Levi9 team joyfully tinker with new applications of facial analysis and AI. Their creation delivered proof that dedicating time for play unlocks creativity and helps organizations respond nimbly to evolving technologies.

Payments On-the-Go with Stripe

Charging your electric vehicle is meant to be quick and hassle-free – just pull up to a station, plug in, and be on your way in minutes. But behind this seamless customer experience lies a complex orchestration of payment processing, security, and invoicing. Levi9’s .NET Tech Lead Mihaela Rădulescu and her team recently brought this frictionless process to life for a startup electrical car charging platform. The solution demanded the agility of a startup build, the security and reliability required when handling payments, and the automation needed to minimize operational costs. Stripe was the answer. It handles the payments and invoicing for the platform, and was chosen for its rapid integration, robust fraud protection, and automatic billing capabilities.

The Levi9’s customer’s platform connects Electric Vehicle (EV) charging stations with Electric Vehicle drivers. Charging station owners can manage and monitor their stations through the platform. Meanwhile, electric car drivers can find stations, track charging sessions, and more. At the end of each month, the platform needs to bill station owners, as well as EV drivers for usage.

With chargers having their own dynamic per kilowatt-hour rates that change frequently, and rates that vary based on time of day, Stripe was the ideal solution. “Nothing fits your use case 100%”, says Mihaela Rădulescu, who led the integration between the platform and payment processor Stripe. But Stripe came pretty close. “We needed a payment processor that could handle variable rates and automatically charge both end-users and charging station managers at the end of each month,” explains Mihaela.

Here’s an inside look at how Stripe works and how our client, an EV charging management company, integrated it into their platform.

Step 1: Stripe as a payment processor provider

Stripe acts as the payment gateway and processor, taking card data and routing it to the appropriate bank. A key advantage to Stripe is that it can be integrated with a customer’s platform, while allowing card data to go directly from the client to Stripe. “This means card data never reaches our servers, which saves us from all the time and effort needed to ensure PCI (Payment Card Industry Data Security Standard) compliance requirements are met and then upheld” revealed the Levi9 .NET Tech Lead.

To process payments, Stripe offers both its own check out page, as well as a library of pre-built components called Elements that integrate directly with Stripe.js. Elements allow website designers to better integrate the look and feel of their service during the payment process, while routing all sensitive data to Stripe directly.

Step 2: Creating Customers and Payment Methods

When electric car drivers sign up for the charging platform, the app uses the Stripe Elements to securely collect their card details and create a Customer and Payment Method in Stripe. “This happens directly from our front end to Stripe without card data ever reaching our servers,” emphasizes Mihaela.

Step 3: Usage Tracking

As drivers use charging stations, the platform tracks their usage in real-time. The platform receives “usage events” that contain station identification, start time, end time, and kilowatt-hours. Rates depend on the charging station location (city centers cost more than outskirts). Rates also vary based on time of day (peak hours vs. night). The platform matches each usage session with the correct rate.

One particular challenge during this process was finding a way to bill fractionary charging, as Stripe does not allow “product quantities” to be fractionary themselves. Some ingenuity was required from the development team at this point and they came up with the solution of billing watt-hours instead of kilowatt-hours.

Step 4: Generating Invoices

At the end of the month, the EV charging platform totals each user’s power usage and generates invoices through Stripe’s API. The invoices contain line items with the Wh quantity and unit price. Stripe calculates total costs from there and handles tax calculation.

“We just provide the usage data and Stripe takes care of invoicing and payment,” explains Mihaela.

Stripe also manages a second type of invoice. The EV platform is also billing charging station owners, who use the platform to get an up-to-date overview of their stations, to manage them and associate different rates according to their business strategy.

Step 5: Getting Paid

Payments are automatically processed by Stripe within a maximum of one hour after invoicing. The payment process can be triggered by making an explicit call to the Stripe API, but the Levi9 development team preferred to allow Stripe to automatically withdraw the money from the payment card on the file. Failed payments, which sometimes happen, are automatically retried by Stripe.

For failed payments, Stripe also issues a notification, through a webhook, towards the charging platform, keeping them in the loop about the status of payment. These real time webhook updates are not limited to errors, but are sent throughout the entire process, for each event, such as successful charges and payment intents. These notifications allow the platform to always keep client data in sync.

While Stripe solved critical needs for all stakeholders, the process was not without challenges for the development team. A key lesson was around Stripe’s many options for billing. For example, subscription versus usage-based billing. Subscriptions provide ongoing charges based on fixed plans. But with dynamic per Wh pricing, subscriptions were not practical. “We had to get creative in using usage-based billing along with invoice line items and webhooks to implement a variable pricing model.”

For any company dealing with online payments, especially variable payments on-the-go, Stripe provides great advantages. By allowing the Levi9 team to successfully integrate a payment provider that lifts off the burden of financial regulations and automates invoicing and withdrawals, the start-up EV platform was able to focus on bringing the best experience to its customers and making a more sustainable, environment-friendly future possible.

One giant leap in automation: Amazon Step Functions

If you were ever curious how many words there are in each sentence from Wikipedia’s entry on the legendary band Queen, you are about to find out. Even better, you’re about to find out how to find this out for yourself, using the power of automation and the Amazon Step Functions. Andrei Elefterescu, Levi9 JavaScript Tech Lead, has 10 years experience in AWS and worked with the Amazon Step Functions even before their launch, during the Beta program. Andrei will be your guide to the melodic orchestration of triggers, functions, validations, transition states, conditional routes, and callbacks. It sounds complicated, but trust us, it’s a kind of magic.

What are Amazon Step functions?

To find out how many words are in each sentence of Queen’s Wikipedia biography, you’ll need to do some common-sense actions: read the text, split it into sentences, count the words, then put back together all the information about each sentence in one single text.

Surely you don’t need automation for that. It’s a straight-forward, simple task. But what if you needed to count all the words in the Wikipedia entries of the Top 100 British bands of all time?

This is where Andrei Elefterescu steps in to explain what Amazon Step functions are.

Amazon Step Functions is a serverless orchestration service that helps us integrate multiple AWS services such as Lambda, S3, SNS, and so on to develop various applications. Going back to the Queen example, those steps define a “Step function”.

While it’s easier to visualize as a diagram, Step Functions are written in an AWS proprietary language, which is JSON-based.

Of course, Amazon Step functions are much more useful than counting words on a Wikipedia page. The service can be used to process images in S3, ETL (Extract – Transform – Load) processes, machine learning, microservice orchestration, IT and security automation, as well as Continuous Integration and Continuous Deployment (CICD), a process that automates the integration and deployment of code.

“Step Function has around 250 integrations with other AWS services and around 11,000 API calls that can be called from it. “In 2016, when they launched, they only had an integration with S3 and 3–4 other services.”

Key concepts

Before we delve deeper into how Step functions work, here are some key concepts, as explained by Andrei:

Workflow is the breakdown of what needs to be done and in what order. It can be built visually, like a diagram, in the very intuitive editor of the Amazon Steps Function. In our example, it’s the mental plan of how we are going to grab the information about the Queen Wikipedia blog article. A good plan needs to include some steps where you validate the inputs and a way to handle errors.

Triggers are what start the workflow. You can call the API or you can use other methods, such as starting it directly from the AWS console, triggering an S3 event through the SDK, or using the event bridge to start a Lambda function. For our planned mini-Queen automation, we’d just run this through the interface.

States are the different sequences in the workflow. Step Functions have several types of states, such as task states where a resource can be assigned, choice states where a decision can be made, and check states where a variable can be checked and make the automation behave differently depending on whether it’s true or not. In our mini-automation, the states include grabbing, parsing, and joining the information, but also a validation filter and a choice related to what happens when the automation throws an error.

Tasks are the actual actions and steps that are performed in each state. A task could be, for example, to split a text into sentences, and another task would be to count the words in each sentence.

Transitions are links between two steps, and each step is recorded as a transition. For each execution of a lambda, there are three entries: the transition before, the step itself, and the transition after. For the passing of information from one step to another, Amazon has a limit of 250 KB. For our particular case, the information “There are 10 words in the second sentence” must be carried from one step to the next.

Item execution is the transition from one state to another. The limit per workflow is 25.000 executions. For example, to find out how many words there are in each sentence, there are three executions: one is grabbing the actual sentence, two is getting the numbers, and three is sending those numbers to the following step.

Express vs Standard Step Functions are two types of workflows. The Standard has a year limit on being active, while the Express has 15 minutes and 100,000 parallel executions. Express workflows are used in web development, while standard Standard workflows are used for larger volumes of data.

The history of the execution is in the log, which you can easily check in the Step Function dashboard. There is a limit of 100,000 logs per workflow.

Main advantages: parallel run and serverless

But is this melodic, yet complicated, orchestration needed? Couldn’t a Lambda function do the job instead?

For one thing, Amazon Steps are faster, highlights Andrei. This is due to their ability to support parallel runs, such as a simple map mode with 40 concurrent executions or a dynamic map mode with up to 10,000 parallel executions. On top of that, “Step Functions is a serverless service that allows for stateless states without having to have a separate database or cache, decoupling the logical side from the business side.” In other words, there is no need to worry about sizing the resources to fit the process. This is done automatically. Some other advantages that Andrei appreciates are the fact that it’s easy to see the state of your workflows and that it integrates retry mechanisms and exponential back-off.

This “Plan B” for errors plays a crucial role in workflows. For example, if we sent a blank Wikipedia text instead of the real Queen biography to the step Functions, an error mechanism would be triggered. Without it, the function would have stopped working. And errors can happen during the processing of large amounts of data, and some of them can stop the process completely. This is one of the several drawbacks that Andrei mentions.

Disadvantages: hard limits on executions and history

There is a hard limit of 25.000 executions per workflow. While analyzing a Wikipedia article doesn’t seem like much, when you need to count the words in 10.000 sentences, things change. Remember, each step normally means three executions: the state before the step, the step, and the state after the step. “So, with 10.000 sentences, it’s pretty easy to get there”, emphasizes Andrei. “And if you go over 25.000, the workflow will stop, and there is nothing that you can do about it.”

Also, as step functions decouple the business logic from the logic part of the workflow, the resulting code is more complex and harder to understand. A relatively simple image processing workflow can have clear inputs and outputs, but the connection between the various microservices is challenging to understand. Another disadvantage is limited mobility. The state machine is written in the Amazon State Language, which is a proprietary language of AWS. This means that if you want to move to Azure, for example, you need to start from scratch.

Another disadvantage is the 250 KB limit that can be passed between states in the step function and between transitions. Plus, the execution history is kept for only 90 days, and the maximum execution of a workflow is one year.

Wait, a workflow that takes one year? “It’s possible”, says Andrei. “The Step Functions have callbacks, which allow the workflow to pause and wait until a human provides some input we are waiting for. Then, the callback is invoked, and the workflow resumes.”

Best practises: retry mechanism, keeping an eye on limits

Most of these drawbacks can be overcome by best practices. For example, AWS’s 256 Kb interstate is limiting, but AWS itself came up with a solution. You can write the payload to a PS3 file and process it with a Lambda function.

The native retry mechanism is also very useful. Step Functions provides a retry and exponential back-off mechanism to catch Lambda exceptions and throw specific errors. It also allows for the ability to make a specific decision if a Lambda fails with a throw error, such as not found.

Additionally, there is also a way to avoid the limit of having only 100.000 objects to process. “Yes, we did get there at some point, and it was not pleasant”. The solution might be to keep an eye on the process and trigger an alert when you are close to the limit.

Even so, the costs offset all the small inconveniences of the Step Functions. In Levi9’s experience, even complex processes for large clients do not go over $5 per month.

Levi9 Earns AWS Migration Competency - Another Milestone Achieved!

Levi9 Earns AWS Migration Competency

Another Milestone Achieved!

From: Boudewijn Haas, Industry Domain Director & AWS Partner Lead, Levi9

We are excited to share that Levi9 has earned the significant AWS Migration Competency, providing benefits for our valued customers. The AWS Migration Competency unlocks funding for customers and they have the assurance of reliable migration processes and the implementation of AWS migration best practices. We are extremely proud and happy to receive the confirmation, acknowledging our expertise in cloud migration services.

The AWS Migration Competency is a true recognition in the industry, and it is one of the key competencies to earn. Our dedication to excellence and in-depth knowledge of AWS services have enabled us to successfully migrate customers to the AWS platform while adhering to the best practices.

This achievement showcases our commitment to providing top-notch cloud solutions and services to our customers.

Levi9 continues to invest in its expertise in cloud software solutions, and this latest recognition further solidifies our position as a vetted AWS partner. Our relentless pursuit in providing services based on deep technical knowledge and customer satisfaction remains at the core of our business philosophy.

#Levi9 #AWSMigrationCompetency #CloudServices #CloudMigration #AWS

Our AWS Services

Cloud Levi9 article

Azure Skies and Smooth Cloud Sailing


130 years ago, when our client first started, a cloud may have been a bad omen. It could have meant the impending approach of a storm preventing its ships from reaching their destination. Today? The cloud is what helps our clients make the best decisions, based on hard, consistent, relevant data. One of these vessels shipping BI services through the cloud is called Levi9, with a team helmed by Carmen Girigan, Senior Data Engineer, and Eliza Enache, Medior Data Engineer.

From Data to Information

If a business founded in 1890 is still thriving today, it must mean that it has adapted over and over again. More recently, this meant adopting a cloud-based data solution with the help of Levi9 and other cloud providers. Vroon, an international company with a vast tradition in naval transport, was looking for ways to optimize their data solution, in order to make better decisions. We picked up a legacy on-premises solution and transformed it into a personalized, highly-scalable Single Source of Truth in the cloud.

The main challenge was picking up a complex solution using external data sources, requiring maintenance and development on multiple modules, and offering limited aggregated results. To learn how the business was doing, Vroon business users had to look into multiple sources.

However, data is mostly useless unless it becomes information. But what does this mean?

“You might look at Data as the input that your brain perceives through the senses”, says Eliza Enache, one of the Levi9 “sailors”. “The brain then creates connections between these data points by applying certain logical processes (filtering, algorithms, etc.). The connections between data points (and connections of connections) might be called Information.

Raw data is useful only when it is organized and interpreted in such a way that it helps in decision making, becoming information” completes Carmen Girigan, also a member of the Levi9 team.

After working with Levi9, Vroon users interrogate one service and get the answers they need.

From SQL Server to Azure cloud solutions

The Vroon business had been getting information using on-site Microsoft technologies, relying heavily on SQL Servers. Data was coming in from various siloed sources such as accounting, procurement, invoicing, customers, vessel activities, incident reporting, and many others.

Data were extracted, transformed, and loaded into the warehouse, via Microsoft SQL Server Integration Services, as well as custom applications and SQL Server stored procedures. On top of the data marts, there were 5 analytical databases with 11 multidimensional OLAP cubes, developed with Microsoft SQL Server Analysis Services. These cubes would then be accessed via the reporting tool, for reports, dashboards, and analysis.

The cloud conversion started in 2020. The new solution was based on Microsoft Azure technologies, in order to streamline extract-load-transform (ELT) processes and maintenance, by using a gradual approach that would allow evaluation and constant adjustment to new situations, as well as high availability for the users’ new requirements.

Now, data is extracted from its sources via Azure Data Factory and loaded into an Azure Data Lake container. It then goes through a transformation process using Azure Databricks or Azure Synapse Analytics. Afterward, it is loaded into an Azure Synapse Analytics data warehouse, based on which a tabular model is developed with Visual Studio and later deployed to Azure Analysis Services. Power BI is used for data presentation and user self-service report creation.

The result was the transformation into a modern, cloud-based, and highly-scalable solution, that provides information in a unified way: a Single Source of Truth for multiple business areas.

Having a single source of truth is essential for enabling good business decisions. “Everybody sees the same figures, at the same time, and it’s more reliable” Carmen explains. “Long story short, you avoid conflicting ‘versions of truth’ when different users analyze data exported at different points in time”, adds Eliza.

Cloud sailors tip: Clean your data like a ship’s floor

Whenever thinking of a ship, one image inevitably comes to mind: sailors cleaning the deck, almost to the point of obsession. In the 18th century, this was done to keep the crew healthy.

Today’s Levi9 data engineers have a similar attitude towards data: it should be maintained clean, to avoid the risk of infecting the budget, reports, and any meaningful analysis.

In the cloud, resources are much easier to maintain and scale — but we do have to pay attention to costs. There is no point in having duplicated or unutilized data, or transformations, in the cloud”, explains Carmen. Eliza adds that there is much more than that. “During the testing phase, we noticed that redundant or obsolete data led to improper analysis and estimation, and diversion from the ‘main track’ — which in turn led to an increase in time and costs, while also blocking further developments. Some of these redundancies made us go back through the whole logic.”

Those who don’t empathize with nautical experience might compare data cleansing with their wardrobes: “Just think of that closet full of clothes you don’t like to wear, things you’ve kept for years only cluttering your space and making for a hefty baggage” says Eliza.

An ongoing adventure

Part of Vroon’s legacy system is still running and is in the process of being transformed. Eliza explains why sometimes this is a better solution: “We soon realized that converting and rewriting the whole logic, from old technologies into Azure, would take a lot of time – thus stalling any further development initiative. As such, we devised a temporary workaround: part of the data is directly brought to and processed in Azure, while another part is brought from the on-premises data warehouse, and further integrated into the unified model.”

Cloud Azure Levi9 Articles

But we won’t do everything at once. First, we’ll do a pilot project”, adds Carmen. Just like sending a sentinel ship before moving the entire fleet, a pilot provides insight into what the job entails.

Cloud Azure Levi9 Articles

Fair winds and following seas

All in all, the project continues to be a learning opportunity for the team. All the Levi9 Vroon sailors have at least one Azure certification, as the department and company strategy aligned with the work. Carmen Girigan and Eliza Enache stress that they owe much of their learning to the other half of the initial engineering team that had established the foundations on which they continued to build in the cloud.

With the new pilot project, the adventure continues. May the team have fair winds and following seas!

We’re supporting your race at your own pace. Choose yours!

AWS Levi9 Articles

Rebuild this castle - a data migration story

Imagine yourself in a run-down house. Make it a big one. Huge. Some walls are still standing, but barely. Some rooms are just a pile of bricks lying in the middle of the floor. There are secret passageways connecting random chambers, almost like a labyrinth. Did you make the house gigantic in your mind? Go on, make it even bigger. A quirky, dysfunctional, enormous castle.

Here is your challenge: you need to rebuild the castle on another land. In its new version, the building should regain its splendor, while guests and inhabitants alike should be able to find their way seamlessly. Oh, and if you fail, even slightly, even by a fraction, all the inhabitants of the palace lose their livelihood.


This is the magnitude of the challenge that software architect Sebastian Gavril found himself in, when he was approached to migrate a fintech’s core databases to the cloud.

Tinka, a Dutch fintech company, already had some of its services in the cloud, such as microservices, authentication systems, message brokers, CI/CD, and monitoring tools. But the core services, related to the actual financial processes, remained on-premise, part of the so-called legacy system: the virtual machines, databases, the Enterprise Service Bus, and workflows.

The job entailed moving from on-premise into the cloud 30+Tb of data, split in over 30 Oracle database instances across multiple Exadata machines — mini data centers that can be rented out — and 7 environments.

In other words, the core services were still in the “old castle” and needed to be moved. All those discarded bricks, secret passageways — they were actually scattered databases on old servers, connected among each other in a complex network, being used by various applications, microservices, or monitoring tools.

So how does this story unfold?

The heroes

This job needed an architect. A software architect. “Normally, an architect first needs to understand his customers, their needs and desires, constraints and opportunities. Then he translates that into a formal language that can be used by engineers to construct the building his customers desire. And during the construction phase, the architect is always present to make sure the plan is followed and change requests from clients are included with minimal impact on the integrity of the building.”

This is what Sebastian did. He needed to have an ensemble view of the challenge, decide what’s needed, and get the team together. They were: Simona Gavrilescu (Delivery Manager), Ancuta Costan (Test Lead), and Monica Coros (DevOps Engineer), as well as employees of Tinka.

At Levi9, the team is defined together with the customer, with the aim of enhancing collaboration and working together as one team.

The castle

Moving core databases is an extremely complex project. When you move databases, you don’t just move the data, but you need to make sure that all the critical systems will function correctly.

Plus, the old castle — the legacy systems — were responsible for a large part of Tinka’s income. This is true for most companies.

While looking to achieve a positive impact for the clients, one of Levi9’s goals of this project was to have no negative effect on the Tinka customers. Customers were not supposed to notice anything. However, if things did go wrong, the company could have lost or corrupted customer data.

The new kingdom

So where was this new land where the castle was being built? The cloud.

Until recently, “the cloud” actually meant just a couple of key players, such as Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform. Nowadays, any large, established company starts to develop its own cloud: Oracle Cloud, IBM Cloud, Digital Ocean, Heroku, Alibaba. To attract customers, many offers features such as niche-specific services, better integration between cloud and legacy systems, and migration tools.

The chosen solution was the RDS – Relational Database Services, the database service offered by AWS, mainly because part of Tinka’s infrastructure was already in AWS. After migration, AWS would be the one keeping up with maintenance and updates and many more as part of the package.

The challenge

“It was imperative to understand the complexity, which I saw on two levels”, says Sebastian.

The first level of complexity is that of the database. In this case, the team used a tool provided by the AWS Data Migration Service (DMS) of AWS called the Schema conversion tool. “When you move a database from one place to another, this tool generates a scheme that shows the objects, triggers, procedures, and packages. It also shows which ones can be converted automatically and where manual changes need to be made, through simple, medium, or complex actions. This helps us understand what database-specific effort we need” explains software architect Sebastian Gavril.

The second level of complexity is that of the “landscape”. That means everything that calls on the database. The landscape was very rich. From old, legacy servers – that nobody really understood, to modern microservices, with everything in between: ESB, custom jobs, etc.

It helps us understand where the problems are. What we need to change: connection strings, drivers, maybe even code that used specific functionality in Oracle Enterprise Edition (an edition we wanted to move away from).

The map

So what does moving the castle entail? Well, when planned systematically, things look pretty straightforward: you need to move the bricks and you need to redesign the rooms. In data transfer language this means that you need to take into consideration two aspects: the applications and the databases.

On the applications side, there are some conversions to be made: for example update libraries, change versions, rewrite some code, and make sure the configurations are in order.

The databases also need to be converted, either by using tools such as the schema conversion tool or manually. For some, you can find a procedure. For others, they need to be built from the ground up.

For migrating the actual data, just like renting a moving truck, AWS has a Database Migration Service offer. You can rent a machine, point to the “departure” address, set an “arrival” address, and up you go. It can take minutes, hours, days. Or weeks, in one of our cases.

AWS Cloud Levi9 Articles

It all comes crumbling down - Part One

Every project starts with “it’s not much”. “It’s practically done”. Sebastian Gavril knows to cringe at this one. The first migration project was started 1 year before and this was how it was presented to the team. The first go-live attempt was possible about 2 months after these famous phrases, after a lot of tweaking and testing on the initial solution.

And this was just one room.

In such a complex data transfer project, issues keep popping up at every step, sometimes baffling entire teams. “The funniest thing was when we migrated a database and ran a simple smoke test to validate that everything is working. The test failed repeatedly so we spent the whole day trying to fix the issue, only to roll back in the end. The second day we realized that we were simply testing the wrong way. We were probably a bit too nervous.”

Slaying the budget monster

Every castle needs its own monster and this was no exception. As one of the key issues of the project was to lower costs, the budget was the monster that needed slaying and slaying. “Traditionally, software engineers didn’t have to think about costs too much”. Having his own very healthy financial mindset for expenses at home, Sebastian Gavril explains why he took care to chip away costs at every opportunity. “With the rise of cloud providers, engineers are using cloud services more and more and taking most of the decisions in regards to the configuration of those resources. For example, the biggest databases you can order at the click of a button in AWS are ~80 times more expensive than what we chose for one of our medium workloads.”

For example, by keeping an eye on resource metrics for a database, the Levi9 team was able to cut costs by about 75% from initial estimates.

Time to say good bye

Some rooms of the castle simply got left behind and it was for the better.

One of the biggest surprises of the Levi9 team was when it realized it could take some smart decisions. The goal was to stop using our data center, not necessarily to migrate everything.

“We found out that the largest database, a 15 TB behemoth, was actually what we call “highly available”. That means, there are 2 databases instead of 1. The second one is there only if the first one crashes for various reasons. But this was not a business-critical database, so we did not need to have the db up and running 24/7. So we decided we can just drop one of the databases and rely on backups to restore the primary database in case of failure.”

It was only because of the Levi9 team’s culture of focusing on one common goal that enabled it to know the business and the client so well, that they were able to take such surprisingly easy, but important steps.

AWS Cloud Levi9 Articles

It all comes crumbling down - Part Two

And then there was the huge data latency problem.

Levi9 practically moved the databases from the premises in Zwolle (Netherlands) to Dublin (Ireland). Some apps were left in Zwolle (Netherlands), to be migrated later, but they were calling on the database in Dublin.

“Data transfer is pretty fast nowadays, so normally this extra distance is not noticed. But due to the way one of the applications was written, the data was going to and from the database much more than needed. It became unusable, as some common operations were now taking tens of seconds to complete”

Because of the architecture of this application, it was like going to the castle for a lamp, then for the bed, then for the cover. The team was on the brink of giving up because it was not able to change the application. In the end, they managed to tweak the infrastructure so that it would allow for much more traffic than usual. It was like sending 3 people to the castle each for one thing only – not ideal, but it worked.

The welcome party

For a while, you will live between castles. You will still have the old one, but also the new one, perfectly in sync. And then?

And then you just need to make up your mind and throw a welcome party!

In data migration, the welcome party is extremely tricky. The inhabitants must not notice any difference, almost like they would be teleported. The service cannot be down for more than 15 minutes. The data about each Tinka client must be precisely the same. And, God forbid, DO NOT, under any circumstances, mess up their bank account. Good luck!

When it was time for the last final move, Sebastian Gavril did what he always does. He planned for it. Sebastian Gavril and his team had a step-by-step, second-by-second to-do list.

How detailed should this plan be? “Just to give you an idea”, says Sebastian Gavril, “we prepared so thoroughly that one of the go-live plans had 66 tasks, each representing an action.”

There are hundreds of small decisions that need to be taken before the key moment: for example at what time do we go live? And there are numerous connections that should be made between databases and services, all with the purpose of making a seamless transition, with as little downtime as possible. Maybe most importantly, what to do not if, rather when things go wrong.

Sebastian Gavril and his team split the very detailed action plan into three: before go-live (checking everything is in order at the new site), during go-live (making sure that each team member knows what to do at each moment) and after go-live (monitoring the new setup and being ready to take action if needed).

AWS Cloud Levi9 Articles

The happy ever after

It all ends well, as it should.

For a result-driven, impact-delivering, change-making company like Levi9, failure was not an option at any point. No data was lost. Customers of Tinka might have noticed a two to a three-minute website glitch, but nothing more.

“Having managed to deliver this feat was a great self-accomplishment. It’s also the kind of project that challenges and empowers a senior engineer to grow, because it involves many aspects that are not part of the day-to-day life: coding, database administration, database development, cloud, networking, DevOps, architecture, third-party management, finance. A very good opportunity to develop as a well-versed engineer.”

To move critical systems, to make everything run better, to significantly increase budget savings, all the while protecting the client from any negative consequence — this could all be summarized in what Levi9 wants to achieve: impact.

We’re supporting your race at your own pace. Choose yours!