Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
I’m leaving the Netherlands soon. But as a software developer and a life learner, I cannot miss any opportunity to learn things and grow.
You might heard of Meetup, a platform to allow people to gather together for a specific event. It’s usually free. Today I booked a Meetup at World trade Center Amsterdam. I need to take a train from my place (Rotterdam) to Amsterdam. But I’m sure it will worth my trip.
The good thing about the Netherlands is that you can always find things valuable in English. So I never worry about not knowing any Dutch language.
Here is the video I made for this meetup. It’s hugely informative. If you like to read, please continue to read the full content from the presentation below the video.
Bol.com, the largest online retailer in the Netherlands and Belgium, is a name many are familiar with for its diverse product range and innovative approach. Today, I want to share insights from my experience working on their Angular applications and what I’ve learned about scalability, collaboration, and maintaining design consistency in a large-scale organization.
Bol.com started in 1999 as a small webshop selling books. Over time, it grew to include a broad range of products like sporting goods, home appliances, and gardening tools. By 2013, Bol.com had transitioned from being a webshop to a thriving shopping platform, inviting third-party sellers to list their products. This transformation brought massive success but also a new set of challenges, especially in scaling technology and maintaining usability.
Initially, Bol.com relied on a monolithic architecture, where the front-end and back-end existed as a single large application. While this approach worked for smaller teams, it became increasingly complex as the company scaled and more features were added. Key challenges included:
These issues highlighted the need for a more scalable and flexible architecture.
To overcome the limitations of monolithic applications, Bol.com adopted a microservices architecture. Here’s how it worked:
This approach improved scalability, team autonomy, and system performance.
As the application scaled, maintaining consistency across teams and components became a challenge. Bol.com addressed this by developing a design system—a collection of reusable UI components and guidelines that ensured uniformity.
Benefits of the Design System:
Bol.com adopted web components to ensure flexibility and interoperability. Web components are reusable, custom HTML elements that work across frameworks and browsers. By using Stencil.js, a web components generator, the team:
To manage the growing library of components, Bol.com adopted a monorepository approach. This allowed all components to exist in a single repository, simplifying versioning, collaboration, and reuse. With tools like Lerna, they ensured seamless publishing and version control.
Working on large-scale web applications at Bol.com has been a journey of learning and adaptation. Here are some lessons I’ve gained:
Bol.com’s journey from a small webshop to a technological powerhouse is a testament to innovation and resilience. Whether you’re building a startup or scaling an enterprise, the lessons from this journey can offer valuable insights.
What challenges have you faced in scaling applications, and how did you overcome them? Let’s discuss! 😊