• While in isolation, I’ve found that introducing new things is one way of making the experience more pleasant rather than relying on the same day-to-day to get us through it. New recipes to cook; new shows to watch; new games to play, etc. Prior to the lockdown, I worked remotely, so video calls are nothing new, but now everyone is remote, and I’m working from home with all my neglected cameras sitting around.

    A couple years ago, a friend of mine wrote a blog post about video conferencing with a proper camera, which first introduced me to the idea. Then another friend wrote a post. And another friend wrote theirs. I always thought this idea was novel, but too expensive and clutter-prone—however, I wasn’t isolated in my cluttered apartment back then. I figured this is as good a time as any to try something new and add some delight to my video calls, so I ordered the adapter and set everything up on my makeshift dresser/standing desk.

    Mirrorless webcam setup

    A Sony A7 and Zeiss 55mm f/1.8 lens... as a webcam

    Mirrorless webcam photo

    What a jabroni.

    Despite how much better it looks than the built-in webcam, it’s such an initial distraction and not a great look when everyone else on your team has regular webcams. There’s also no way I’d be able to live with all the clutter at my real desk—only if I could build everything into our call booth at Design Town without it looking like we literally mounted a legit camera to only use for video calls.

  • Realizing that this work-from-home situation isn’t going to change anytime soon, I’ve started establishing various work “zones” in our (barely) one-bedroom apartment. In the morning, I’m on the couch. Around lunch, I switch to the kitchen table. And, whenever I need to take a call, I take it standing at my tallboy dresser. I have found myself blending my work hours into the night without realizing it, since I no longer have that clear separation when I walk home from the studio, so I’m trying to make concerted effort to close my laptop at a reasonable time and start dinner before I get too hungry.

    Last night was the first time I cooked one of my more complex recipes entirely by memory. I’m typically glued to the recipe for exact measurements and times, but I felt like winging it. I was also a lot more generous with ingredients, which panned out because Jen said it was the best it’s ever been. Now that food and cooking is such a central part of our lives, I truly feel joy in knowing that we have leftovers that will last us. I love cooking, but I also love not needing to think about food.

  • These past couple weeks, I’ve been sneaking to the studio to work, since it’s only a few blocks away, but I found myself getting depressed being alone each day. I tried working from home on Monday, which was like night and day for my morale—Jen and the cats keep good company. I don’t expect this situation to change anytime soon, so I carried my desk chair home from the studio. Now, I can at least have a more comfortable seat for my new “desk”, aka the kitchen table, instead of the wooden foldout chair that’s been destroying my back.

    After work, I’ve been playing Cities: Skylines, which is like Sim City if the details and graphics were dialed to 11. I’m so much more interested in city planning now, and determined to develop a sustainable city. Aside from video games, I’d love to chop away at the giant stack of sci-fi books gathering dust on my dresser, but I’m not exactly in the mood for my favorite genres, which tend to include virus outbreaks. I loved reading The Andromeda Strain a couple years back, but I need a more hopeful distraction right now.

  • I spent the majority of the day working on bringing client-based hourly rates to Cushion. For the past year, I’ve been on somewhat of a sabbatical from building Cushion after recovering from anxiety. I’m still handling support every day, but I haven’t been in the codebase much. Now that I’m slowly getting back into it, I’ve fallen in love with Cushion and product development all over again.

    Before deploying the update, I went on a grocery run. Each time I leave the house, the outside world feels more and more dystopian. Both our go-to bodega and laundromat closed indefinitely, so I picked up detergent to wash clothes in the tub. The grocery store only allowed five people inside at a time, so I waited in line outside until it was my turn. I welcomed the extra precaution as I really appreciated food shopping without needing to watch out for others as much. Tonight, I’m planning to monitor Cushion while relaxing with cocktail made by Jen.

  • Yesterday, I wrapped up work, then Jen and I went for a long walk through Red Hook, trying our best to stay six feet from anyone else on the street. This was my first leisurely walk in two weeks aside from grocery runs. I cooked lemon pasta and roasted sweet potatoes for dinner. We’ve spent most nights watching The Office, which has helped lighten the mood while remaining isolated. Today, I wrote a blog post about this new post format, but I’m aiming to write a few more updates before publishing the post. As for the rest of the weekend, I’m hoping not to work too much, but it’s been a welcome distraction.

  • Casper homepage section

    While embedding the fixed-size Casper animation on the homepage, I face the technical challenge of gracefully scaling the animation on smaller viewports.

  • Blog index

    With the goal of improving the UX of the blog’s index, I redesign the layout for easier skimming over the entirety of the blog and better organizing of posts.

  • Stripe homepage section

    Initially about the Stripe section of the homepage, this post quickly diverges into a tirade about frameworks and how vanilla JS is much more future-proof.

  • Article pagination

    After realizing that my articles lead to a dead end after reading, I describe how I added pagination in the form of links to adjacent articles.

  • Context-aware logo

    This post describes the technical workings of the anchored DT logo, which changes color based on the homepage section being scrolled through.

  • Homepage concept

    Once I had enough time to come down after launching the homepage, I write about the concept of embedding all of my scroll-based animations onto one page.

  • Homepage

    Instead of accompanying the launch of the new homepage with a lengthy process post, I preferred to simply announce the page and enjoy it being out there.

  • Migrating

    In preparation for the launch of the new redesign, I walk through migrating blog posts from the previous site and flipping the switch to the root domain.

  • Centered layout

    This is a quick post about giving into the centered layout after months of enjoying the classic left-aligned layout.

  • Contact links

    After realizing the site didn’t include any way of reaching me, I add Twitter and mailto links to the header.

  • Logo

    Realizing that a redesign doesn’t mean I need to start from scratch with everything, I reclaim the logo from the previous design to use on the new site.

  • Intro

    Eager to build more than the blog, I write about bringing a new content model to the site in the form of an intro on the homepage.

  • Favicon

    Similar to the post itself, there’s not much to this description besides indicating that I replace the default favicon with my own.

  • RSS feed location

    In this post, I second-guess the path to the site’s RSS feed and refactor it to support multiple feeds, which will most likely be overkill in the end.

  • TypeScript

    Taking a break from visible progress, I implement TypeScript on the site as a way for me to finally learn what the big deal is all about.

  • Sideways progress

    Rather than moving the needle further, I spend a night going down a rabbit hole that does leave me without much to show, but I still consider it progress.

  • Pagination

    A dozen posts into writing for the new site, I recognize a need for pagination and write about implementing it in Contentful.

  • Links

    After referencing another post in the form of a link, I find myself needing to build a custom renderer in Contentful.

  • Footnotes

    A friend pointed out a mistake in an earlier post I wrote, so I implemented footnotes to allow for corrections while still maintaining the original writing.

  • Line-height

    In a move to improve readability, I adjust the leading on the site to provide more breathing room between lines of text.

  • Max-width

    With the discovery of the ch unit type in CSS and guidance on the ideal character-based line width, I set out to enforce a max-width on the site’s body copy.

  • Syntax highlighting

    With an increasing number of code snippets in my posts, I introduce Prism.js to the site for much improved syntax highlighting.

  • WebP fallback on Safari

    After fetching WebP formatted images from Contentful’s image API, I realize that Safari doesn’t support WebP and requires a fallback PNG.

  • Responsive images

    A forgotten CSS style prevents the images on the site from resizing for mobile, but a new discovery of Contentful’s image API leads to the perfect max-width.

  • Dates

    In order to maintain a chronologically aware blog, I add dates to posts and the RSS feed using the date-fns library.

  • Images

    After realizing that Contentful’s rich text renderer doesn’t include a renderer for assets, I create my own using Contentful’s image API.

  • RSS feed

    After being nudged by the elders of the web, I implement an RSS feed for those who are still sour about the demise of Google Reader—myself included.

  • Contentful preview API hiccup

    Neglecting to read the manual, I hit a snag and blame Contentful’s API before inevitably realizing that the problem exists between the keyboard and chair.

  • Hello World

    In this inaugural post, I set out on an adventure to redesign my site while documenting its process along the way.

  • Burning Out and Finding Stability

    After five years of running my own startup, I experience my first panic attack, which leads me to course correct my life in favor of good health and stability.

  • Building the Casper homepage

    I collaborated with Casper to build the animations for their new homepage. In this post, I share the story from initial call to launch.