{"id":1410,"date":"2017-08-10T20:28:19","date_gmt":"2017-08-10T15:28:19","guid":{"rendered":"https:\/\/thedevcouple.com\/?p=1410"},"modified":"2017-08-11T09:29:11","modified_gmt":"2017-08-11T04:29:11","slug":"ryan-mccues-befitting-response-key-person-dependency-oss-projects","status":"publish","type":"post","link":"https:\/\/thedevcouple.com\/ryan-mccues-befitting-response-key-person-dependency-oss-projects\/","title":{"rendered":"Ryan McCue&#8217;s Befitting Response to Key Person Dependency in OSS Projects"},"content":{"rendered":"<p>After the inclusion of REST API and WP CLI in the core, WordPress developers are concerned\u00a0about which new JavaScript framework will be adopted next. And for that React vs. Vue.js has been long into a heated debate. However, the argument took wild fire once again when <strong><a href=\"https:\/\/twitter.com\/polevaultweb\" target=\"_blank\" rel=\"noopener nofollow\">Iain Poulson<\/a>\u00a0<\/strong>\u2014 PHP developer at <strong><a href=\"https:\/\/deliciousbrains.com\/\" target=\"_blank\" rel=\"noopener nofollow\">Delicious Brains<\/a><\/strong> \u2014 wrote a post about\u00a0<strong><a href=\"https:\/\/medium.com\/@iainpoulson\/key-person-dependency-in-oss-projects-or-do-we-need-to-talk-about-ryan-mccue-c048408dd29\" target=\"_blank\" rel=\"noopener nofollow\">Key Person Dependency in OSS Projects<\/a>.<\/strong><\/p>\n<h1>Ryan McCue&#8217;s Response<\/h1>\n<p>While several concerns raised in the article by Iain are very much real, there&#8217;s more to it than meets the eye. Honestly, <a href=\"https:\/\/twitter.com\/mrahmadawais\/\" rel=\"nofollow noopener\" target=\"_blank\">Ahmad<\/a>\u00a0had told me about his concerns which were pretty much along the same lines.<\/p>\n<p>I think Ryan&#8217;s response is worth a read. So, we reached out to Ryan seeking permission to repost his response from Medium to WordPress \u2014 guess what he said?\u00a0\ud83d\udc9c<\/p>\n<p>Below is what Ryan wrote, and both I and\u00a0<a href=\"https:\/\/twitter.com\/mrahmadawais\/\" rel=\"nofollow noopener\" target=\"_blank\">Ahmad<\/a>\u00a0agree with him.<\/p>\n<hr \/>\n<div class=\"eckosc eckosc_full_width_block\">\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-1437\" src=\"https:\/\/thedevcouple.com\/wp-content\/uploads\/2017\/08\/ryan-mccue-1.jpg\" alt=\"\" width=\"640\" height=\"425\" srcset=\"https:\/\/thedevcouple.com\/wp-content\/uploads\/2017\/08\/ryan-mccue-1.jpg 640w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2017\/08\/ryan-mccue-1-300x199.jpg 300w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2017\/08\/ryan-mccue-1-500x332.jpg 500w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2017\/08\/ryan-mccue-1-400x266.jpg 400w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2017\/08\/ryan-mccue-1-200x133.jpg 200w, https:\/\/thedevcouple.com\/wp-content\/uploads\/2017\/08\/ryan-mccue-1-50x33.jpg 50w\" sizes=\"(max-width: 640px) 100vw, 640px\"><\/p>\n<\/div>\n<p><span style=\"font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;\">Hi, I\u2019m Ryan McCue, the guy in\u00a0<\/span><a href=\"https:\/\/medium.com\/@iainpoulson\/key-person-dependency-in-oss-projects-or-do-we-need-to-talk-about-ryan-mccue-c048408dd29\" target=\"_blank\" rel=\"noopener nofollow\" data-href=\"https:\/\/medium.com\/@iainpoulson\/key-person-dependency-in-oss-projects-or-do-we-need-to-talk-about-ryan-mccue-c048408dd29\" data->this post<\/a><span style=\"font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;\">. I figured I should probably give time to respond, seeing as it\u2019s about me.\u00a0\ud83d\ude42<\/span><\/p>\n<section>\n<p id=\"b005\">To preface, I\u2019d like to mention that I don\u2019t think who am I or what I do affects the argument itself: there\u2019s a danger in using any library or framework based around a single developer. Vue fits that criteria, whereas React has a company with a vested stake in its strength. That said, this maintainer-based argument is a secondary one at best, and I think there are stronger reasons to pick React.<\/p>\n<h2 id=\"836e\">React vs\u00a0Vue<\/h2>\n<p id=\"b746\">On the whole, I agree with the central premise of the post: projects with a bus factor of 1 are generally not suitable for production use, especially at the scale of WordPress. With that said, I think there is a significant difference between the libraries I maintain that are in core, and the choice of a new JS framework for WordPress.<\/p>\n<p id=\"1a42\">Both of the libraries mentioned in the post (Requests and SimplePie, although I\u2019m no longer the maintainer for the latter; more on that below) are separated from WordPress through somewhat-clean abstractions. At their heart, they are functions: you call\u00a0<code>wp_http_request<\/code>\u00a0and get a response array; you call\u00a0<code>fetch_feed<\/code>\u00a0and get a response object. They\u2019re also reasonably simple (notwithstanding the complexity of the 8 different mutually-incompatible RSS specifications).<\/p>\n<p id=\"552b\">Both of these libraries are convenience libraries: Requests simplifies the work of using cURL\/PHP sockets, and SimplePie simplifies accessing data in RSS\/Atom XML documents. These are things you can use directly, but it\u2019s way easier to use the convenience of abstractions instead. Because of this, they can be swapped out for different libraries. They actually\u00a0<strong>have<\/strong>\u00a0been changed in the past (Requests is the ~4th HTTP request implementation in core, SimplePie is the 2nd feed parsing implementation). For the most part, no one needs to know or care about the underlying libraries we use.<\/p>\n<p id=\"93d5\">On the other hand, React and Vue are functional libraries, and\u00a0<em class=\"markup--em markup--p-em\">architectural<\/em>frameworks. To use them, you need to embrace their paradigms, and structure your project in a certain way. Swapping one out for the other is tough: I\u2019ve converted a Vue project to React, and it took a lot of work, due to the paradigm shift. (Alternative implementations of the same paradigm are much easier; Preact is a good alternative to React that follows the same paradigm, and can be a wholesale replacement with the compatibility layer.)<\/p>\n<p id=\"de0b\">The view library that we pick is going to massively influence the future of WordPress to the degree that nothing else will. The philosophy and management of the project matters immensely for that reason. Smaller libraries that we use don\u2019t have anywhere near that effect. (Compare jQuery vs Twemoji, e.g.) At the end of the day, neither Requests nor SimplePie mattters that much.<\/p>\n<p id=\"bca6\">I don\u2019t think it\u2019s a\u00a0<strong>major<\/strong>\u00a0concern that Vue is run by a single person. However, there\u2019s no strong vested interest in Vue from the lead; at any point, Evan You could decide to stop working on Vue, which could leave a void in the project. Conversely, Facebook can\u2019t just drop support for React, because their production software runs on it. (Vue does have third parties with vested interests, in particular, Alibaba, Baidu, Tencent, which is why it\u2019s not a major concern.)<\/p>\n<p id=\"5f85\">However, I do think it\u2019s more of many signals that contribute towards the overall picture. I also think React\u2019s patent license and commercial control contribute towards this (negatively for React) as well. The question isn\u2019t about any particular point, but rather about the overall picture, and my belief is that combined, the case is stronger for React.<\/p>\n<blockquote id=\"8747\"><p>Leaving aside any potential bias Ryan might have towards using React over Vue, and taking a look further at his argument against using Vue<\/p><\/blockquote>\n<p id=\"0041\">I absolutely have a bias towards using React, as do many of the core contributors, because it\u2019s what I know best. React is clearly the most used choice with the core contributors, which is why there\u2019s an overall bias in the discussion.<\/p>\n<p id=\"6496\">Regardless of what we pick, people who want to contribute to core need to learn it. The library that the majority of core developers are most familiar with is React. That\u2019s a strong signal towards choosing React, because if we pick something else, they will need to learn and switch to it, which is a source of friction for core contributing.<\/p>\n<p id=\"ede0\">The libraries included with core primarily affect core development, because they\u2019re the only libraries we can use. The wider community can use anything that\u2019s available. (One of many reasons I don\u2019t think the admin would work as a single-page app is because it wouldn\u2019t allow this choice.)<\/p>\n<p id=\"111c\">With that said, the choice has large flow-on effects to the community, which is why we\u2019re encouraging more discussion. There wouldn\u2019t be a discussion at all if we\u2019d already picked a library, we would have just done it.<\/p>\n<p id=\"beab\">Both React and Vue have benefits and problems. I personally think that the benefits of picking React are stronger, and that generally they outweigh the problems. I am glad that we\u2019re having a lively discussion on the topic though, because it means people do actually care. At the end of the day though, we need to make a decision, and people are inevitably going to be unhappy.<\/p>\n<h2 id=\"4a07\">Me, Specifically<\/h2>\n<p id=\"c4f5\">I\u2019d like to also clarify a few points about myself from the post. (These are not in the same order as the original post.)<\/p>\n<p id=\"e285\">If you\u2019re only interested in React vs Vue, you can stop reading here.<\/p>\n<blockquote id=\"69c7\"><p>He is the lead developer of the Requests library, the co-lead developer of the\u00a0<a href=\"https:\/\/developer.wordpress.org\/rest-api\/\" target=\"_blank\" rel=\"noopener nofollow nofollow noopener\" data-href=\"https:\/\/developer.wordpress.org\/rest-api\/\" data->REST API<\/a>\u00a0project (now merged into core), and the lead developer of\u00a0<a href=\"http:\/\/simplepie.org\/\" target=\"_blank\" rel=\"noopener nofollow nofollow noopener\" data-href=\"http:\/\/simplepie.org\/\" data->SimplePie<\/a>also used in core.<\/p><\/blockquote>\n<p id=\"94fc\">I am indeed the lead developer of Requests, and one of the focus leads of the REST API, but I\u2019m not the lead developer of SimplePie anymore. I passed maintainership of SimplePie on a fair while ago when it was clear that I couldn\u2019t give time to it.<\/p>\n<p id=\"ac3d\">In reality, I should have passed it on much earlier, but finding people willing to maintain a project who also share the same philosophy on how that should be done is tough. Crucially for projects used by WordPress, this includes working with outdated technology (PHP 5.2) and being reasonably locked into the existing API to avoid breaking backwards compatibility. Thankfully, the new maintainer (<a href=\"https:\/\/github.com\/mblaney\" target=\"_blank\" rel=\"nofollow noopener\" data-href=\"https:\/\/github.com\/mblaney\" data->Malcolm Blaney<\/a>) has been doing a great job there.<\/p>\n<blockquote id=\"c134\"><p>In contrast, [Requests] has only 37 contributors (the more active are also WP contributors), yet it was merged into core with\u00a0<a href=\"https:\/\/core.trac.wordpress.org\/ticket\/33055\" target=\"_blank\" rel=\"nofollow noopener nofollow noopener\" data-href=\"https:\/\/core.trac.wordpress.org\/ticket\/33055\" data->significantly less discussion<\/a>.<\/p>\n<p><span style=\"color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif; font-size: 16px;\">[\u2026]<\/span><\/p>\n<p><span style=\"color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif; font-size: 16px;\">If WordPress took on the Requests library, it would open it up to a wider audience of contributors and would take some responsibility for its survival out of the hands of the one maintainer, Ryan.<\/span><\/p><\/blockquote>\n<p id=\"06e5\">The idea with merging Requests into core was for this exact reason. For a long time, WordPress had its own homegrown HTTP library, WP_Http. Along with Dion Hulse, I was one of the two people maintaining WP_Http. This library wasn\u2019t usable outside of WordPress at all.<\/p>\n<p id=\"d151\">The idea with incorporating Requests was to improve the state of maintenance on the project. This separates WordPress from the HTTP library implementation, allowing other projects to use it and contribute back. It also has a high level of test coverage, helping to improve the code quality overall.<\/p>\n<p id=\"aead\">A different way to think about this is that we took the core of WP_Http, and split it into a more widely usable library. I worked on WP_Http and Requests, and the two shared ideas and workarounds (although not code directly, as Requests is under a more liberal license).<\/p>\n<p id=\"687e\">That said, Requests does only have two maintainers, myself and Dion (by way of the HTTP component of WordPress). This isn\u2019t a desirable state to be in, and I\u2019d love for more people to help out here. (If you\u2019d like to, let me know!) I\u2019d also be more than happy to move Requests to the WordPress GitHub organisation.<\/p>\n<p id=\"3698\">This is on me. I need to be more active about giving commit access, and documenting philosophies and goals rather than storing that in my head.<\/p>\n<blockquote id=\"32b3\"><p>It took Ryan over a month to respond to the trac ticket and illness meant he fell behind tagging new releases of the library which affected users managing sites with Composer:<\/p><\/blockquote>\n<p id=\"f70e\">Indeed, this was hugely problematic, and I\u2019m sorry for how this issue was handled. I didn\u2019t fully appreciate the impact or severity of the issue, and I didn\u2019t move fast enough on fixing it. Apologies to everyone this affected.<\/p>\n<p id=\"66e6\">It is worth mentioning, however, that this issue is with the integration layer with WordPress, not the underlying library. The issue here is that the HTTP component of WordPress has very few people who work on it (primarily myself and Dion); the maintenance of Requests itself is less important.<\/p>\n<p id=\"d7b4\">The key reason that there\u2019s so little time put into this is because it\u2019s boring, low-level work which has a relatively small impact. It\u2019s not the sort of shiny fun stuff that people generally enjoy working on. It\u2019s pretty stable generally speaking as well. There are a lot of other components of WordPress that suffer from this same problem (the Media library is one famous example), and there\u2019s no real systematic solution to it. You can\u2019t force people to contribute to things in open source.<\/p>\n<blockquote id=\"b55d\"><p>Human Made has a lot invested in the REST API, but perhaps some of that could be redirected to add support to the other projects that Ryan works on which are critical to WordPress.<\/p><\/blockquote>\n<p id=\"3c19\">It\u2019s worth clarifying exactly what I do at Human Made: since October 2016,\u00a0I\u2019ve been the Director of Engineering, which means I oversee a lot of different things. This includes internal tooling, improving the life of our developers, and wider efforts in the community. Fundamentally though, my job is to act as a force multiplier for everyone else, and improve their experience.<\/p>\n<p id=\"2c51\">My time is essentially all self-directed; that is, I choose what I work on, and allocate the time myself. There\u2019s no \u201cHuman Made\u201d choosing what I work on in that regard. In theory, if I wanted to dedicate two weeks solely to working on Requests, I could totally do that. Generally speaking, my time is split into two halves. I spend two days a week (typically Monday and Tuesday) working on WordPress core and the REST API, and the other three days working on HM work and related projects.<\/p>\n<p id=\"d7d3\">The time I spend on the REST API is my own decision, and when I\u2019m working on it, I work independently of HM. It just so happens that this aligns with what we do as an agency. Primarily, I work on the REST API because\u00a0I\u00a0believe it has the greatest benefit to the community, and to the users.<\/p>\n<blockquote id=\"1f34\"><p>He is also the lead on a\u00a0<a href=\"https:\/\/hmn.md\/2017\/05\/29\/cavalcade-scaling-wordpress-jobs\/\" target=\"_blank\" rel=\"noopener nofollow nofollow noopener\" data-href=\"https:\/\/hmn.md\/2017\/05\/29\/cavalcade-scaling-wordpress-jobs\/\" data->large<\/a>\u00a0<a href=\"https:\/\/hmn.md\/2017\/04\/27\/scaling-wordpress-images-tachyon\/\" target=\"_blank\" rel=\"noopener nofollow nofollow noopener\" data-href=\"https:\/\/hmn.md\/2017\/04\/27\/scaling-wordpress-images-tachyon\/\" data->number<\/a>\u00a0<a href=\"http:\/\/chassis.io\/\" target=\"_blank\" rel=\"noopener nofollow nofollow noopener\" data-href=\"http:\/\/chassis.io\/\" data->of<\/a>\u00a0<a href=\"https:\/\/github.com\/humanmade\/Mercator\" target=\"_blank\" rel=\"noopener nofollow nofollow noopener\" data-href=\"https:\/\/github.com\/humanmade\/Mercator\" data->projects<\/a>\u00a0being pumped out at Human Made.<\/p><\/blockquote>\n<p id=\"89f3\">As part of my role, I\u2019ve been pushing us as a company to better maintain and support our open source projects. This includes writing posts about our projects so people know they exist, and working on documentation around them. This is partially a marketing effort (since we\u2019re promoting our projects), and partially a community effort (since we\u2019re contributing these projects back to the community).<\/p>\n<p id=\"6945\">While I write these posts, I\u2019m not necessarily the maintainer of them. There are four projects noted here:<\/p>\n<ul>\n<li id=\"873a\"><strong>Tachyon<\/strong>: I wrote the linked blog post for this, with input from Joe Hoyle, our CTO. All active work on Tachyon is done by our servers team, primarily Joe.<\/li>\n<li id=\"1274\"><strong>Mercator<\/strong>: I initially wrote Mercator as part of work on Happytables, roughly two years ago. While it is mostly stable, there is some active work here by Rob O\u2019Rourke, who took over the actual maintenance and development a while ago.<\/li>\n<li id=\"daf2\"><strong>Cavalcade<\/strong>: I wrote and maintain Cavalcade. This is mostly stable software, and there haven\u2019t really been major changes since I wrote it two years ago.<\/li>\n<li id=\"9d09\"><strong>Chassis<\/strong>: I wrote Chassis alongside Bronson Quick (who later joined HM\u00a0<a href=\"https:\/\/hmn.md\/2015\/02\/03\/sennza-pty-ltd-joins-human-made\/\" target=\"_blank\" rel=\"nofollow noopener\" data-href=\"https:\/\/hmn.md\/2015\/02\/03\/sennza-pty-ltd-joins-human-made\/\" data->by way of acquisition<\/a>), and continue maintaining and actively developing it with Bronson. Practically speaking, this is the only project of these four I spend time on, as it directly improves the developer experience across the company.<\/li>\n<\/ul>\n<p id=\"0658\">With the exception of Chassis (which I do actively work on), I don\u2019t spend time on the other projects.\u00a0These projects are subject to our company-wide open source\u00a0<a href=\"https:\/\/engineering.hmn.md\/projects\/support\/\" target=\"_blank\" rel=\"nofollow noopener noopener\" data-href=\"https:\/\/engineering.hmn.md\/projects\/support\/\" data->support policy<\/a>, and in particular, we treat them as\u00a0<a href=\"https:\/\/engineering.hmn.md\/how-we-work\/philosophy\/completion\/\" target=\"_blank\" rel=\"nofollow noopener noopener\" data-href=\"https:\/\/engineering.hmn.md\/how-we-work\/philosophy\/completion\/\" data->complete<\/a>: we aren\u2019t actively adding features or refactoring anything.\u00a0In addition, they belong to Human Made (both in terms of IP, and the GitHub organisation), so if something happens to me, someone else can easily pick up the maintenance role.<\/p>\n<p id=\"2676\">I do put significant time into Chassis. This is primarily in my capacity as a force multiplier: improving development tools frees up time for other engineers and makes them more productive. I\u00a0cannot count how much time has been lost to terrible development environment setups across the company.\u00a0(Chassis is also not a Human Made project, so it\u2019s not subject to the HM support policy, which means helping others uses up some time too.)<\/p>\n<blockquote id=\"b5c3\"><p>On the other hand, Ryan has arguably too many projects on the go at the one time, splitting his development time during his work day and no doubt during a lot of his evenings and weekends.<\/p><\/blockquote>\n<p id=\"689b\">This is absolutely true, and I\u2019m a serial starter of projects without giving enough time to maintaining those projects.<\/p>\n<p id=\"ab7b\">Often, the way this happens is\u00a0I get frustrated with a problem, and I can see the solution, so I write it.\u00a0Usually these projects work, but they\u2019re far from the most usable things in the world. They\u2019re way more valuable released to the world than sitting on my computer or only used internally at HM though.<\/p>\n<p id=\"9f2e\">A classic example of this is the WordPress Importer v2 project. I started this because I have a lot of experience with XML parsing from my SimplePie days, and I could see that the existing Importer was inefficient and causing problems. I fixed that by switching to a streaming parser, wrote a minimal CLI interface, and then unfortunately had no more time to work on it. The current solutions (particularly WXR splitting) aren\u2019t great, but they\u2019re good enough, so there\u2019s just not a need for it.<\/p>\n<p id=\"c838\">One of the reasons the REST API was such a great project was because I had a fantastic co-lead in\u00a0<a href=\"http:\/\/rachelbaker.me\/\" target=\"_blank\" rel=\"nofollow noopener noopener\" data-href=\"http:\/\/rachelbaker.me\/\" data->Rachel Baker<\/a>.\u00a0Rachel is probably more important to the project than I was, because she was the one doing the real work of maintaining an open source project. There is no doubt in my mind that the REST API would never have shipped without her.<\/p>\n<p id=\"42cf\">Unfortunately, people like Rachel are rare, and not every project has someone who\u2019s great at this.\u00a0I would love to have more people help out on my projects, but the reality is that they just don\u2019t exist. It sucks, but the reality is that unless other people step up to join these projects, nothing will happen.<\/p>\n<p id=\"3a59\">(And for what it\u2019s worth, I have a pretty balanced schedule. I\u2019m fortunate in being able to assign my own time, which means I don\u2019t need to work late into the night, nor all weekend.\u00a0My\u00a0<a href=\"https:\/\/github.com\/rmccue\" target=\"_blank\" rel=\"nofollow noopener noopener\" data-href=\"https:\/\/github.com\/rmccue\" data->GitHub contribution graph<\/a>\u00a0is mostly grey on the weekends, although I\u2019d like it to be completely grey.)<\/p>\n<\/section>\n<section>\n<p id=\"1504\">I\u2019m aware that this post is entirely too long, but I figured I\u2019d bore you all with too much detail rather than not enough.<\/p>\n<p id=\"1f0c\">Thanks to Iain for bringing this topic up. The vast majority of his points are right, but sometimes they\u2019re just unavoidable, unfortunately. As much as I\u2019d love to be everywhere at once, it\u2019s not possible.<\/p>\n<p id=\"6c2f\">I\u2019m open to answering any questions or comments at any point, and I have an\u00a0<a href=\"https:\/\/github.com\/rmccue\/ama\" target=\"_blank\" rel=\"noopener nofollow\" data-href=\"https:\/\/github.com\/rmccue\/ama\" data->open AMA repo<\/a>\u00a0where you can ask me literally anything. I\u2019m also always available on the WordPress and Post Status Slack teams if you want to message me.<\/p>\n<hr \/>\n<h3 style=\"text-align: center;\">My Takeaway From Ryan&#8217;s Response!<\/h3>\n<ul>\n<li><strong>Abstrations<\/strong>: Ryan made a solid point that both Requests and SimplePie libraries are separated from WordPress through somewhat-clean abstractions. Both of these libraries are convenience libraries: Requests simplifies the work of using cURL\/PHP sockets, and SimplePie simplifies accessing data in RSS\/Atom XML documents.<\/li>\n<li><strong>Can be Swapped<\/strong>: Because these libraries are abstractions libs, they can be swapped out for different libraries. They actually have been changed in the past (Requests is the ~4th HTTP request implementation in core, SimplePie is the 2nd feed parsing implementation).<\/li>\n<li><strong>React VS Vue<\/strong>: Both React and Vue have benefits and problems. I personally think that the benefits of picking React are stronger, and that generally they outweigh the problems.<\/li>\n<li>I\u2019ve been the Director of Engineering, which means I oversee a lot of different things. This includes internal tooling, improving the lives of our developers, and wider efforts in the community. Fundamentally though, my job is to act as a force multiplier for everyone else and improve their experience.<\/li>\n<\/ul>\n<ul>\n<li>With the exception of Chassis (which I do actively work on), I don\u2019t spend time on the other projects.\u00a0<span class=\"markup--quote markup--p-quote is-me\" data-creator-ids=\"d8795cda25b6\">These projects are subject to our company-wide open source\u00a0<a class=\"markup--anchor markup--p-anchor\" href=\"https:\/\/engineering.hmn.md\/projects\/support\/\" target=\"_blank\" rel=\"nofollow noopener noopener\" data-href=\"https:\/\/engineering.hmn.md\/projects\/support\/\" data->support policy<\/a>, and in particular, we treat them as\u00a0<a class=\"markup--anchor markup--p-anchor\" href=\"https:\/\/engineering.hmn.md\/how-we-work\/philosophy\/completion\/\" target=\"_blank\" rel=\"nofollow noopener noopener\" data-href=\"https:\/\/engineering.hmn.md\/how-we-work\/philosophy\/completion\/\" data->complete<\/a>: we aren\u2019t actively adding features or refactoring anything.<\/span><\/li>\n<li>I\u00a0<span class=\"markup--quote markup--p-quote is-me\" data-creator-ids=\"d8795cda25b6\">cannot count how much time has been lost to terrible development environment setups across the company.<\/span><\/li>\n<li>This is absolutely true, and I\u2019m a serial starter of projects without giving enough time to maintaining those projects.<\/li>\n<li>Often, the way this happens is\u00a0<span class=\"markup--quote markup--p-quote is-me\" data-creator-ids=\"d8795cda25b6\">I get frustrated with a problem, and I can see the solution, so I write it.<\/span><\/li>\n<li><span class=\"markup--quote markup--p-quote is-me\" data-creator-ids=\"d8795cda25b6\">One of the reasons the REST API was such a great project was because I had a fantastic co-lead in\u00a0<a class=\"markup--anchor markup--p-anchor\" href=\"http:\/\/rachelbaker.me\/\" target=\"_blank\" rel=\"nofollow noopener noopener\" data-href=\"http:\/\/rachelbaker.me\/\" data->Rachel Baker<\/a>.<\/span><\/li>\n<li><span class=\"markup--quote markup--p-quote is-me\" data-creator-ids=\"d8795cda25b6\">I would love to have more people help out on my projects, but the reality is that they just don\u2019t exist. It sucks, but the reality is that unless other people step up to join these projects, nothing will happen.<\/span><\/li>\n<li>And for what it\u2019s worth, I have a pretty balanced schedule. I\u2019m fortunate in being able to assign my own time, which means I don\u2019t need to work late into the night, nor all weekend.<\/li>\n<\/ul>\n<hr \/>\n<p style=\"text-align: center;\">What do you think about it?<\/p>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>After the inclusion of REST API and WP CLI in the core, WordPress developers are concerned\u00a0about which new JavaScript framework will be adopted next. And for that React vs. Vue.js has been long into a heated debate. However, the argument took wild fire once again when Iain Poulson\u00a0\u2014 PHP developer at Delicious Brains \u2014 wrote [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1429,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":""},"categories":[6],"tags":[33,32,34],"coauthors":[],"jetpack_featured_media_url":"https:\/\/thedevcouple.com\/wp-content\/uploads\/2017\/08\/ryan-mccue.jpg","amp_enabled":true,"_links":{"self":[{"href":"https:\/\/thedevcouple.com\/api\/wp\/v2\/posts\/1410"}],"collection":[{"href":"https:\/\/thedevcouple.com\/api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thedevcouple.com\/api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thedevcouple.com\/api\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thedevcouple.com\/api\/wp\/v2\/comments?post=1410"}],"version-history":[{"count":0,"href":"https:\/\/thedevcouple.com\/api\/wp\/v2\/posts\/1410\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thedevcouple.com\/api\/wp\/v2\/media\/1429"}],"wp:attachment":[{"href":"https:\/\/thedevcouple.com\/api\/wp\/v2\/media?parent=1410"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thedevcouple.com\/api\/wp\/v2\/categories?post=1410"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thedevcouple.com\/api\/wp\/v2\/tags?post=1410"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/thedevcouple.com\/api\/wp\/v2\/coauthors?post=1410"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}