Quality Week: 5 days for engineers to solve the things that annoy them most
You’ve likely heard of Hack Week, where engineers compete and collaborate on making new products for their companies. It’s an annual tradition we hold dear at Rippling. But just as important as what we build is how we build it.
“At fast-moving companies, teams default toward appreciating new stuff,” said Albert Strasheim, Rippling’s CTO and SVP of Engineering. “We wanted to show we also cared about the unglamorous, cleaning-of-the-basement work. So Quality Week was born.”
What is Quality Week?
Quality Week is one week out of the year when hundreds of Rippling engineers come together to improve existing tools, products, and processes. Participants get five workdays of undisturbed time to identify areas of improvement and enhance the quality of Rippling products—embarking on projects like firming up internal documentation, weeding out dead code, and debugging. The result: a clear runway for our engineers to make better tools for our customers.
“One of the things that makes engineers the saddest is when they feel like they’re doing something repetitive, painful, or inefficient,” Albert said. “Quality Week is about creating space for them to address those issues in their day-to-day work, instead of brushing them under the rug.”
New and improved
At Rippling, Hack Week and Quality Week are complementary events that run six months apart. “Something our CEO Parker Conrad always emphasizes is that speed and quality are not a tradeoff,” Albert said. ”We want to do both.” Setting aside a dedicated week for each helps us honor that dual commitment.
Handy product refinements
During this year’s Quality Week, teams worked on 118 projects, removed 137 feature flags, and submitted nearly 2,500 code commits on the Rippling website—the highest number in a single week all year.
Several projects made a profound impact:
- Dead code removed: One team cleaned up 237,000 lines of unused code across 5 Rippling products and critical core infrastructure (without any regression!)
- Errors begone: An operational retool decreased Middesk API errors by 98%
- Faster systems: A newly implemented system allowed engineers to reformat Python code in 18 seconds, compared to 25 minutes previously—a 98.75% performance improvement
According to Albert, this work, while unglamorous, relieves heavy burdens across Engineering teams.
Engineers spend a lot more time reading code than writing it. Having a bunch of dead code lying around is like death by a thousand cuts.
Albert Strasheim
CTO at Rippling
“What we’re doing is very challenging software development. Anything we can do to help our team help our customers is a huge win for us,” Albert said.
How does Quality Week work?
Rippling Executive Assistant Whitney Powers organizes Quality Week with a volunteer committee. Before the event kicks off, our company’s Engineering leaders pre-approve Quality Week projects. The main project categories are:
- Foundational fixes: Improving core, day-to-day processes
- Bug bashing: Finding and fixing pesky code issues to reduce operational burdens
- Enhanced experiences: Retooling systems for customers and internal teams
- Reduced redundancies: Clean-ups that bolster documentation and purge dead code
But these are just suggestions, as Albert encourages engineers to think about their biggest pain points and how to best address them. “We explicitly don’t do top-down prioritization,” he said. “We want engineers to choose the things they’re most annoyed by or slow them down in their day-to-day. That way, you get people who are passionate about specific projects and suggestions for ideas a CTO would never come up with.”
In the weeks leading up to the event, Rippling hosts mixers where engineers pitch ideas. “It’s a fun opportunity for engineers to promote their projects, round out their teams, and check out other people’s ideas,” Whitney said. The mixers provide a space for Ripplers to unwind and swap notes on how to improve products, laying the groundwork for a successful week.
Once participants finalize their pitches, they formally submit them for approval. Then, teams disperse into Slack channels to get organized and plan their projects.
From there, we clear contestants’ schedules and the games begin. “We’re all busy, but we take this week to take a step back and make space for projects we’d otherwise leave on the back burner,” Whitney said. This year, our second annual Quality Week took place from March 18 to March 22.
At week’s end, we send a survey to Ripplers across Engineering to nominate their favorite projects. Then, we pull a report that tallies the votes and announce the top 10 winners at an awards ceremony. We awarded all of this year’s winners custom Timbuk2 backpacks.
Meet your 2024 Quality Week winners
This year's Quality Week winners made a huge impact:
Nick Grisafi: Reformatting with Ruff
Challenge: Engineering teams were bogged down by slow code formatting across more than 58,000 files, which created mypy errors and possible master failures.
Solution: This project migrated Python code formatters from Black to Ruff and automated mypy error fixes.
Outcome: Code reformatting went from taking 25 minutes to 18 seconds, without any failures on master. Nick’s project is the largest use case of Ruff to date.
Quality week is my favorite week because you get to meet and work with engineers outside of your team. And afterward, you get to see the continued impact of your project.
Nick Grisafi
Rippling Engineer and 2024 Quality Week Winner
Vatsal Joshi: Fixing TypeScript errors
Challenge: After bulk migrating thousands of files from JavaScript to TypeScript to improve type safety, Rippling’s web app had more than 100,000 TypeScript and Lint violations.
Solution: Vatsal wrote a script that converted all “ts-ignore” comments to “ts-expect-error” and removed unnecessary comments.
Outcome: The project eliminated 50,000 TypeScript and Lint errors—a 50% drop in violations.
Sachin R S: In-app feedback
Challenge: There wasn’t an easy way for Rippling customers to provide product feedback inside Rippling apps.
Solution: This project developed a small lurking widget that lets customers submit feedback within Rippling apps, which automatically creates a service ticket for the proper support team to assess.
Outcome: The new widget (pictured below) will roll out to Rippling products post UX enhancements.
With our fast-paced development cycle, it's easy to overlook certain aspects that could improve products’ quality. We recognized the need for a mechanism to gather rapid feedback for a new product, and Quality Week was the perfect occasion to build one.
Sachin R S
Rippling Engineer and 2024 Quality Week Winner
Devansh Jain: Improving code quality
Challenge: Sections of Rippling’s codebase grew complex, creating technical debt and making code less predictable.
Solution: The team integrated Radon for checking cyclomatic complexity in pull requests and generated a report on GitHub.
Outcome: Auto-generated pull request reports on GitHub will now help engineers proactively address quality issues while writing code.
Jainul Aslam: Dead code cleanup
Challenge: Rippling accumulated a lot of dead code over time, which created maintenance overhead, debugging difficulties, and readability issues for engineers.
Solution: This project used Vulture to generate a dead code report, manually classified false positives, and ensured a continuous integration (CI) build passed without any failures.
Outcome: The team removed 237,000 lines of dead code, discovered 6,300 unused function methods, and eliminated nine unused DB modules. This sped up systems and made it easier for engineers to spot bugs.
Kaushik Bharuka: Operational retooling
Challenge: Rippling uses Middesk’s business software for state and local tax registration APIs, but faced 700 failures engineers had to manually troubleshoot.
Solution: Kaushik’s team implemented a validation framework that flagged errors on Rippling’s end before APIs were invoked to Middesk.
Outcome: The team reduced Middesk API failures from 700 to 14 (98%) and set up an automated troubleshooting feature to identify future failures, trimming manual work for ops teams.
Rob Lambeth: Usability testing
Challenge: Ripplers on opposite coasts wanted to test a new navigation paradigm to make it easier for customers to move between products in Rippling’s mobile app, but such tests work better in-person than remotely.
Solution: Rob designed a cost-effective new usability test “lab” by using multiple cameras, screen shares, and a Figma prototype for Rippling users and customer admins.
Outcome: The project pre-emptively found usability frictions, which reduced costs and gave designers opportunities to try new ideas in low-stakes settings, get feedback from users, and better understand customer needs.
Abhinav Gupta: Automating Go updates
Challenge: Rippling engineers had to manually update Go code across multiple repositories.
Solution: The team implemented new best practices for writing Go code and developed modules for reviewing it.
Outcome: The project envisioned a new framework for automating Go updates, which will help Rippling engineers build more robust systems.
Susie Liu: Expunging Tableau
Challenge: Rippling’s Tableau repository had a bloated number of data assets, which led to slow processing times, confused end users, and a lack of code traceability with custom SQL.
Solution: The team deprecated outdated assets and used dbt Core methods to streamline data processing.
Outcome: Susie’s project cleaned up more than 200 data assets on Tableau and organized dashboards into collections for easier navigation.
Uddhav Mishra: Global Workforce tool enhancements
Challenge: A Rippling Global Workforce tool was encountering high latencies for page load.
Solution: The team addressed these delays by identifying bottlenecks through profiling and enhancing API response times by refining data serialization, eliminating redundant data, and optimizing processes preceding serialization.
Outcome: These efforts led to notable enhancements in page performance, culminating in a substantial reduction of 30-50% in API latencies across the affected pages. The pages now operate efficiently, even for large-scale enterprises.