A summary of the season’s engineering improvements

If you follow along with our Gazette, newsletter, or social media accounts, you know frequently we release new features. We’ve moved fast, and we’ve built a lot because we want to improve what we offer. This speed and productivity has required us to pause on improving some of our internal systems and backend infrastructure.

This winter, we decided that to best serve you in the long run, we should take a few months to improve all the processes, tools, and systems that keep Padlet up and running.

If you’re curious about the changes we made, you can find a rundown below.

Improvements

Upgraded to Ruby 3

  • One of the core technologies we use is a programming language called Ruby.
  • Before the upgrade, we were using a version that was no longer receiving updates.
  • This upgrade should improve Padlet’s security and performance.

Implemented a new post editor

  • We have rewritten our post editor so we can add new features faster on both our web app and our mobile app.
  • The new post editor should help us release new features faster than ever.

Improved our automated tests

  • Before we make any changes to Padlet, we run tests.
  • The tests allow us to catch mistakes that would break functionality before those changes affect your work.
  • We have migrated a large part of our test suite to a new library that will improve the experience of writing and running tests.
  • This change will make writing tests faster and easier. It will also make results more consistent over multiple tests.
  • We also added additional tests to improve the reliability of changes to the mobile experience.
  • Overall, this change should result in stabler feature releases, more trustworthy test results, faster new tests, and reduced costs for running tests.

Added crash reporting on our mobile app

  • We have added troubleshooting information to the Contact Us form that we present to users when the Padlet mobile app crashes.
  • We will use the additional information to resolve issues faster, and subsequently update users about the fix.
  • This should reduce the volume and duration of mobile app crashes.

Improved workflows for mobile app releases

  • We integrated a new technology that will allow us to improve the release and delivery of certain bugfix updates over the air to the users of our mobile app.
  • We also improved our release process for the mobile app so that it can be built more reliably.
  • These changes should make updates smoother and faster for users.

Added an AI Code Review Assistant

  • We’ve introduced an AI code review assistant to suggest edits and fixes to code changes.
  • This change should show our future AI overlords that we were on the side of artificial intelligence from the beginning and that we should be shown mercy on the inevitable day of judgment.

Implemented benchmarking

  • We have experimented with tooling that can be used to load-test our services.
  • This change should improve the availability of our services under stress.

Adjusted how developers author changes to our codebase

  • We introduced a new tool that improves how engineers make changes to the code.
  • Engineers can now more conveniently break down a single change to the codebase into a chain of smaller, additive chunks and request peer review for each of those chunks
  • Changes are thus more compact and can be reviewed more quickly.
  • The updates that engineers make to each chunk as a result of the review are automatically passed along to each subsequent link in the chain.
  • These changes also allow us to automate parts of the code review process. For example, comments can now be added automatically to certain change requests.
  • These changes will result in faster and more reliable changes to our codebase.