.jpg)
For some time, Upwork has focused on site speed performance to provide fast, interactive experiences for users. This post highlights our site speed improvement efforts by establishing better culture, processes, and tools.
Site speed has real business impact to any technology business and is no longer a debated topic among leading software vendors:
More studies are available on WPOStats.
As a global business, Upwork needed to do a better job prioritizing site speed performance. The goal was to organize engineering teams to improve speed and sustain it moving forward.
A new SPEED team was formed and three frontend engineers joined the team, all of whom were interested and dedicated to improve site speed performance. Three strategic pillars of work were identified:
Pillar 1: Measurement and monitoring
Pillar 2: Exploring, testing, documenting, and sharing best practices, patterns, and trends
Pillar 3: Influencing the entire organization by partnering with teams
“You cannot improve something you cannot measure.”
Upwork prioritized the goal to consistently measure site speed performance. Early on, an agreement was made among stakeholders on what metrics, tools, and principles to use.
By using Real User Metrics (RUM) as a performance-based field approach, Primarily Core Web Vitals were prioritized to measure and optimize:
Following Google’s recommendations, Upwork’s site performance for each Core Web Vital is reported as either:
Red: Poor performance
Yellow: Performance needs improvement
Green: Performance is good enough
This is shown in the diagram below:

Upwork adopted Perfume.js as part of the performance monitoring library to be used across all Upwork site pages. This software measures and collects Web Vitals using Real User Metrics (RUM) along with the ability to also track the following:
Once Primarily Web Vitals are collected, the information needs to be presented in a visually straightforward and consistent way. The entire organization required a simple UI Interface to gain insights for every page, for teams, and for business pages. The UI also needed filtering capabilities to allow picking intervals and offsets, switching between Primarily and other Core Web Vitals, and by visitor contexts:
.jpeg)
To make sure teams treat speed performance goals seriously, we introduced Speed Performance Budgets. Each team gets assigned service-level objectives (SLOs) for their owned pages. The requirement is to prioritize site speed work until the moment SLO is achieved and page Primarily Web Vitals have green status. After that, monitoring performance metrics on a regular basis may be all that is required.
The SPEED team is responsible for aggregating site-wide Primarily Web Vitals into weekly objectives and key results (OKR) reports for the leadership team. These regular status updates assure that the company treats site speed as a priority.
Individual teams also track and report on Primarily Web Vitals for their owned pages. Until SLOs are reached, teams must prioritize specific initiatives to improve underperforming pages as a quarterly goal.
On a daily basis, SPEED team examines the latest trends in site performance. Different optimization techniques and patterns are performed. The results are measured against metrics. The team closely collaborates with the frontend platform team to adopt any performance improvements to the frontend core framework.
In order to better share knowledge around SPEED performance, An internal wiki dedicated to performance has been set up to share knowledge regarding speed performance. It includes playbooks with best practices and how-to articles containing practical guidelines to approach and tackle Web Vitals.
Our senior engineer, Alexandr Guc, gave a presentation about site speed at the most recent Upwork Frontend Summit. The feedback was overwhelmingly positive proving the importance of site speed to Upwork staff members and partners.
To impact a large technology organization, the SPEED team needed to collaborate in an efficient manner with other teams. There are several ways this was accomplished.
To scale ourselves and reach every team within Upwork, we organized a Speed Performance Guild and asked every team to delegate experienced frontend engineers to improve their own site performance. They represent their teams on a regular basis, attend weekly sync meetings, participate in discussions and brainstorms, and bring best practices back to their teams. The adoption of the Speed Performance Guild within Upwork has been overwhelming.
The SPEED team acts as a service team by being approachable and helpful. We host regular audit meetings, where any team can come and inspect owned page performance and identify ways to improve. The goal is that participants should leave the meeting with enough insights and a clear plan to improve site performance.
Pre-production site speed monitoring is another technique which has become a cornerstone of Upwork’s software development lifecycle (SDLC). Teams are expected to maintain their pages performance with every new product release.
Discovering degradation after a production post-release is too late and extremely inefficient to correct. In addition, there is a risk of it becoming a customer satisfaction issue. Instead, the aim is to detect and highlight slowdowns in any Web Vital metrics before merging pull requests.
A RUM approach, highlighted in the “Pillar 1” section, that measures page performance cannot be used since there are no actual customers “hitting the branch” with code changes yet. Instead, Upwork has built an in-house hosted web page test solution and has adopted it as part of its continuous integration/continuous delivery (CI/CD) pipeline.
As a result of our efforts, Upwork.com has enjoyed a significant site-wide speed improvements on all of our primarily metrics:

Throughout the year, the SPEED team collaborated the closest with our acquisition and project catalog teams to achieve the following results:
Due to the iterative nature of site speed improvements, it can be a challenge to objectively measure business impact. To date, the following enhancements have been identified:
Inspired by the progress made, Upwork is looking forward to 2022 being the year for continued site speed improvements. Specific performance priorities include the following:
It is our plan to continue reporting speed performance updates at the end of every year.