skip to content

Autostrada Wielkopolska

Custom solution for the second longest highway in Poland 🚗

Autostrada Wielkopolska

My biggest freelance project for my largest client, a company with over $50 million in share capital. Does that sound impressive? It should, and rightly so 🔥

This achievement was earned through more than 700+ hours of hard work, over 40+ hours of meetings, numerous corrections, stress, and constantly changing requirements.

Fortunately, the end result was quite good, and I learned that receiving positive feedback from end users is the best feeling you can achieve in this job.

Enough with the introduction, let's dive into what we've accomplished!

Tech stack

Our choice of tech stack might be controversial, but we bet on WordPress CMS as the source of truth.

Why?

Our client wanted a fast and simple way to manage data on the site. While relying solely on WordPress isn't ideal, we enhanced it with additional capabilities.

Everything was written in TypeScript, and we used powerful CSS to create a stunning user experience. We even incorporated React, primarily for the translation feature, as the app is available in both Polish and English.

The website loads in approximately** ~0.5** seconds, significantly faster than other highway websites 🚀

It includes an interactive road map where users can choose their trip and see current roadworks, available restaurants, toilets, etc. (I can't even count the hours spent making it fast and accessible 😁).

Additionally, we introduced several integrations to gather real-time events and road conditions. Users can check current traffic jams without causing disruptions on the road. Pretty cool, right?

We picked bulletproof tech
We picked bulletproof tech

Problems

As of writing these I decided to split this section into two parts: Collaboration and Technical. I still couldn't believe how many problems I could mention! 😅

Collaboration

Anyone who has worked with a client of this size will recognize common challenges:

  • Asymmetry of information
  • Problems with work delegation
  • Constantly changing requirements
  • Last-minute decisions before launch

How did we tackle them?

Detailing our approach requires a separate article, but in short, we developed a special framework for managing the entire project, blending Agile and Scrum methodologies 🎯

This allowed us to deliver quickly (deploying to production every week) and with minimal bugs (only three bugs reported by end users).

Working with a large team is challenging, especially in terms of communication. However, establishing and organizing everything at the beginning of the project can streamline your workflow and enable you and your teammates to deliver the best possible value 💪

Remember: communicate first, code second.

Technical

Two main technical challenges stood out for me:

  1. My ignorance of WordPress 😬

    I stereotypically assumed that WordPress was an outdated tool with poor performance and developer experience.

    While this is partially true, it remains one of the most widely used CMS platforms in the world.

    Why is this important?

    Because clients care more about easily manipulating data in an interface they're familiar with than the underlying technology. We spent a lot of time optimizing performance, and I had several sleepless nights to get everything right.

    Was it worth it? Judge the final effect yourself on the live website.

  2. Advanced SVG manipulation 🎨

    I wasn't very familiar with vector graphics and needed to spend time learning how they're created and what the syntax means.

    We used SVGs extensively, especially in the interactive map on the home page, to ensure it was fast and accessible for everyone.

Apart from these challenges, I felt confident in my skills.

We wrote tons of CSS to create beautiful motion transitions and animations. As a real fan of CSS, it was pure joy for me to finally use my skills to the fullest and produce some production-ready work.

Working with a client could be hard
Working with a client could be hard

Lessons learned

Where should we start? Do we have that much time? 😅

Effective communication with the client is essential. Clear and frequent updates help manage expectations and reduce misunderstandings.

What I didn't know - in large projects, requirements will change. Being flexible and adaptable to these changes is vital. Developing a robust framework for managing changes can help maintain project stability and progress 🔥

Next one, performance. Its optimization should be a priority. Clients may not understand the technical details, but they will notice if the website is slow. Investing time in optimizing load times and ensuring a smooth user experience is crucial for client satisfaction.

Regular deployment and thorough testing can catch issues early and ensure that the product remains stable. Deploying to production every week and maintaining a low bug count was a key factor in the project's success.

Last, but not least - anticipate and plan for potential issues. Whether they are technical challenges or client-driven changes. Having contingency plans can help mitigate risks and keep the project on track.

I hope (**and now I know!), **that these lessons guide my future projects and I won't be surprised next time when I encountered them 💪

Remember: plan for the unexpected and learn on mistakes.

This map is interactive!
This map is interactive!
Bartosz Zagrodzki
Written by Bartosz Zagrodzki

Blogger, software engineer and the main coordinator of this website, he has lots of ideas and won't hesitate to use them! He lives in Poland.

Join 2,000+ readers and get infrequent updates on frequent projects.

+90

I promise not to spam you or sell your email address.