_blogs
// blogs / 20260418.md
// blogs / 20260418.md
Dev Log: April 18 Wrap-up
Overview
Today was a bit of a context-switching marathon. I spent the first half of the day deep in backend logic—fixing reporting bugs and handling timezone headaches—and the second half finally giving my personal portfolio some much-needed visual polish with a proper light mode.
What I Worked On
Making timestamps human-readable
One of the more satisfying tasks today was updating our internal Python HTTP tool to handle timezones properly. Before, it was just spitting out raw millisecond timestamps, which isn't exactly user-friendly. I added logic to dynamically grab the user's timezone from the session and automatically convert those messy millisecond values into readable strings. It’s one of those small UX wins that makes a huge difference for whoever is looking at the logs.
Squashnig a reporting bug
I had to dive back into the reporting engine to fix a weird issue with attachments. Apparently, when a specific profile was active, the report was failing to pull in the correct attachment data. I realized we weren't checking the alternative data groups when the primary one came up empty. I added some better logging and a fallback to ensure attachments get processed regardless of the profile type. It was a classic "why is this null?" moment that took longer to track down than to actually fix.
Bringing light mode to my portfolio
I finally got around to implementing light mode for my portfolio. It started as a simple ThemeProvider setup in Next.js, but as always, the devil was in the details.
- Mobile Layout: The theme toggle felt buried in the footer on mobile, so I moved it up to the header where it actually makes sense.
- Styling Tweaks: I had to go through the
Aboutsection and swap out a bunch of hardcoded dark-theme borders and backgrounds for more flexibleTailwindclasses. - The Struggle: Getting the mobile menu to play nice with the new theme toggle while maintaining a clean look was a bit of a back-and-forth, but it feels much more cohesive now.
Wrapping Up
It feels good to have the portfolio looking decent in both modes. Switching between Java, Python, and React in a single day can be draining, but it keeps things interesting. Tomorrow, I’ll probably stick to the backend to wrap up some of the remaining logic for the request tools. Catch you then.