• It’s so hard to say goodbye to yesterday…

    I posted this reflection on our internal blog on my 10 year work anniversary in August:

    Back at the end of July 2011, I had just returned to Rochester, NY from WordCamp Boston, which had been more of an incidental happening while in Boston for other reasons, and was looking at Twitter for the first time in a while because that seemed to be the thing that all these WordPress people were doing – hashtagging and tweeting about things. At that moment, I was holed up in our bedroom while my husband had taken over our living room with 3 other doctoral music students, all of them studying feverishly for comprehensive exams before each of them headed off to a different state for their first professorship. In our case, we were headed to Wichita, Kansas, and because it was only a one-year position, it was time for something new to ground us. For me, I knew I needed to find one of those remote jobs I had started to hear about because my job as a mid-level PHP/MySQL web applications developer at the music conservatory where I had also previously been a student couldn’t really move with me.

    I saw a retweet from Brad Williams (remember when retweets were a manual copy-paste where we would type RT @whoever at the beginning?) from a @jakemgold saying that he was looking to hire a full-time WordPress developer to work from anywhere. I didn’t know who Jake was, and only followed Brad because he had co-written a book I found helpful, but it seemed serendipitous in the way I have a tendency to believe in and follow. So I messaged Jake, set up a call for later that day, told the living room study group “I think I have a job interview later”, did the interview, and then told the same group “I… think I have a new job?” If you know anything about how involved the music academia hiring process is, you’ll know that I was not very popular with our friends that day.

    So we moved to Kansas and on Monday, August 15, 2011 I started as a Web Engineer at 10up. As it so happened, I was the first full-time hire! I knew absolutely nothing about working at an agency, or what caching in WordPress was, or anything about Git besides that it was confusing (it is still frequently confusing, to be fair, but at least now I usually know what went wrong), or really much of anything that we take nearly for granted today. It was me, Jake, and a TechCrunch-focused contractor named Luke who some of you may still remember. In the literal decade since, we’ve grown to almost 300 people looking at revenue in the 8 figures, I’ve been through several title and role changes, grown two humans myself, and became one of 5 lead developers on that piece of software we were always building on top of, going from 13% to more than 42% market share, all with the steadfast support of Jake and 10up at large.

    At this point, you probably have a feeling about where this is going: yes, it’s time. I have wrapped up my long tenure at 10up and will be taking on my next challenge in the new year, after a little breather.

    Once upon a time, if you asked Jake Goldman who the dream “we made it” client would be, he would have said “The White House”. And wouldn’t you know it, just as I hit a fresh global-pandemic-enhanced round of “what am I even doing with my life” late in 2020, the opportunity to work on the actual White House site for the Biden-Harris Administration and bring my ideal vision for a visually-driven editing experience to life basically fell into our laps. We absolutely killed it – I am beyond pleased with the outcomes, and learned so much in the process. Yet despite all the things I know we can do from here for our clients and for each other in the WordPress development space, I have found myself ready to close this chapter of my working life. It’s the capstone I didn’t know I was looking for.

    If I’m being fully honest with myself, I’ve been on the path to this decision for more than two years. Part of my success in WordPress as an open source project has been that I’m generally comfortable with living in the in-between before making a decision, while still disliking the indecision enough to make sure I keep moving toward an end point. And that’s what happened here – I wasn’t sure I wanted to stay but wasn’t ready to leave 10up yet either, for whatever reason. I even took a 3 month break, barely touched a computer, looked at other jobs, and came right back. Maybe I felt like I needed that one last hurrah, maybe I hadn’t fully accepted that I would be leaving a large group of people whose company I deeply value, maybe some spidey sense was telling me that I should just wait a bit longer because something was going to happen. In hindsight I see that a really big thing did happen – I returned from my sabbatical in March 2020, just in time to see the world grind to a halt, where the changes in home life were incredibly disruptive in a way that would not have gone well on top of a new job.

    In one last showing of why it’s been so hard to imagine leaving my beloved coworkers, my teammates Jeff Paul, Darin Kotter, and Tung Du, with an outside assist from Mel Choyce, surprised me with a WordPress block plugin they had created in my honor: a fully functional Winamp player you can insert into your content. Mel even designed custom skins inspired by my keyboards and general aesthetics for somebody to implement someday soon. You better believe I cried when they showed me 😭 There’s nowhere better than 10up if you’re into WordPress, so you know I can’t leave without one last reminder that “10up is hiring” and it should be your top pick for this type of work. I mean, just look at these!

    As for what this means for my work with WordPress, I honestly don’t know! I’m still me, the same thinker and holder of many years of knowledge and history, and whether my job sponsors me or not I am still able to contribute to WordPress. I do know that over the last few years I have not been nearly as active as I once was, and am happy to continue to background support the people who currently do the bulk of the work to be their best selves without focusing on whether my title of “lead developer” is still important or chasing some concept of legacy. I don’t think I want to work on WordPress itself full-time again, and I think that should be okay – I have ideas and wants, but no real drive to manifest them myself anymore. I feel very good about the current direction of the project (yes, especially the editor) and the wonderfully smart and kind people who work on it, and am thankful to have been a part of such a great community and project for such a long time. You definitely have not seen the last of me – after two years without, I’m ready to hang out with all of you at a WordCamp again, hopefully in the near future.

    I am incredibly proud of everything I’ve accomplished at 10up and with WordPress, who I’ve become and who we’ve become, but I’m missing something. It’s an honor to be able to shape what WordPress developers do and how we think about things like the critical nature of open source and the intersection of UX and development, but I want to learn and to coach again, the way I did when I was still a musician. That’s not to say I couldn’t do that in my current surroundings, but my instinct is telling me that I need to explore this in the broader tech product space, and in a way that isn’t quite so publicly visible. I have signed an offer to be an engineering manager for a great team doing the kind of work I love, so I’ve got a pretty good sense of direction now and am deeply at peace with my decision to do something new, but I’ll leave that reveal for my first first-day in over a decade. 🙂

  • Exploring custom blocks from a PHP-centric developer UX point of view

    I’ve spent the last 8 months telling anybody I talk to about custom WordPress block development that they were way less scary and much easier than I thought they were going to be as somebody with minimal React experience, and that achieving a 1:1 editor experience where you manipulate directly in the content area instead of metaboxes or panels really comes alive when you reuse the same markup and CSS from the front-end and leverage the React components the block editor ships with. Because of that, I think a big game-changer for adoption and shifting thinking would be to find a way to unify templating between the front-end and the editor, essentially swapping the places where you output content with the corresponding editor component.

    So what had happened was… I was once again going on and on about this to Mark Jaquith, who blessedly seems to enjoy walls of text from me about programming puzzles, and it turns out he’s been thinking about the same thing as he gets into block development. A weekend later, and:

  • Making my custom keyboard even more custom

    Making my custom keyboard even more custom

    The first time I saw the Naked60BMP it was sold out, but I knew it had to be mine. The layout I like and the ability to make it Bluetooth, in something so unique and portable? Sold. So when it finally came back in stock, I immediately grabbed a red one, because that was the only one that came with the artwork on a white background. Not necessarily my favorite cover color or material, but I figured I could source some interesting PU type of material and make it look like a makeup compact that’s actually a surprise keyboard.

  • Updating a WordPress plugin with a publish metabox field for the block editor

    Many years ago (October 2015, to be exact) I wrote a small plugin that allows you to add a note when updating a post, intended as a way to describe what was changed in that revision. For the developer set, it’s kind of like commit messages for your WordPress post/content updates. It was created to fill a need on various WordPress.org sites, such as the handbooks, but it seemed generally useful so I released it as a public plugin. After one more update in August 2016, it just sat there, usable and useful but without any attention. Until this week.

    I stream my open source work semi-regularly, and decided that working through how to adapt an old plugin to the block editor (2 years late) would make for a useful exercise. So I did that, for almost 4 hours! But that’s not how long it takes to do this – the base work of this really took about 45 minutes, with the rest of the time spent chatting and chasing a bug related to revisions. So, for this post I’m going to explain the process of achieving the final code, first demonstrating what most people will need, then what I actually did because of some specific UX needs, and then dissect the revision bug and things I tried that didn’t work out.

  • KAT Dots: DIY dye sublimation keycaps

    KAT Dots: DIY dye sublimation keycaps

    Like many people, between general interest and needing a pandemic-friendly hobby, I have gotten into mechanical keyboards. In browsing through endless photos of interesting builds, I discovered a really cool keycap set called GMK Dots by a really cool designer known as biip. Originally a joke, people loved them so much that they really got made. And I loved them! But as an idea, not the colors. Even now, with a round 2 coming including a light version, it’s just not for me. I also do not like Cherry profile keycaps, which is what GMK produces. The KAT Milkshake set, also by biip, had a Dots kit with amazing colors, but is no longer available and between commanding extremely high resale prices and not quite including the colors in the rows that I would prefer, it was not a reasonable option.

    So, with copious credit to biip as the originator of the idea, I decided to make my own set using KAT Blanks, my current favorite profile, with pastel/vaporwave-ish colors to match my general aesthetic. KAT Blanks are made of PBT, which is compatible with dye sublimation (dye sub), a process in which things are heated up to the point where ink and surface fuse, creating a permanent print. With a number of retail dye sub products available, I decided this would be a fun DIY project.

    Here’s the general concept:

    • Print dots using dye sub ink or cut them out of ink-saturated paper
    • Center them on clean PBT keycaps (not ABS!)
    • Tape them down securely
    • Heat them up to 400ºF for a length of time related to pressure
    • Let cool before peeling off tape/paper
    • Mount and enjoy

    I personally have a Cricut cutter machine, and they make both dye sub markers and dye sub sheets, so in the interest of having clean circles, I decided to use the dye sub sheets. I am also currently on a full grid ortholinear keyboard so I only need to worry about 1U keycaps for the moment. Here’s the specific process I used, and then below I will get into a bunch of details / a build log.

    • Cut 6mm dots inside of 12mm squares on Infusible Ink paper
    • Cut the squares out and peel off excess material
    • Center the squares on the keycaps, add a little bit of heat conductive material to the center of the tops to level them out a bit, and then tape the whole thing down to maintain contact
    • Bake for 400ºF in a pre-heated, precise oven (Breville Smart Oven, no convection) for 4 minutes
    • Let cool before peeling everything off and mounting