openneo-blog/_posts/2024-10-03-perf-upgrades.md
2024-10-04 17:50:20 -07:00

83 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
layout: post
title: "This week in DTI: Performance upgrades!"
date: 2024-10-03 14:47:00 -0700
author: Matchu
excerpt: |
<p>Things got a bit slow this week—so we made three changes to improve pageload times across the site! <em>(Also, I'm job-hunting right now!)</em></p>
---
Hi, everyone! You might've noticed earlier this week that DTI had started to
stutter a bit. We experienced a bit of a traffic spike, and pageloads would
sometimes start taking a few seconds. (My phone was ringing off the hook to let
me know!)
![Screenshot of my email inbox: many emails on Sep 30, from health@openneo.net, saying "GlitchTip: Dress to Impress is down" or "is back up"](/assets/images/posts/2024-10-03-perf-upgrades/email.webp)
When we dug into it, there wasn't any _specific_ cause—just a bit more pressure
causing our database to max out our server's CPU a bit too often.
Rather than just throw more CPU at the problem (always an option, but never a
cheap one!), we popped open the slow query log. We found the worst offenders,
and started getting to work fixing database queries that have _always_ been a
bit slow—in some cases, for many years!
Here's the three big changes we made:
- **Item searches:** We
[sped](https://code.openneo.net/OpenNeo/impress/commit/efda6d74ab6b9405cd563ccc72bb45b4f10eabe3)
[up](https://code.openneo.net/OpenNeo/impress/commit/efda6d74ab6b9405cd563ccc72bb45b4f10eabe3)
some of our tougher filters (`occupies` and `fits`) from taking a couple
seconds at worst, to always nearly instant! _(We did this by "caching" more
data about the item's appearance onto the item record itself.)_
- **Trade listings:** Earlier this year, we added the Offering/Seeking pages to
Classic DTI, and built them faster than the Impress 2020 versions. Now, we've
[deleted](https://code.openneo.net/OpenNeo/impress-2020/commit/067da33025cbf5ed92707efa1558a658135e310e)
Impress 2020's slower version of the page, redirecting to Classic's faster one
instead. _(This brings us closer to [merging
the apps]({% post_url 2024-09-20-state-of-dti-2024 %}#simplicity), too!)_
- **Modeling progress:** When we're missing data for new items, we ask for help
at the bottom of the homepage—and we
[used the same upgrades](https://code.openneo.net/OpenNeo/impress/commit/03e4233f67935b6e8998904d41305fb41f7660af)
from item searches to make this faster, too. _(We also
[fixed](https://code.openneo.net/OpenNeo/impress/commit/fe4db1b60571cbc2b6d295cfc1230f2ebbc6f3bb)
the long-standing bug of Maraquan items asking for more help than we need!)_
And these changes don't just affect these features: when our CPU starts to peak,
_everything_ gets slower. And so when we make the site more efficient and stop
hitting those limits, _everything_ gets faster!
Since then, the site has been back to being steady, and I've been glad to see
item searches—one of the most common things that happens on the site—run much
faster for everyone!! And it's always a joy to clean up decade-old code and
bring it closer to what it always deserved to be 🥰
Hope everyone's doing well, and that you've got fun Halloween plans! I'm excited
to see your pets all dressed up again this year!!
## By the way, I'm job-hunting right now! {#job-hunting}
After a few years consulting part-time, I'm looking for a full-time role again!
(The tech layoffs came for me and my family, whuh oh—time to step it up!)
_\[Lore dump!\]_ In addition to running Dress to Impress for 15 years, I've also
been a senior engineer and tech lead at an edtech nonprofit (20152020), focused
in B2B partnerships, team mentorship, and building integrated platforms to
support multiple products across teams.
I'm primarily looking for remote roles hiring in the United States, leveled at
senior or staff—but some of that could be flexible for the right situation!
Right now, I'm especially interested in:
- Consulting firms, especially with a focus in nonprofit
- Stewarding critical integrations long-term, like identity or payments
- Shifting to information security, or technical writing
- Engineering management, for the right human-focused team
If you happen to have an opportunity, please
[reach out](mailto:dti-jobs-thank-youuu@matchu.dev) and let me know! It'd help
me out a lot.
Thanks for taking a look!
_—Matchu_