Quality Week: 5 days for engineers to solve the things that annoy them most

Published

Apr 19, 2024

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 companion 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 social occasion lets Ripplers 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: Integrated Radon for checking cyclomatic complexity in pull requests and generating 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 dead code 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: 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: Reduced Middesk API failures from 700 to 14 (98%) and set up an automated troubleshooting feature to identify future failures, reducing 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: Implement new best practices in writing Go code and develop 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: Deprecate outdated assets and use 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 page enhancements

Challenge: Rippling’s Global Workforce page had unnecessary API calls, data serialization, and inessential code.

Solution: The project only computed essential data and removed the dregs. 

Outcome: Uddhav’s team enhanced the page’s performance and addressed latent issues in other critical pages.  

last edited: April 30, 2024

The Author

The Rippling Team

Global HR, IT, and Finance know-how directly from the Rippling team.