CINXE.COM
Duane O'Brien Is A Jumpsuit Wizard
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Duane O'Brien Is A Jumpsuit Wizard</title> <link rel="stylesheet" href="https://www.duaneobrien.com/assets/built/screen.css?v=ae7c447e44"> <meta name="description" content="General open source ecosystem and sustainability observations from Duane O'Brien, Jumpsuit Wizard"> <link rel="canonical" href="https://www.duaneobrien.com/"> <meta name="referrer" content="no-referrer-when-downgrade"> <meta property="og:site_name" content="Duane O'Brien Is A Jumpsuit Wizard"> <meta property="og:type" content="website"> <meta property="og:title" content="Duane O'Brien Is A Jumpsuit Wizard"> <meta property="og:description" content="General open source ecosystem and sustainability observations from Duane O'Brien, Jumpsuit Wizard"> <meta property="og:url" content="https://www.duaneobrien.com/"> <meta property="og:image" content="https://www.duaneobrien.com/content/images/2023/05/Duane-Headshot-Small-2019.jpg"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="Duane O'Brien Is A Jumpsuit Wizard"> <meta name="twitter:description" content="General open source ecosystem and sustainability observations from Duane O'Brien, Jumpsuit Wizard"> <meta name="twitter:url" content="https://www.duaneobrien.com/"> <meta name="twitter:image" content="https://www.duaneobrien.com/content/images/2022/11/Jumpsuit-2.jpeg"> <meta name="twitter:site" content="@duaneobrien"> <meta property="og:image:width" content="800"> <meta property="og:image:height" content="800"> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "WebSite", "publisher": { "@type": "Organization", "name": "Duane O'Brien Is A Jumpsuit Wizard", "url": "https://www.duaneobrien.com/", "logo": { "@type": "ImageObject", "url": "https://www.duaneobrien.com/favicon.ico", "width": 48, "height": 48 } }, "url": "https://www.duaneobrien.com/", "name": "Duane O'Brien Is A Jumpsuit Wizard", "image": { "@type": "ImageObject", "url": "https://www.duaneobrien.com/content/images/2023/05/Duane-Headshot-Small-2019.jpg", "width": 800, "height": 800 }, "mainEntityOfPage": "https://www.duaneobrien.com/", "description": "General open source ecosystem and sustainability observations from Duane O'Brien, Jumpsuit Wizard" } </script> <meta name="generator" content="Ghost 5.115"> <link rel="alternate" type="application/rss+xml" title="Duane O'Brien Is A Jumpsuit Wizard" href="https://www.duaneobrien.com/rss/"> <script defer src="https://cdn.jsdelivr.net/ghost/portal@~2.50/umd/portal.min.js" data-i18n="true" data-ghost="https://www.duaneobrien.com/" data-key="cc5361c6f4062aaa91c3e8febd" data-api="https://jumpsuit-wizard-pilot.ghost.io/ghost/api/content/" data-locale="en" crossorigin="anonymous"></script><style id="gh-members-styles">.gh-post-upgrade-cta-content, .gh-post-upgrade-cta { display: flex; flex-direction: column; align-items: center; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; text-align: center; width: 100%; color: #ffffff; font-size: 16px; } .gh-post-upgrade-cta-content { border-radius: 8px; padding: 40px 4vw; } .gh-post-upgrade-cta h2 { color: #ffffff; font-size: 28px; letter-spacing: -0.2px; margin: 0; padding: 0; } .gh-post-upgrade-cta p { margin: 20px 0 0; padding: 0; } .gh-post-upgrade-cta small { font-size: 16px; letter-spacing: -0.2px; } .gh-post-upgrade-cta a { color: #ffffff; cursor: pointer; font-weight: 500; box-shadow: none; text-decoration: underline; } .gh-post-upgrade-cta a:hover { color: #ffffff; opacity: 0.8; box-shadow: none; text-decoration: underline; } .gh-post-upgrade-cta a.gh-btn { display: block; background: #ffffff; text-decoration: none; margin: 28px 0 0; padding: 8px 18px; border-radius: 4px; font-size: 16px; font-weight: 600; } .gh-post-upgrade-cta a.gh-btn:hover { opacity: 0.92; }</style> <script defer src="https://cdn.jsdelivr.net/ghost/sodo-search@~1.5/umd/sodo-search.min.js" data-key="cc5361c6f4062aaa91c3e8febd" data-styles="https://cdn.jsdelivr.net/ghost/sodo-search@~1.5/umd/main.css" data-sodo-search="https://jumpsuit-wizard-pilot.ghost.io/" data-locale="en" crossorigin="anonymous"></script> <link href="https://www.duaneobrien.com/webmentions/receive/" rel="webmention"> <script defer src="/public/cards.min.js?v=ae7c447e44"></script> <link rel="stylesheet" type="text/css" href="/public/cards.min.css?v=ae7c447e44"> <script defer src="/public/comment-counts.min.js?v=ae7c447e44" data-ghost-comments-counts-api="https://www.duaneobrien.com/members/api/comments/counts/"></script> <script defer src="/public/member-attribution.min.js?v=ae7c447e44"></script><style>:root {--ghost-accent-color: #000000;}</style> </head> <body class="home-template is-head-b--a_n"> <div class="gh-site"> <header id="gh-head" class="gh-head gh-outer"> <div class="gh-head-inner gh-inner"> <div class="gh-head-brand"> <div class="gh-head-brand-wrapper"> <a class="gh-head-logo" href="https://www.duaneobrien.com"> Duane O'Brien Is A Jumpsuit Wizard </a> </div> <button class="gh-search gh-icon-btn" data-ghost-search><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" width="20" height="20"><path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg></button> <button class="gh-burger"></button> </div> <nav class="gh-head-menu"> <ul class="nav"> <li class="nav-home nav-current"><a href="https://www.duaneobrien.com/">Home</a></li> <li class="nav-about"><a href="https://www.duaneobrien.com/about/">About</a></li> </ul> </nav> <div class="gh-head-actions"> <a href="https://hachyderm.io/@duane" rel="me" class="gh-icon-btn"><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Mastodon</title><path d="M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 0 0 .023-.043v-1.809a.052.052 0 0 0-.02-.041.053.053 0 0 0-.046-.01 20.282 20.282 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 0 1-.319-1.433.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546.376 0 .75 0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311 0 2.302.5 2.962 1.498l.638 1.06.638-1.06c.66-.999 1.65-1.498 2.96-1.498 1.13 0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12z"/></svg></a> <button class="gh-search gh-icon-btn" data-ghost-search><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" width="20" height="20"><path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg></button> <a class="gh-head-btn" href="#/portal/signup" data-portal="signup"> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor" xmlns="http://www.w3.org/2000/svg"> <path d="M3.33332 3.33334H16.6667C17.5833 3.33334 18.3333 4.08334 18.3333 5.00001V15C18.3333 15.9167 17.5833 16.6667 16.6667 16.6667H3.33332C2.41666 16.6667 1.66666 15.9167 1.66666 15V5.00001C1.66666 4.08334 2.41666 3.33334 3.33332 3.33334Z" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> <path d="M18.3333 5L9.99999 10.8333L1.66666 5" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> </svg> Subscribe </a> </div> </div> </header> <main id="gh-main" class="gh-main gh-outer"> <div class="gh-inner"> <article class="gh-latest gh-card post no-image"> <a class="gh-card-link" href="/invest-your-budget-surplus-in-your-open-source-infrastructure-i-am-here-to-help/"> <header class="gh-card-header"> <div class="gh-article-meta"> <span class="gh-card-date">Latest — <time datetime="2023-10-17">Oct 17, 2023</time></span> </div> <h2 class="gh-article-title gh-card-title">Invest Your Budget Surplus In Your Open Source Infrastructure. I Am Here To Help.</h2> </header> <p class="gh-article-excerpt">As we progress into Q4 and the end-of-year budget cycle for many organizations, I’d like to have a conversation about budget surplus, and how to steer those dollars away from marketing efforts and into your open source infrastructure. Yes, Budget Surplus Is A Thing We can call it “budget</p> <footer class="gh-card-meta"> <span class="gh-card-duration">3 min read</span> <script data-ghost-comment-count="652ed8a7f76ff3000147b8f6" data-ghost-comment-count-empty="" data-ghost-comment-count-singular="comment" data-ghost-comment-count-plural="comments" data-ghost-comment-count-tag="span" data-ghost-comment-count-class-name="gh-card-comments" data-ghost-comment-count-autowrap="true" > </script> </footer> </a> </article> <div class="gh-wrapper"> <section class="gh-section"> <h2 class="gh-section-title">More issues</h2> <div class="gh-feed"> <article class="gh-card post no-image"> <a class="gh-card-link" href="/critical-human-infrastructure/"> <header class="gh-card-header"> <h2 class="gh-card-title">Funding Critical Human Infrastructure: Getting Started On The Path</h2> </header> <div class="gh-card-excerpt">In my last post about Critical Human Infrastructure, I laid out some background context for the term, and provided a baseline for the discussion: Critical Human Infrastructure just means caring about Humans too. So many of our funding initiatives focus on sustaining open source projects, without also focusing on sustaining</div> <footer class="gh-card-meta"> <time class="gh-card-date" datetime="2023-06-07">Jun 7, 2023</time> <span class="gh-card-duration">3 min read</span> <script data-ghost-comment-count="646fed9a4e288900011ecf0e" data-ghost-comment-count-empty="" data-ghost-comment-count-singular="comment" data-ghost-comment-count-plural="comments" data-ghost-comment-count-tag="span" data-ghost-comment-count-class-name="gh-card-comments" data-ghost-comment-count-autowrap="true" > </script> </footer> </a> </article> <article class="gh-card post no-image"> <a class="gh-card-link" href="/what-i-mean-when-i-say-critical-human-infrastructure/"> <header class="gh-card-header"> <h2 class="gh-card-title">Initial thoughts about Critical Human Infrastructure.</h2> </header> <div class="gh-card-excerpt">A couple weeks ago I appeared on the excellent Open Source Stories podcast with the MOST excellent Julia Ferraioli. The theme of the podcast was Critical Human Infrastructure. Then, Last week, I wrote a blog post to tell the world "I Am Ready For My Next Role." In</div> <footer class="gh-card-meta"> <time class="gh-card-date" datetime="2023-05-25">May 25, 2023</time> <span class="gh-card-duration">4 min read</span> <script data-ghost-comment-count="646c30a0b02c1200017bd888" data-ghost-comment-count-empty="" data-ghost-comment-count-singular="comment" data-ghost-comment-count-plural="comments" data-ghost-comment-count-tag="span" data-ghost-comment-count-class-name="gh-card-comments" data-ghost-comment-count-autowrap="true" > </script> </footer> </a> </article> <article class="gh-card post no-image"> <a class="gh-card-link" href="/i-am-ready-for-my-next-role/"> <header class="gh-card-header"> <h2 class="gh-card-title">I Am Ready For My Next Role.</h2> </header> <div class="gh-card-excerpt">After being laid off in March, I decided to take a couple months to decompress and create space to think about what I was looking for in my next role. In the interim, I asked that you Hire My Team. Now, I'm ready for you to Hire Me.</div> <footer class="gh-card-meta"> <time class="gh-card-date" datetime="2023-05-17">May 17, 2023</time> <span class="gh-card-duration">3 min read</span> <script data-ghost-comment-count="6462e71acbdcb6000192b5c5" data-ghost-comment-count-empty="" data-ghost-comment-count-singular="comment" data-ghost-comment-count-plural="comments" data-ghost-comment-count-tag="span" data-ghost-comment-count-class-name="gh-card-comments" data-ghost-comment-count-autowrap="true" > </script> </footer> </a> </article> <article class="gh-card post no-image"> <a class="gh-card-link" href="/hire-my-team/"> <header class="gh-card-header"> <h2 class="gh-card-title">Hire My Team</h2> </header> <div class="gh-card-excerpt">Last week, I and most of my team were laid off from Indeed. It was a difficult transition for us, to say the least. Ever since I announced that I'd been laid off, many wonderful folks have reached out with kind words and asked me "Is there</div> <footer class="gh-card-meta"> <time class="gh-card-date" datetime="2023-03-27">Mar 27, 2023</time> <span class="gh-card-duration">2 min read</span> <script data-ghost-comment-count="6421f55457d535003d72baca" data-ghost-comment-count-empty="" data-ghost-comment-count-singular="comment" data-ghost-comment-count-plural="comments" data-ghost-comment-count-tag="span" data-ghost-comment-count-class-name="gh-card-comments" data-ghost-comment-count-autowrap="true" > </script> </footer> </a> </article> <article class="gh-card post no-image"> <a class="gh-card-link" href="/thoughts-on-running-for-the-board-of-the-open-source-initiative/"> <header class="gh-card-header"> <h2 class="gh-card-title">I am running for the Board of the Open Source Initiative. Some questions, answered:</h2> </header> <div class="gh-card-excerpt">Last week, I threw my hat into the ring for the board of the Open Source Initiative. The elections open tomorrow. If you're a voting member, I hope I can count on your vote. (But you should really vote for Aeva Black with your #1 vote as she</div> <footer class="gh-card-meta"> <time class="gh-card-date" datetime="2023-03-09">Mar 9, 2023</time> <span class="gh-card-duration">5 min read</span> <script data-ghost-comment-count="640a821e451460003def86db" data-ghost-comment-count-empty="" data-ghost-comment-count-singular="comment" data-ghost-comment-count-plural="comments" data-ghost-comment-count-tag="span" data-ghost-comment-count-class-name="gh-card-comments" data-ghost-comment-count-autowrap="true" > </script> </footer> </a> </article> <article class="gh-card post no-image"> <a class="gh-card-link" href="/following-up-on-my-github-universe-talk/"> <header class="gh-card-header"> <h2 class="gh-card-title">Looking Back At My GitHub Universe Talk, And Looking Ahead To 2023</h2> </header> <div class="gh-card-excerpt">Earlier this year I had the opportunity to speak at GitHub Universe. Abby Cabunoc-Mayes (GitHub) and I recorded a great fireside chat, where I dug into the approach I've taken in leading the various funding initiatives associated with Indeed's Open Source Program. If you've</div> <footer class="gh-card-meta"> <time class="gh-card-date" datetime="2022-12-20">Dec 20, 2022</time> <span class="gh-card-duration">2 min read</span> <script data-ghost-comment-count="63a23231910d7d003d816fcc" data-ghost-comment-count-empty="" data-ghost-comment-count-singular="comment" data-ghost-comment-count-plural="comments" data-ghost-comment-count-tag="span" data-ghost-comment-count-class-name="gh-card-comments" data-ghost-comment-count-autowrap="true" > </script> </footer> </a> </article> <article class="gh-card post no-image"> <a class="gh-card-link" href="/joining-the-github-accelerator-committee/"> <header class="gh-card-header"> <h2 class="gh-card-title">Joining The GitHub Accelerator Selection Committee</h2> </header> <div class="gh-card-excerpt">I'm thrilled to announce that I'll be serving on the selection committee for the first round of the newly announced GitHub Accelerator Program. Many open source maintainers aspire to work full-time on their projects, but find themselves doing this work during personal time while also working</div> <footer class="gh-card-meta"> <time class="gh-card-date" datetime="2022-11-11">Nov 11, 2022</time> <span class="gh-card-duration">1 min read</span> <script data-ghost-comment-count="636eb10c98f58a003d803c31" data-ghost-comment-count-empty="" data-ghost-comment-count-singular="comment" data-ghost-comment-count-plural="comments" data-ghost-comment-count-tag="span" data-ghost-comment-count-class-name="gh-card-comments" data-ghost-comment-count-autowrap="true" > </script> </footer> </a> </article> <article class="gh-card post no-image"> <a class="gh-card-link" href="/what-im-doing-instead-of-twitter/"> <header class="gh-card-header"> <h2 class="gh-card-title">What I'm Doing Instead Of Twitter</h2> </header> <div class="gh-card-excerpt">I announced that I was leaving Twitter before I had most of my plan in place. I still only have part of my plan in place, but I thought I'd capture my thoughts as a way to spur action on my part. TL;DR; Here's the</div> <footer class="gh-card-meta"> <time class="gh-card-date" datetime="2022-11-08">Nov 8, 2022</time> <span class="gh-card-duration">4 min read</span> <script data-ghost-comment-count="636abfb78f772e003d33d98a" data-ghost-comment-count-empty="" data-ghost-comment-count-singular="comment" data-ghost-comment-count-plural="comments" data-ghost-comment-count-tag="span" data-ghost-comment-count-class-name="gh-card-comments" data-ghost-comment-count-autowrap="true" > </script> </footer> </a> </article> <article class="gh-card post tag-news"> <a class="gh-card-link" href="/coming-soon/"> <header class="gh-card-header"> <h2 class="gh-card-title">Coming soon</h2> </header> <div class="gh-card-excerpt">I landed on Ghost for the platform I want to try for blogging this time around. Things will be up and running here shortly, but you can subscribe in the meantime if you'd like to stay up to date and receive emails when new content is published!</div> <footer class="gh-card-meta"> <time class="gh-card-date" datetime="2022-11-08">Nov 8, 2022</time> <span class="gh-card-duration">1 min read</span> <script data-ghost-comment-count="636abd87f4002d0031644718" data-ghost-comment-count-empty="" data-ghost-comment-count-singular="comment" data-ghost-comment-count-plural="comments" data-ghost-comment-count-tag="span" data-ghost-comment-count-class-name="gh-card-comments" data-ghost-comment-count-autowrap="true" > </script> </footer> </a> </article> </div> <button class="gh-loadmore gh-btn">Load more issues</button> </section> <aside class="gh-sidebar"> <section class="gh-section"> <h2 class="gh-section-title">About</h2> <div class="gh-about"> <section class="gh-about-wrapper"> <h3 class="gh-about-title">Duane O'Brien Is A Jumpsuit Wizard</h3> <p class="gh-about-description">General open source ecosystem and sustainability observations from Duane O'Brien, Jumpsuit Wizard</p> </section> </div> <div class="gh-signup"> <p class="gh-signup-description">Sign up now to get access to the library of members-only issues.</p> <a class="gh-subscribe-input" href="#/portal/signup" data-portal="signup"> <div class="gh-subscribe-input-text"> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor" xmlns="http://www.w3.org/2000/svg"> <path d="M3.33332 3.33334H16.6667C17.5833 3.33334 18.3333 4.08334 18.3333 5.00001V15C18.3333 15.9167 17.5833 16.6667 16.6667 16.6667H3.33332C2.41666 16.6667 1.66666 15.9167 1.66666 15V5.00001C1.66666 4.08334 2.41666 3.33334 3.33332 3.33334Z" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> <path d="M18.3333 5L9.99999 10.8333L1.66666 5" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> </svg> jamie@example.com </div> <div class="gh-subscribe-input-btn">Subscribe</div> </a> </div> </section> <section class="gh-section"> <h3 class="gh-section-title">Topics</h3> <div class="gh-topic"> <a class="gh-topic-item" href="/tag/news/"> <h3 class="gh-topic-name">News</h3> <span class="gh-topic-count"> 1 issue </span> </a> </div> </section> </aside> </div> </div> </main> <div class="gh-subscribe"> <div class="gh-outer"> <section class="gh-subscribe-inner"> <h3 class="gh-subscribe-title">Subscribe to Duane O'Brien Is A Jumpsuit Wizard</h3> <div class="gh-subscribe-description">Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.</div> <a class="gh-subscribe-input" href="#/portal/signup" data-portal="signup"> <div class="gh-subscribe-input-text"> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor" xmlns="http://www.w3.org/2000/svg"> <path d="M3.33332 3.33334H16.6667C17.5833 3.33334 18.3333 4.08334 18.3333 5.00001V15C18.3333 15.9167 17.5833 16.6667 16.6667 16.6667H3.33332C2.41666 16.6667 1.66666 15.9167 1.66666 15V5.00001C1.66666 4.08334 2.41666 3.33334 3.33332 3.33334Z" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> <path d="M18.3333 5L9.99999 10.8333L1.66666 5" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> </svg> jamie@example.com </div> <div class="gh-subscribe-input-btn">Subscribe</div> </a> </section> </div> </div> <footer class="gh-foot gh-outer"> <div class="gh-foot-inner gh-inner"> <div class="gh-copyright"> Duane O'Brien Is A Jumpsuit Wizard © 2025 </div> <nav class="gh-foot-menu"> <ul class="nav"> <li class="nav-sign-up nav-current"><a href="#/portal/">Sign up</a></li> </ul> </nav> <div class="gh-powered-by"> <a href="https://ghost.org/" target="_blank" rel="noopener">Powered by Ghost</a> </div> </div> </footer> </div> <script src="https://www.duaneobrien.com/assets/built/main.min.js?v=ae7c447e44"></script> </body> </html>