How this team builds a new payment system for Schibsted
They better get it right! The payment system this Krakow team builds may be used by up to 200 million people around the world.
With companies in more than 30 countries Schibsted Media Group every year reaches more than 200 million people through its services. Most of them are people using a classified ad site, such as the Swedish Blocket.se or the French Leboincoin.fr.
Billions of payments are taking place between this huge group of people as they use the services from Schibsted. But so far the transactions have been handled individually by each site and their local payment partners.
No longer. Now it will be handled in a central and joint payment infrastructure for the whole group.
A new payment system
In Krakow and Oslo a team of senior developers are working hard to build a completely new payment system for Schibsted Media Group. The payment system may eventually be rolled out to all Schibsted companies around the world.
“We want to make it as simple as possible for our users to pay, ” says Claes Bergsten, the tech lead for the project.
It is a huge task – and technically challenging for the developers. Bergsten explains the new solution will solve two problems:
- It will take care of online payments on all Schibsted sites.
- It will provide an easy peer-to-peer payment system, making it simple for individuals to pay for products they buy from other users.
Access to transaction data
Every day millions of people buy and sell goods using one of the classified sites of Schibsted Media Group. But so far the sites have not had a role in the actual transactions.
“By building our own payment system we also get insight into the actual transactions, for instance if a product advertised on our sites was actually sold and for how much,” says Claes Bergsten.
The data can be used in many different ways, he points out. It can help the services be smarter and serve the end-users better, for instance by proposing price levels on goods for sale based on previous transactions. Users can be better segmented and the classified sites more personalized.
Schibsted has been granted an e-money license in Norway which permits the solution to be used in all countries in EU. This include the permission to include a digital wallet and escrow account in the solution.
Building a payment system is a huge and complicated project, with many opportunities to fail. For Schibsted Media Group it is one of many projects to build common platforms for all its sites.
“It is really an interesting project to be part of. There is a a lot of new stuff, like new technologies, new architecture and new use of Java. And it is a project where we only have functional restraints. It is up to us to find the best technical solution,” says Marcin Godyn, team leader for the team in Krakow.
Senior developer Jan Gurda adds:
“I participated in a few Java conferences in my previous job. We heard a lot about new trends like use of clouds, containers and micro services, and I remember asking myself who has time to code like that. Who can afford such high coding standards? And now – after a year in STP – I see that all we heard about on those conferences is what we are actually doing in our daily work! We are not afraid to try new things! It makes me very happy to be part of this – and sad every Friday when the weekend is coming.”
- Blog article from the team: Amazon Web Services – services overview and global infrastructure
How it will work
The payment system is developed as a gateway between Schibsted´s sites and numerous different payment providers, acquirers and solutions. But it also includes a digital wallet for peer-to-peer payment, including an escrow account.
“Our ambition is to support the most important and adopted payment methods in each local market, but in a consistent way. To do this we build an API that is between the payment providers and our different sites. The API includes adapters to the payment providers. We develop the adapters, but it only has to be done once for each payment provider. Our sites can then cherry pick payment methods they want to support on their sites – and no extra work is needed on their part”, explains Claes Bergsten.
“Because we can negotiate terms on group level based on group volume this gives us very competitive prices from the payment providers. ”
Jan Gurda lists some of the technologies that are used in building the new payment system:
- Java 8
- Spring Framework (Core, MVC, Boot, Data, Batch)
- JAX-RS (Jersey)
- Amazon Web Services (EC2, S3, SQS, DynamoDB, CloudFormation, RDS, and more)
Use of microservices is an important pillar in how the service is built. But it is not without challenges.
“It is hard to move from monolithic software principles to microservices. And microservices is still quite young, and we feel we are exploring very new territory both when it comes to software architecture and development. It can be quite a challenge to keep the services connected. To pick an example: A single transaction can use 8 different databases and services, all developed independently,” says Gurda.
- Blog article from the team: Comparing Dropwizard and Spring Boot in microservices development
The development team for Schibsted´s new payment platform works fully distributed. In Krakow is a team of 8 software developers, while four developers and two infrastructure specialists are based in Oslo, Norway.
Tech lead Claes Bergsten says they use an adjusted Scrum/Kanban methodology in the daily work. All developers work on the same backlog, no matter where they are located.
“We have daily stand-ups, but no roles in the team. All are software engineers. We put a lot of focus on quality control, and all engineers take part in checking the work of their colleagues”
Working in a distributed team is never easy, thinks senior developer Jan Gurda. “In my experience it requires lots of meetings and frequent contact. That is why we meet daily and often have follow-up meetings as well.”
The teams spends much time discussing what are the best solutions. Sometimes the arguments can be rather heated before a final conclusion is reached.
“Developers in our team have strong opinions and like to prove their proposal is the best. But in the end no one feels bad, because we all concluded for the alternative with the strongest arguments.”
- Blog article from the team: Mocking Amazon SQS with ElastiqMq
Books to read
The team members love to challenge each other to learn as much as possible. And they also made a list of five mandatory books all members have to read to stay on top:
- Effective Java by Joshua Bloch
- Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
- Guided Object-Oriented Software, Guided by Tests by Steve Freeman
- Building Microservices by Sam Newman
- The Docker Book: Containerization is the new virtualization by James Turnbull
The payment team offers a common payment infrastructure for online and mobile transactions, with support of card-on-file to be used across Schibsted sites. This is now being rolled out in the Nordics and for Leboncoin in France. Later it will be rolled-out to the other sites in Europe and to other continents.
The peer-to-peer payment solution has recently been launched on a small part of Finn.no, Norway´s largest classified ad site with about 2,5 million unique users every week.
The first version supports direct transfers for low-price items or for people who meet. The next step is to ad escrow functionality to handle distance transactions where sellers ship the product to the buyer. The escrow will work as a trusted third-party who holds the money while the product is in transit.
The plan is to deliver to Blocket in Sweden next and later roll out to the different classified sites in Europe.
First launch of peer-to-peer payment
The peer-to-peer payment solution has now been launched on a small part of Finn.no, Norway´s largest classified ad site with about 2,5 million unique users every week. The next step is to ad escrow accounts and later roll out to the different classified sites in Europe.
“There is a strict roadmap for the next six months. But all the ambitious plans give us more than enough to do for at least the next 2-3 years,” says Marcin Godyn.
“Does it scare you that as many as 200 million people may end up using the solution you build?”
“No, it does not scare us. But it is challenging, for sure!”
Jan Gurda adds:
“We are extremely focused on making our software reliable – and spend much of our time on that. That includes high quality of code and good tests. We are sure we will profit in the future in investing so much time in this”
New colleagues wanted
The payment team is searching for new developers both in Krakow and Oslo.
“We are looking for skilled people who cares for what he/she does, learns new things, develops his/her skills continuously and who does not compromise on quality, ” says Jan Gurda.
“And do not be afraid if you not yet know one of the technologies we use. Only one year back I did not know myself much about several of the technologies we use, such as Amazon Web Services and Docker. But with so many smart people in the team it is easy to get the necessary knowledge in cooperation with your colleagues.”