My grandfather passed away in February (obituary). He was 89 years old, and my last remaining grandparent. Adrian and I attended the funeral together, an experience he handled well.| Clinton Blackburn
I spent a few hours debugging an incident caused by a misunderstanding of dynamic modules this week, and want to share my learnings to help others avoid my mistake.| Clinton Blackburn
I haven’t written much about the mechanics of my actual work in a while since many of the platforms and frameworks I used at Stripe are proprietary, making it difficult to write about them and share code in a useful manner. My new company, Vori, is a startup and we take heavy advantage of open source software, so I can more easily write about my work and share code.| Clinton Blackburn
I no longer maintain any personal sites powered by WordPress. This site migrated to Jekyll in 2019. I held off on migrating my photography site because of the custom plugin used to pull images from Flickr. This plugin helped simplify sharing photos for posts, portfolios, and customer downloads. I uploaded photos to Flickr, set a metadata tag on the page/post with the Flickr photoset ID, and the plugin did the rest.| Clinton Blackburn
A colleague at Stripe had a baby a few months before Adrian was born, and shared his list of baby items and learnings with me. Adrian is nearly seven months old, so I figured I’d pay it forward and do the same.| Clinton Blackburn
I finally solved a WordPress problem that’s bugged me for the past few weeks! MITCNC has a number of pages under the /programs/ path that describes our various initiatives and lists the volunteers in charge of them. Many of these pages are custom templates with hard-coded content, and require a Git commit and deploy to update. We want to get back to doing updates in WordPress Admin so that any of our volunteers can make content changes. My solution to this problem is to implement a custom p...| Clinton Blackburn
I’ve talked a lot about MITCNC’s migration to Stripe and the underlying software for the WordPress site. This post wraps up the MITCNC series by detailing how we handle data and reporting. Ironically, despite being last in the series of posts, this was my first project with MITCNC. I started work on this project because we didn’t have a good, automated, method of combining data from our disparate systems. We were using iModules for membership management and Eventbrite for event registra...| Clinton Blackburn
NOTE: Although I am a Stripe employee, this is my personal blog. None of what I will describe has an official recommendation from Stripe. Additionally, if you follow me down this migration path, ensure that you do so in a manner that is compliant with the PCI Data Security Standard (PCI DSS).| Clinton Blackburn
Over the past six months I’ve been working on changes to mitcnc.org, the homepage of the MIT Club of Northern California (MITCNC), and the portal through which alumni join the club and register for events. During this time we’ve updated our SSO integration with the MIT Alumni Association, loaded new data to our data warehouse (hosted in BigQuery), changed server configurations, improved our deployment and observability processes, and moved our memberships processing to Stripe Billing. Thi...| Clinton Blackburn
I’m onboarding new engineers at Vori, and finally took some time to write a few ideas I’ve been kicking around and sharing internally. I have personally found these practices helpful over the past few years, and think others might, as well. This isn’t applicable to only junior engineers, or new hires (despite the title). I didn’t learn some of these lessons until I was eight years into my career as a tech lead at edX, or a couple years later at Stripe.| Clinton Blackburn