The Changelog: Software Development, Open Source - Tracking layoffs, tech worker demand still high, ntfy, devenv, Markdoc & Mike Bifulco (News)

Episode Date: November 14, 2022

Roger Lee has been tracking all tech layoffs since COVID-19, Amanda Hoover says tech worker demand is still high, ntfy helps you send push notifications for free, devenv lets you share development env...ironments without containers, Markdoc scales from personal blogs to massive documentation sites & we talk with Mike Bifulco at All Things Open 2022.

Transcript
Discussion (0)
Starting point is 00:00:00 I'm Jared and this is Changelog News for the week of Monday, November 14th, 2022. We are knee-deep in post-production of all of the excellent conversations we recorded at All Things Open. Expect one or two anthology episodes of our Friday interview show coming soon. We'll also be attaching one conversation to the end of our Monday news show for the next few weeks. Now, we are committed to keeping these news briefs brief, so the interviews will always be at the end, so you can skip them if you're not interested or simply don't have the time. Once we've emptied the queue, it's back to your regularly scheduled programming.
Starting point is 00:00:44 Speaking of the news, let's get into it. The top-clicked link in yesterday's edition of ChangeLog Weekly is a bit of a downer. It was the layoffs tracker at layoffs.fyi. Roger Lee has been tracking all tech layoffs since COVID-19. All the data is compiled from public reports and stored in Airtable, which provides embeddable table listings and charts. So far in 2022, 788 tech companies have laid off 120,699 people. That means 31 companies laid off almost 17,000 people in the past week alone. A huge portion of that, of course, is due to Meta
Starting point is 00:01:35 performing the largest layoff in absolute terms of 11,000 people. Just devastating. Our heart goes out to each and every one of you who lost your job this year, but we have high hopes that you'll get back on your feet quickly, which brings us to our next bit of news. Amanda Hoover writes for Wired, despite big layoffs, tech workers are still in demand. Quote, while many individual workers must now find new jobs, the broader outlook for tech workers remains strong. Their skills are still in demand, and their peers have responded to recent cuts with a wave of grassroots support to help laid-off workers find new jobs. Despite their command of the headlines,
Starting point is 00:02:15 big tech companies are just one niche in the broader tech industry. Many smaller firms and companies in adjacent industries are still hiring tech workers, albeit at slower rates than tech giants recently did and potentially for lower salaries. Some companies are now jumping at the chance to attract people previously monopolized by recruiters from the largest companies. End quote. It turns out big tech has scooped up so many of us over the past few years that many other industries have been left in the dust. From government to retail to ag, many companies are jumping at the opportunity to land talented workers like us that they previously just couldn't get done. It's super cool that we've also been banding together to help one another land safely with new employment. The article
Starting point is 00:02:58 mentions a LinkedIn group for workers let go by meta and a Google sheet with potential opportunities for laid off workers. We'll link to both of thoseet with potential opportunities for laid-off workers. We'll link to both of those in the show notes for you. Here's a cool new thing. Notify, spelled N-T-F-Y, is a simple HTTP-based PubSub notification service that lets you send notifications to your phone or desktop via scripts from any computer entirely without sign-up, cost, or setup. You publish messages via a put or post request to ntfy.sh with your topic as the URL path. Since there's no signup, the topic is essentially a password.
Starting point is 00:03:41 Then you subscribe to topics using your phone, a web UI, or in your own app by using the subscribe API. Apps are available for download for iOS and Android, and the entire system is completely free and open source forever. Here's Notify's creator, Philip C. Heckel, talking about that. Quote, I love free software, and I'm doing this because it's fun. I have no bad intentions, and I will never monetize or sell your information. This service will always stay free and open. You can read more in the FAQs and in the privacy policy. End quote. Never monetize or sell your information. This service will always stay free and open.
Starting point is 00:04:08 You can read more in the FAQs and in the privacy policy. End quote. Learn more at ntfy.sh. DevEnv is a tool that lets you build, share, and run your local development environments with a single command, without containers. How does it do that? With Nix. That's how. You define your development processes declaratively in a devenv.nix file
Starting point is 00:04:30 and start them with devenv up. There are 80,000 plus prebuilt packages for Linux, Mac OS, and x64, ARM64. And yes, Windows users, it works with WSL. We've been thinking about how we might revamp our contribution flows for changelog.com. I've been thinking about how we might revamp our contribution flows for changelog.com. I've always disliked our Docker-based flow because I don't want to run it myself, and DevMvvv might be just a tool we've been waiting for. Lastly, have you checked out
Starting point is 00:04:55 MarkDoc? It's Stripe's open-source, Markdown-based authoring framework that scales from personal blogs all the way up to massive documentation sites. I'll keep it brief because today's bonus interview from All Things Open is with Mike Befolko, who gave a talk about MarkDoc in the developer track and then talked to us even more about it in the hallway track. That is the news for now. Stick around and enjoy this bonus interview and stay tuned to the changelog because on Friday we are shipping our first anthology episode with special guests Arun Gupta from Intel, Chad Whitaker from Sentry, and Ricardo Suarez from AWS.
Starting point is 00:05:31 Have a great week. Share The Changelog with your friends and we'll talk to you again real soon. Well, we'd like to talk to you about MarkDoc. Yeah, for sure. Coming out of Stripe. This is something that came out in the summer, maybe, or the spring? Yeah, earlier this year.
Starting point is 00:05:53 I think around April. And made a big splash, of course. Documentation meets MarkDown. Right. These are a few of my favorite things. That's it. As long as somebody else writes the documentation. Yeah. And it's in Markdown But
Starting point is 00:06:07 We haven't been able to talk about it yet On the pod because we just haven't, I don't know Met you until today So did you do the work on the thing? Are you working on it now? Tell us the story of MarkDoc inside of Stripe And then we'll go from there Yeah, so full disclosure
Starting point is 00:06:22 I work at Stripe on the developer advocacy team. I did not create MarkDoc. It was created by a teammate, a colleague at Stripe called Brian Paul. His Twitter handle is segfault, S-E-G-P-H-A-U-L-T. Oh, the PH, yes. So MarkDoc came from, Stripe makes API infrastructure for the internet,
Starting point is 00:06:41 lots of products, tools, APIs for developers who are building things to connect money to a product. And Stripe makes many products that covers many languages, it covers many locales. So you might be looking at Spanish documentation for taking payments in Canada, for example. There's lots of different pivots through which we provide our documentation for many products. And in addition to that, all of Stripe's API libraries are available in seven languages. So I usually am pretty bad at getting them all in one shot, but it's Ruby and Go and Java, JavaScript,.NET, Python, and PHP. And so documentation is dynamic because of that. So you might pull up a docs page and want to see the PHP docs. You might want to see Ruby or Go or whatever
Starting point is 00:07:24 it may be. In addition to that, Stripes documentation has for a long time included dynamic content. So if you pull up Stripes docs, you'll see your test API key embedded in the code snippets in the docs. So you can copy straight from the docs, paste it into a terminal window or into an IDE window and execute it straight from there, and it executes against your account. We also do things like we'll provide in situ in the documentation. For example, if you wanted to get details, see the documentation about listing details
Starting point is 00:07:51 for a product that you have set up in Stripe, our documentation will actually show the keys for your products in your documentation. So, MarkDoc came from a need to want to do that in a way that scaled really well. Prior to MarkDoc, Stripe's docs were done with a Ruby on Rails app using ERB, which is the Rails templating language.
Starting point is 00:08:08 And the challenge there was that for a technical writer to write docs about something, they had to be familiar with ERB. They had to be good at debugging ERB, which was hard. The tooling for debugging those templates wasn't great. And they also had to be a good technical writer. And those things don't happen. That's kind of unicorn-ish. You don't get people like that too often.
Starting point is 00:08:24 So there was this ongoing project to sort of research better ways to do documentation that could solve all these problems all at once. And a bunch of different approaches were taken to do that. What we landed on was this project MarkDoc, created again by my colleague. And what MarkDoc is is essentially a superset extension to the Markdown language, which Markdown is familiar if you've used GitHub to create issues, or I think Reddit supports Markdown-ish authoring, and a variety of other things, Slack, all sorts of places use Markdown by now.
Starting point is 00:08:54 What Markdown does is it takes the Markdown syntax and adds a bunch of stuff to that to let you insert dynamic content without having to go write the code to do the dynamic part. So you can separate your developers, write the code for adding composable tags to your Markdown, and all your technical writers need to know is, hey, this tag is available for me.
Starting point is 00:09:10 I can add a call-out here, I can embed a podcast episode on my podcast site, whatever it may be. And it was designed with documentation in mind, but is applicable to anything. Anything that's content-forward that you write in Markdown. So I maintain my personal site. It's currently actually using MDX, which is an alternative,
Starting point is 00:09:27 another extension of Markdown, an alternative that came out of the React world. I want to say maybe Gatsby was where MDX was born. MarkDoc is sort of parallel to that with a very different approach. So the API for MarkDoc has sort of a three-phase rendering process that developers have access to every part of that rendering. So you can do things like add validation to your mark doc, where let's say, Adam, you were writing a docs page and you added a banner to your page and you set the type of the banner to be something that wasn't allowed. Like the type of your banner for whatever reason is Buick,
Starting point is 00:09:57 right? And we don't allow Buick on our banners. For some reason, we only have Ford cars or whatever the case may be. Just as an example, you can add validation to say we only allow certain brands here, certain words here, which is really nice because then suddenly you have some sort of inbuilt parsed testing on your documentation, which is hard to do otherwise. And with Markdown, it's just not possible too. Does that kind of make sense? That's sort of where the project came from. So outside of Stripe, who would be MarkDoc's ideal user? Yeah. So really, it's a framework approach that is sort of unopinionated in what the best uses for it are. Documentation is definitely an easy knockdown. Anyone who's building docs for a product that needs to have some sort of dynamic injected stuff in it is really great. I've gone to 1Password, and I've seen my code in the docs. It's my stuff. So whenever I'm
Starting point is 00:10:45 configuring the SSH client, it's like it's not, here's the example. Now go find out this other, go find your own code. It's more like, it's right there because I'm logged in and it's documentation for me. Right. Yeah. So personalized documentation is a great use case for it. There are people who use it for blogging sites, things like that.
Starting point is 00:11:02 If you have generally the sort of heuristic I use for like when it's time to think about more than just Markdown is when you're starting to think about adding something to the page that is either repetitive or needs to be dynamic in some way that Markdown can't do. So a good example is, let's say you're writing, you have a personal blog, you have lots of articles that are sort of long form. And in the middle of your articles, you want to add a call to action that's, go subscribe to my newsletter, or make sure you check out this other article.
Starting point is 00:11:28 And it's dynamic in some way. Right. You could create a mark doc tag that you could just embed somewhere in your article to say, this is a good place for that sort of call to action. And it can go and do the magic of that call to action without you having to go find the article to link to, or whatever the case may be in that place. What kind of tooling does it fit into? Yeah.
Starting point is 00:11:44 Really good question. Generating does it fit into? Yeah, really good question. Generating static HTML or something? Yeah, so if you pull up the Docs site, the walkthroughs are pretty straightforward. There's a couple of walkthroughs, one for going from MarkDoc to HTML, one that goes from MarkDoc to React, and then one that's sort of an integration plan for Next.js. All of those are essentially React flavored. I mentioned before there's sort of this three step rendering phase for MarkDoc. The last step is where you pick what it renders to.
Starting point is 00:12:12 And right now React is sort of the defacto renderer for MarkDoc. So anywhere where you're building something that can use React, it does the standard React DOM render thing where it grabs a div on the page, it uses React's render functions to take the syntax, your MarkDoc syntax,
Starting point is 00:12:29 and turn it into content on the page. But because it's open source, you could write a renderer that works with something else, right? You could render to React Native or someone in the talk I just gave asked about, what about Haskell? Like, sure, if you really want to.
Starting point is 00:12:40 What about Haskell? There's always that one person that's going to say, you know, hey, what about Haskell? What about Elixir? Yeah, that's right. That's me. Yeah, yeah. If you wantedkell? There's always that one person that's going to say, you know, hey, what about Haskell? What about Elixir? Yeah, that's right. That's me. Yeah, yeah.
Starting point is 00:12:48 If you wanted to, there's, I mean, it's open source for a reason. It's meant to be extensible. Okay, so that's cool. Will it write your documentation for you? Unfortunately not, yeah. Dang. Uninterested. I'm not interested.
Starting point is 00:12:59 Although I did just walk out of a talk about GitHub Copilot, which sounds like they might try at least. Yeah, they're writing more and more of our stuff for us, aren't they? Hard to say how good that would be, but it'll try. Oh, you haven't seen my documentation. It's a low bar. It's a low bar. Docs are hard.
Starting point is 00:13:13 Docs are tricky. In all ways. I mean, it's hard to write, hard to get right. Hard to keep up to date. Things change. The docs don't always reflect. And this, of course, isn't a silver bullet, but it's a helpful separation of concerns
Starting point is 00:13:26 where your technical writers can just do the writing things and your people doing the dev work can make it flashier, make it more dynamic, make it fit in with your analytics or whatever tracking you need to do. What about the look and feel? Does it have that Stripe look and feel? Out of the box, no.
Starting point is 00:13:39 There's no theming incorporated in it. It just generates a valid HTML from Markdown. It's fully themable, so you can take it and apply Tailwind to it, or if you use something like Chakra or some of the other UI libraries, you can do all of that. You can also write your own custom CSS or add components to it as needed. Let's talk about inside
Starting point is 00:13:56 Stripe then. So this is created, it's open source for others to use, but you're using it. So how has the documentation changed for you all? How did this shift the way you both create, maintain, consume as a user, speak for your users, and also the organization? Right. So I'm not a technical writer,
Starting point is 00:14:14 but I work with some of our technical writers on various products. And in sort of the before scenario for this, building documentation for any given product at Stripe was using ERB, like I mentioned before. And so pick a product, pick a language, pick anything, and you're writing documentation for any given product at Stripe was using ERB like I mentioned before. And so, pick a product, pick a language, pick anything, and you're writing documentation for something, you would go and find one Ruby template, one particular page
Starting point is 00:14:31 that had a Ruby view in it, that had ERB interspersed into it, and it was like a lot of interpolated stuff. So it was some text, some calculations, some this and that, and each page was sort of different depending on who implemented it originally. And this goes back to Stripe's early days back in 2011, 2012.
Starting point is 00:14:47 And so there was a lot of history built into that that was really hard and very fragile. If you forgot a closing tag on something, the page might crash and return a 500 error when someone went to view it, which is not good, right? You really don't want that. In this way, we've separated the
Starting point is 00:14:59 I need to be a Ruby developer from the I need to be a technical writer thing. And now, so in the new world, technical writers really just need to have an understanding of Markdown, have an understanding of what tags are available, and be able to work with engineers to build out new tags for new dynamic stuff. And so they're generally just kind of writing content at this point, which feels a lot better as a technical writer.
Starting point is 00:15:18 They don't also have to have a brain for being able to debug a Ruby template, which is like something that I would have to spin up a ton of work to figure out how to do, too. This might be Stripe-specific, but how then did this documentation move? Did there become a new repository for it, or how do you now take it from this page, not embedded, to just markdown or markdoc that folks can edit and maintain?
Starting point is 00:15:43 How does it shift architecture? Right. That predates my history at Stripe, so I don't honestly have the answer to that. I suspect that it was a gradual change where it was one page at a time, one product at a time, but I honestly don't have the answer there. I should say, too, that MarkDoc, so the MarkDoc site is MarkDoc.dev.
Starting point is 00:15:58 That is open source and built with MarkDoc, so you can go see how a documentation site was built using MarkDoc in sort of a self-referential way. Did you already say how old this project is then? Did I miss that? It went open source in April of this year. So April 2022. But it's been at Stripe for a while though, right?
Starting point is 00:16:13 It seems like. It was in use at Stripe for a while. The decision to open source had happened earlier this year. So rollout's probably been many years then, right? Gradual, project by project. Yeah. So this is where I should say that I started at Stripe in March of this year. Okay. Yeah, probably. That sounds right Gradual, project by project. Yeah. So this is where I should say that I started at Stripe
Starting point is 00:16:25 in March of this year. Okay. Yeah, probably. That sounds right. Yeah, probably. Okay. It's plausible. Yeah.
Starting point is 00:16:31 The impact is net positive basically though. Yeah. Okay. Certainly. Not negative. That's bad. Right.
Starting point is 00:16:37 Let's not go there. And truly the benefit of this being an open source thing is that we welcome contribution. We want people to tell us what they're struggling with or ask us the hard questions about why doesn't it do this. And try and apply it to their problems too.
Starting point is 00:16:50 Very cool. MarkDoc.dev. Yes, MarkDoc.dev. GitHub.com slash MarkDoc. Awesome. And then Stripe.dev if you're doing any Stripe-flavored developer stuff. And you can chase me down on Twitter too at Irreverent Mike. Nice. Irreverent Mike? That's me.
Starting point is 00:17:05 Mike, thank you so much. Of course. Yeah, thanks for having me. I too at irreverent Mike. Nice. Irreverent Mike? That's me, yeah. Mike, thank you so much. Of course, yeah, thanks for having me. I appreciate it. MarkDoc.dev. Yeah. Get it while you can. Open source, yeah, yeah. All right.
Starting point is 00:17:13 Thanks, guys.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.