Big update from the last two weeks was shipping a search & filter feature on Preceden:
Hat-tip to Milan for the excellent UI work on the search field.
Also did some more performance work that has had noticeable improvements:
Including realizing that jQuery has been loading unminified for years (damn):
I’ve been going pretty hard on product work the last two months and probably should start putting more marketing work (or at least hiring a contractor who can help there), but for now I’m still excited about the product roadmap and will be focusing on it for a while.
This month we hired a new data lead and I’ve been busy bringing him up to speed on all things data at Help Scout. The training is all somewhat rushed because my wife and I have a baby due at the end of May (in 8 days!) and I’m going to take about a month off and want to make sure the new lead is set up for success before I head out.
The author is a journalist who has interviewed dozens of incredibly successful investors over his career. He compiled a lot of their key investing and life advice into this fantastic book.
I’m more of an index fund kind of guy myself, but I’ve really enjoyed reading about how these folks think about investing, bubbles, long term thinking, volatility, quality, and a lot more.
Gratitude Journal – every night before bed for the last few weeks I write 3 things I’m grateful for in a small moleskin notebook that I keep on my bedside table. I’ve experimented with gratitude journaling in the past using the 5 Minute Journal but I didn’t like the format of the 5 Minute Journal and wound up abandoning it (daily affirmations, ugh). Now I’m just doing the gratitude journaling and have seen a noticeable improvement in my baseline happiness level. My entries are not super deep or anything, but do serve as a good reminder that I have a lot to be grateful for.
Grateful that Mason (my oldest) is curious about everything
Grateful for the chirping birds outside every morning
Grateful for the time spent reading to the kids every night
Grateful for a warm bed
Grateful for lazy Sundays at home
Grateful for working with Eli at Help Scout
Writing a few of these each each day will start training your mind to start noticing them during the day which is an easy way to improve your mood and be more grateful for what you have.
With help from Milan, Preceden’s front-end developer, we launched a big update to Preceden’s editor.
Here’s what it looked like before:
And here’s what it looks like now:
Beside the aesthetic improvements to the buttons, we moved some of the functionality into other areas of the UI eliminating the need for some of the buttons:
Reordering layers is now possible when editing a layer
Editing the legend is now under settings
CSV Import is now under settings (it’s not really a setting, but doesn’t fit well anywhere)
We also moved all of the export and sharing buttons that were below the timeline into a new menu:
Overall this takes the editor down from 16 buttons to 5, simplifying the UI a ton.
In the past Preceden tried to put all of the axis labels on a single line like this:
Notice how for January it just displays the year. This is because including the month and year won’t fit in that space.
Introducing a secondary row for the axis labels helps clean this up:
Also spent some more time on performance and bug fixes. Really happy with how the product is coming along.
What I’m working on at Help Scout
I’ve been working a lot with Help Scout’s PMs on product analytics, an area of our BI reporting that historically hasn’t gotten as much attention as finance, marketing, and sales. Over the last 18 months Help Scout has hired a lot of talented PMs and with that has brought lots of questions about how users are interacting with different areas of the product. We recently signed a contract with Heap which has helped PMs self serve a lot more than in the past, but a lot of the analysis still involves wrangling backend data which has me working with dbt and LookML most days.
Some examples of analyses I’ve worked on recently:
What % of users have sent a response in the last 1/7/30 days?
How does activity change with role (Account Owner, Admin, User) and number of users at a company?
What does weekly retention look like for our live chat tool? How does user count and industry impact it?
Wake up early – for the last few years I typically wake up when my kids get up around 7am. Recently it’s been my 2-year old banging on his door and shouting “daddy daddy!”. For the past month I’ve been setting an alarm at 6am (using my Apple Watch so it doesn’t wake up my wife) and trying to establish a better morning routine. At the moment, it usually consists of making breakfast for myself then either doing a 30-minute HIIT workout or yoga. During breakfast and yoga I’m usually listening to podcasts. If I finish before the kids get up, I just chill on the couch and keep listening to podcasts. I’m only doing this on weekdays. It’s got me feeling a lot more energetic during the days.
Delta 8 – I’ve struggled with sleeping well for the last few years, so decided to try edibles. I take half of one of these Delta 8 gummies about an hour before I want to sleep and then when I lie down I fall asleep almost instantly. I’m not doing this every night, just when my mind is overly active from whatever was going on that day. It’s made getting up earlier easier since I’ve gotten enough sleep most nights.
Weekly catchup calls – A friend of mine reaches out to me once a year to jump on a Zoom call and catch up. I recently asked him about his process for this and he mentioned he keeps a spreadsheet of old friends and acquaintances with when they last chatted and some notes about them. He makes it part of his routine to do these calls often, allowing him to stay in touch with a lot of folks. I really liked the idea so have been making an effort to do something similar. My goal right now is to either reconnect with an old friend or meet with someone new once a week. I’m not a huge fan of meetings in general, but am enjoying these 1:1 conversations with people I normally don’t interact with day to day.
Savvycal is making it easy to coordinate these calls:
There’s a scene from Malcom in the Middle that I think of often where Hal sets out to fix a light bulb and gets sucked into fixing a bunch of other things in the process:
That’s largely the story of what I’ve been doing with Preceden.
Preceden lets you drag an event around on your timeline to change its dates. When you move it to a new position, Preceden updates the event’s dates to reflect the new location. Figuring out the format for the new date is tricky and something Preceden doesn’t do well currently. For example, if you originally specified the event ended on “23 Apr 2021” and you move it to the end of April, ideally Preceden would give it a format of “30 Apr 2021” but currently it would set it to “April 30, 2021”.
Preceden has a boatload of backend unit tests, but zero frontend unit tests which would help me better test things like this. I said alright, time to figure out how to do that:
My buddy Hrishi (hey friend!) recommended Jest which proved to be a great suggestion. Within a few hours I had some basic unit tests set up and things were looking promising. But then I realized that integrating Jest made Preceden’s PDF and PNG export features break, ugh.
That eventually led me to Puppeteer a tool that basically lets you use Chrome to generate PDFs/PNGs. There’s a Ruby gem called Grover which makes it possible to integrate Puppeteer into a Ruby on Rails app. And thankfully it wasn’t too hard to make the switch… locally.
But then I pushed to staging and got a bunch of cryptic errors. That led me down a 10 hour path of updating webpacker and a myriad of other Node modules that Preceden uses and trying to figure out how to make it all play nicely together on Heroku.
Introducing Puppeteer and these other updates also caused Preceden to blow past Heroku’s 500mb slug limit (I think it came in at like 700mb?), so I had to spend a few hours figuring out how to reduce the size.
In the end, I got Puppeteer working on staging and then pushed it to production. All was well. But then a few days later Milan, the front-end developer I work with, reported that Preceden’s responsive navigation wasn’t working in production. Turns out that the various updates made it so Alpine.js wasn’t getting loaded properly. That led to more debugging.
Eventually we got that fixed too and for the moment everything is working AFAIK.
Next week I can finally circle back and add some unit tests and improve the original drag and drop date formatting issue. Hopefully.
What I’m working on at Help Scout
Our hiring funnel for the Data Lead position went like this:
3 trial projects
Last week we made an offer to one of the folks who completed the trial project and he accepted! He’ll take over the Data Lead role from me in mid-May and help take Help Scout’s data operations to the next level.
What I’m experimenting with
I had been doing a lot of YouTube HIIT workouts, but my knees were killing me so I stopped and just focused on rowing and yoga for a few months. But I miss the intensity of the HIIT workouts so started trying to figure out other ways I could get that intensity without killing my knees. I wound up finding an app called Tabata Trainer which lets you create custom HIIT-style workouts. I’ve been experimenting with different exercises to gauge how they impact my knees and seem to have found a combination that both gives me a good workout and isn’t bad on my knees:
Tabata involves working through these exercises 20 seconds on then 10 seconds off, then repeating the whole thing 8 times. For these 7 exercises, it works out to 28 minutes. I’ve been alternating each day between this and yoga and not surprisingly am feeling pretty healthy as a result.
What I’m watching
Juggling Preceden, Help Scout, etc has had me feeling spread pretty thin recently. It’s nothing compared to Mark Wahlberg’s life though:
I really enjoyed this series and it got me thinking a lot about what is enough, what are my priorities, etc.
I haven’t been good about taking vacation over the last few years but I’ve been feeling pretty wiped recently so took this mostly week off. Every time I take a few days off I’m like “Man, I really need to do this more often” and this week was no exception. Now I just need to do it more often.
Hope all is well with you all – thanks for reading.