Introduction
At Vocento, we were faced with the challenge of implementing a new frontend and backend system for the Spanish General Election and the Valencia Regional Election in 2019.
Both solutions were developed from scratch to ensure a scalable, optimized, and enduring development for many years to come.
My role and contributions
- As the Principal Software Engineer, I led and managed the backend and frontend teams, consisting of 6 professionals. I also oversaw communication and testing with the Infrastructure team.
- I spearheaded the architecture, design, documentation, development, quality assurance, deployment in production, and the final go-live of the solution.
How we did it
The system was developed with the goal of achieving maximum stability and scalability.
- The frontend was developed using JavaScript, React, and Webpack.
- The backend was created using ExpressJS Framework and NodeJS.
- To achieve maximum performance and to avoid adding another layer of complexity, we did not use a database; everything was handled in memory in real time.
- The provider data was managed with special scripts, enabling us to scrape the web, obtain the data, and parse the information in real time.
What we achieved
We developed a new frontend featuring over 30 different React Widgets, allowing us to meet all business requirements for displaying various types of visualizations across different sections (e.g., real-time bar charts, vote maps, party pact calculators, vote percentages) and to easily repurpose it for the adaptation and creation of future Elections.
In the backend solution, a cross-cutting architecture was generated with an API and a scalable and adaptable system to develop any type of Election project, supporting millions of user requests.
Results of Spanish General Election and real time data widgets:
https://www.abc.es/elecciones/elecciones-generales/resultados/2019-28a/
Challenges, difficulties and solutions
General Elections are the main project for any media outlet, posing the challenge of supporting the highest user traffic of the year on Election Day, thus representing a significant milestone in the Business.
The choice of very stable solutions is critical in a project of this type.
-
As a Technical Lead, I faced the challenge of leading the teams, conducting test batteries with the Infrastructure team, and performing real-time data load tests.
-
One of the greatest challenges was supporting the high volume of user requests. The media’s homepage needed to support millions of requests in a very short time, as the entire country connects to know the real-time results throughout the day, especially at the end of the day. Servers and the backend were carefully optimized to support the volume of user requests.
-
Another complex challenge was the time constraint to develop the project and ensure that nothing failed on the production release day. Everything had to work flawlessly. The challenge was complex because the tests depend on external data providers that offer simulations once a week a few months before the Elections, providing simulated data that needed to be scraped and parsed in real time. This is a common process carried out in this way by different companies to display the Elections in real-time.
Results
On April 28th, the General Elections were held in Spain, and the project was a success.
The new backend and frontend systems performed flawlessly, handling the load of millions of user requests and displaying the information in real-time on the homepage and election pages.
Conclusion
Developing a critical and strategic company project requires assuming great responsibility and conducting exhaustive tests to ensure its success. The solutions that have been created will allow us to reduce costs and develop new Election projects, ensuring their quality and functionality.
I would like to thank my managers for entrusting me with leading one of the most impactful and critical projects developed.