The Changelog: Software Development, Open Source - The undercover generalist (Friends)

Episode Date: March 29, 2024

Which is smarter: specializing in a particular tech or becoming more of a generalist? It depends! Which is why Jerod invited "undercover generalist" Adolfo Ochagavía on our "It Depends" series to wei...gh the pros & cons of each path.

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome to Changelog and Friends, a weekly talk show about AI rescue teams. Big thanks to our partners at Fly, the home of changelog.com. Launch your app as close to your users as possible for peak performance. Fly makes it easy. Learn how at fly.io. Okay, let's talk. Yes, let's talk about our friends over at Fire Hydrant real quick. They have a brand new on-call feature called Signals. And what you're about to hear are real reactions from PagerDuty users when seeing Signals from Fire Hydrant for the first time.
Starting point is 00:00:54 PagerDuty, I don't want to say they're evil, but they're an evil that we've had to maintain. I know all of our engineering teams, as well as myself, are interested in getting this moving the correct direction. As right now, just managing and maintaining our user seats has become problematic. That's really good, actually.
Starting point is 00:01:12 This is a consistent problem for us and teams, is that covering these sorts of ad hoc timeframes is very difficult. You know, putting in like overrides and specific days and different new ships is is quite onerous oh and you did the most important piece which is didn't tie them together because that's half the problem with pager duty right is i get all these alerts and then i get an incident per alert and generally speaking when you go sideways you get lots of alerts because lots of things are broken, but you only have one incident. Yeah, I'm super impressed with that because being able to assign to different teams is an issue for us
Starting point is 00:01:52 because the one alert fires for one team and then it seems like they have to bounce around and it never does, which then means that we have tons of communication issues because people aren't updated. No, I mean, to be open and honest, when can we switch? So you're probably tired of alerting tools that feel more like a headache than a solution, right?
Starting point is 00:02:14 Well, Signals from Fire Hydrant is the alerting and on-call tool designed for humans, not systems. Signals puts teams at the center, giving you the ultimate control over rules policies and schedules no need to configure your services or do wonky workarounds in just data seamlessly from any source using web hooks and watch as signals filters out the noise alerting you only on what matters manage tasks like coverage requests and on-call notifications effortlessly within Slack. You can even acknowledge alerts right there. But here's the game changer. Signals natively integrates with Fire Hydrant's full incident management suite.
Starting point is 00:02:51 So as soon as you're alerted, you can seamlessly kick off and manage your entire incident inside a single platform. Learn more or switch today at firehydrant.com slash signals. Again, firehydrant.com slash signals. Again, firehydrant.com slash signals. Well, welcome to our third installment of It Depends. This is a series of episodes where I speak one-on-one with experienced devs about the gray areas in software. I know we all wish everything was black and white,
Starting point is 00:03:26 one or zero, true or false. But unfortunately, the real world is messier than that. And all too often, it depends is the only generalizable answer that there is. Today, I have with me Adolfo Ochagavilla. Welcome to the show. Thank you. Thanks for having me. Happy to have you. Excited to talk about this particular subject. You recently wrote a blog post called The Undercover Generalist. That's true.
Starting point is 00:03:55 Which you did, and I enjoyed it. I think I put it on Changelog News. It very much spoke to me, being a contractor for many years, and being a generalist myself. The topic for today that we're going to, it depends. Oh, I should play our little jingle because I put a lot of work into this jingle. Not really. Very little work, but still, let's play it. It depends. Now we can officially have an It Depends episode.
Starting point is 00:04:22 We are It Depends-ing today on the topic of generalizing or specializing, or maybe both. That will be what we discuss today. I really enjoyed this piece because you call yourself an undercover generalist. I have long called myself a generalist and also advocated for generalization, but many times have been told why that's not the best thing to advocate for. And so sometimes I stop and say, well, it does depend though, because maybe it's not always the best advice. So let's pick into that. First of all, introduce yourself with regards to this post and the work you've been doing contractor rust etc give us like the the two minute adolfo so that we can have a foundation for a discussion i should have prepared
Starting point is 00:05:12 that anyway let's freestyle it so i wrote this piece because it's kind of it's been a topic in my mind for a long time i've been struggling with. And I felt like I had reached that point that I could finally write about it. And how I came there is that when I got into computers, I just loved to learn everything there was to learn. But then when I got in the industry, you kind of people wanted to put me in a box and say like, oh, so you are a backend developer or you are a full
Starting point is 00:05:45 stack developer. And well, I guess you have to play the game if you want to work, right? So I became a full stack developer at a company in the Netherlands. And there was something generalist to it in the sense that it was not only programming. So you also had lots of interaction with customers. And I even got to like, I don't know, do a philosophy course out of the company's pocket. So they really liked broadly developed people in their workforce. And then when I became a contractor, self-employed, I kind of started realizing that it's difficult to sell your services if you can't put them into a
Starting point is 00:06:27 very specific category. But at the same time, there are people out there who would hire me no matter what, no matter what the work is, as long as it's technical. So that's like a paradox there where people who already trust me, they are willing to hire me to do whatever, like computer magic. And people who know me less, they kind of need some assurance that I'm capable of doing the job. And well, my Rust identity in that sense helps on that front because I have done a bunch of things in the Rust ecosystem. This was longer than two minutes, by the way, but I hope you'll forgive me. No, I wasn't timing you. Okay, I think that's good. So my background is somewhat similar,
Starting point is 00:07:10 in a sense that I began one place and kind of moved another place, but always was trying to be a generalist. And as I went freelance or solo or contract, I had lots of situations where people would come to me and say I have this problem and the problem was usually some sort of technology like I have a PHP app and I need some PHP help or I have a Ruby on Rails app and I need some Ruby on Rails help
Starting point is 00:07:37 and do you know any Rails devs I actually just got a LinkedIn message two days ago latent, I'm have like that. I'm in that latent space of people still think that maybe I'm available for this kind of work, even though I haven't taken a new contract since probably like 2017, 2018. And he says specifically like,
Starting point is 00:07:57 hey, I've got need for a React dev. Do you know any good React devs around? Because I got 30 to 60 hour project looking for some help, you know? And these are people who he just happens to know that I was in the business of contract for hire. And he's looking for a pointer to somebody, but he doesn't know how to categorize that person.
Starting point is 00:08:17 I'm looking for a good developer because I have a software problem. That's just not the way people think. They think in, what's my code base, I guess that's how they think, depending on who they are. And so yeah, if you're not a React dev, basically you're disqualified from that. You know, I could go back to him and say like, hey, I know the guy named Adolfo. He's really good at generalized things. And if he trusts me a lot, he might be like, sure, I'll give him a shot. But if he doesn't trust me so much, he's like, nah, does he know React?
Starting point is 00:08:47 And so there's your specialization. So what you have found, and what I think is generally applicable, is when you're putting your sign up, you kind of have to have some sort of specialized skill set because people are going to be looking for that skill set. Whether or not that's in their best interest, that's just what they're going to do. Is that fair, you think? Yeah, I think it's fair.
Starting point is 00:09:08 But nice thing that happened is that someone reacted on my blog post saying like, well, marketing isn't the only way, the only reason to specialize. Okay. So the literal sentence was, specializing isn't just a way to the market.
Starting point is 00:09:25 It's part of becoming a generalist, which has to start with one or more specific areas of expertise. And that resonated with me too, because part of the article was sometimes I kind of doubt, maybe I'm a specialist after all. So which of both you pick when you're going to the outside world. And in fact, since I wrote the article, I've been more and more convinced that I want to do the generalist stuff more as a hobby, kind of because I'm interested in computers in general. And I just don't want to lose touch with the general ecosystem. But I feel a lot like doubling down on Rust and systems programming at the moment. Yeah. So, yeah.
Starting point is 00:10:13 So you might be specializing for a little while. Specializing in your day, during the day, and generalizing at night. That's interesting. I think that's true that you do have to kind of pick somewhere to start. And if you're going to become at least proficient, you know, to the point where you feel good about selling your work to somebody else, and they feel good about hiring you, maybe you're not specialized insofar as it's all you know, but you need to be pretty stinking good at something to make your work hireable on the market. And so everybody starts somewhere. And if you're
Starting point is 00:10:42 going to start with Rust, you're going to specialize in Rust until the point to that you're good enough at Rust where you can now add another skill set to your tricks. For instance, accidentally I'm doing a lot in the software packaging space, especially around the Python ecosystem because they're starting to realize they can have huge wins in performance
Starting point is 00:11:05 using Rust. And it mixes very well with Python. You can rub Rust code, Rust binaries in a Python layer in such a way that the consumer doesn't even know there's Rust under the hood. The same way you do that with C. So more and more people are investing in that. And so that becomes, I mean, these people have their own conferences like the packaging conference i didn't know about it and there's some specialization there right yeah yeah and also for instance uh you get in touch with the content with like the container community uh people who i mean cube con in paris just, I think. It was last week. And it's also like, it's a very, it's like a specific corner of the industry.
Starting point is 00:11:49 And yeah, like my current work is in the intersection between systems programming, containers, and software packaging. So I'm learning a lot, not much about Rust, but a lot about these other things. Which is interesting for sure. I guess there's more than one way to differentiate your work or to stratify your work to keep it interesting and not boring.
Starting point is 00:12:11 My position has always been that my enjoyment has been to help people solve problems. And so I've always sold myself as a dedicated and thoughtful teammate to help you solve your problem. And I'll probably do that with software. And if you leave that to me, I will pick the tools that I think are best for the job. But I don't want to be attached to a singular tool because it's not always the right tool for a lot of different jobs. And I don't want to be pigeonholed
Starting point is 00:12:38 because I've seen a lot of people get stuck where they are and never really move on. In my early young days, I used to say my greatest strength was fear of irrelevance. And so I was always up to date on what's going on because I didn't want to become the guy who's irrelevant and doesn't know it. And I thought that that kept me sharp as a young developer. And there's a lot of people that just learn a thing. Like maybe they learn Java in college
Starting point is 00:13:05 and I'm not picking on Java for any particular reason and that's just what they do they just do Java and then 20-40 years of Java and then they retire and for me I was just like I couldn't do that I just never could and so I've always been on the generalized side but there are reasons to specialize
Starting point is 00:13:23 like we've addressed marketing we've addressed marketing. We've addressed specialization as a path towards generalization, I guess. And then the other reason is, I think, related to marketing, but pay. When you become very expert in a particular vertical inside of software, and then that vertical becomes hot or useful or in demand. For instance, Rust programming skills are on the, you know, demands on the rise. If you were a data engineer,
Starting point is 00:13:55 you're AI engineer kind of person, like skills are on, demands on the rise. And you become the person who knows that deep, right? Deep down inside. You can generally demand a higher wage as well. So I think there's another reason to specialize is to make more money, if that's your aim. Have you found your Rust gigs pay better than other general consulting that you do? I'm still figuring it out. So the problem here is that i've done some things in the european
Starting point is 00:14:28 market in the dutch market and also some things in the u.s market and that there's obviously a difference there which is unrelated to whatever you're doing the u.s pays better i mean i'm not sure if it's in general but my contracts for for US companies have always been for companies in Silicon Valley, which I guess have money to burn from their investors. So I'm not sure it's due to specialization or not. But within the Netherlands, if I compare Europe in general, the contracts I've done as a generalist and as a specialist, I've seen big differences. But I mean, it's still difficult to know because of the size of the company matters a lot too. So for local companies, I've been able to charge significantly more doing specialist work
Starting point is 00:15:19 compared to doing generalist work. So for instance, I remember doing a programming Elixir. And this company said, you know, you don't need to know Elixir beforehand, just come and strengthen our team. So they had a colleague who had been a colleague of mine in the past, and he kind of vouched for me. I said, this guy is good, just take him in.
Starting point is 00:15:40 And I came to help. And then later, I mean, I didn't feel like lots of money at the time and later other projects I did I charged like 50% more or 25% more and people were okay with that so there's a noticeable difference Well, friends, April is here. And that means that Cloudflare's Developer Week is also here, happening April 1st through April 5th virtually. They also have a meetup here in Austin that I'll be at on Wednesday, April 3rd in their ATX office.
Starting point is 00:16:28 Check for a link in the show notes to register for that. Spots are limited, so secure your place right now. And I'm here with Matt Silverlock, Senior Director of Product at Cloudflare. So Matt, what is this week for you? Launching for developers a bunch of new tooling, a bunch of new things that gets the next year or the next several months revived and a resurgence for new things happening what was that what is
Starting point is 00:16:49 that to you internally we call them innovation weeks which is kind of the way we think about it which is how do we ship a bunch of stuff that is meaningful to developers both getting some things over the line getting some early things out sharing some ideas some things that maybe aren't actually fully baked but kind of getting that out there and talking about it so that we get earlier feedback. But it kind of comes back to like, how do we think about innovating? And I think candidly, what's really, really helpful is kind of setting those deadlines, setting that week to kind of rally the team and get things out actually helps us get things done, right? There's always that tweaking for perfection, you know, another week here, another month there. It's nice when
Starting point is 00:17:22 you set an immutable date, you get things out, gets into the hands of the developers much faster. How do you then take that kind of, I suppose, approach and excitement to the bigger echelon that has become Cloudflare? Because I know DDoS, CDN, pretty common things that has been the building blocks of the behemoth that Cloudflare is today, but it's gone beyond that. Can you expand on the breadth and depth of Cloudflare is today, but it's gone beyond that. Can you expand on like the breadth and depth of Cloudflare today and the excitement happening? Yeah, I mean, obviously we do a tremendous amount. And I think, as you said,
Starting point is 00:17:52 most folks really know us for, you know, what we consider kind of the, you know, act one of Cloudflare, which is CDN, DDoS, you know, DNS, web security. Since then, obviously we've done a lot in terms of zero trust and protecting companies and networks and obviously the developer platform as well. But although a lot of what our teams work on is developer platform, still a lot of the other things that the rest of Cloudflare works on, like
Starting point is 00:18:13 a web application firewall, like CDN, those are still developer products. You still need those as a developer to go in front of your website, protect what you're actually building. We're diehard R2 users. We had an insane S3 build that just sent us absolutely on fire. It kept growing and growing. And I was like, this can't happen anymore. We've had an affinity and a love for Cloudflare from afar in really a lot of cases
Starting point is 00:18:36 until we're like, you know what? R2 is pretty cool. We should use R2. And so we did. And I think I tweeted about it about a year ago. And then over time, a relationship between us and Cloudflare has budded, which I'm excited about. But, you know, why are developers, you know, we're opting for it, but for R2 in those cases.
Starting point is 00:18:53 But why are developers opting for Cloudflare products over Amazon Web Services or other providers out there? There's a lot of answers to this, but I think the one that I find kind of connects a lot of folks is we're building a platform that makes it easy to deploy, you know, reliable distributed services without being a distributed systems engineer. Because it turns out if I want to go and build something really reliable on sort of an existing cloud, I want to build it across regions. When I've got to egress across regions, got to pay for that. I need to make sure I'm spinning up shadow resources, right? When you deploy to workers, for example, we just call that region earth, right? We take care of actually deploying all of those instances, keeping them reliable, spinning them up where they need to be spun up. If you've got users in Australia,
Starting point is 00:19:30 then we spin one up there for you without asking you to think about it, without charging you extra to kind of do that. That ends up being really, really powerful. You get to compute closer to users. You don't have to think about that kind of coordination. In practice, it's just really, really hard to do that on existing providers. And so we find a lot of teams coming to us so they can build applications at scale like that. There you go. Celebrate live in Austin with us on Wednesday, April 3rd. Again, check for a link in the show notes for registering to that. Spots are limited and I'll be there. Otherwise, enjoy Cloudflare's Developer Week all week long from April 1st through April 5th. Go to cloudflare.com slash developer week.
Starting point is 00:20:08 Again, cloudflare.com slash developer week. I think probably there's a lot of difference as well when we talk about contract work versus full-time wages. Even when it comes to marketing yourself or getting hired, it seems like the kind of contracts that I got over the course of my contracting career, a lot of them were more the kind that you're talking about where it's they know you already or you've been vouched for by somebody who's either hired you in the past or that they trust. And so in those cases, you kind of skip a lot of stuff and you go straight to the first date is what I used to call it. Let's get to know each other and see if this is going to make sense. But a lot of people are out there on the job hunt right now which is probably thousands of our listeners as many layoffs have happened
Starting point is 00:21:08 and it's been tough right now to get rehired it seems after you've been laid off because so many people are trying to find work that they have to lead with their specializations they absolutely have to because their application will get filtered out by some entry level HR person before they even get considered like their application will get filtered out by some entry level hr person before they even get to the interviews because they didn't list the right jargon yeah and so that's got to be frustrating but also a reason to like sharpen your specific
Starting point is 00:21:36 skills that are in demand today yeah well and another topic you mentioned was seeing yourself as a generic problem solver versus seeing yourself as someone with a specific skillset. And there's a tension there for me as well, because I want to work in such a way that I never lose out of sight the fact that i'm actually helping someone so that's also why i couldn't work comfortably in a very abstract problem domain like the financial system like unless there's it's very clear like okay who are you helping here here so for instance if you make programmer tooling well you can make the life of Python developers less miserable and maybe contribute with the 99th package manager
Starting point is 00:22:27 to try to solve things. Yeah, all we need is one more and we'll be good to go. So that dimension is very important to me. But at the same time, I'm starting to realize there are some kind of problems I'm just not interested in solving. And that's interesting. Yeah. So that means you end up, like, I'm starting to give priority to projects that require more thoughtful technical work and less to projects that require more like just interfacing
Starting point is 00:23:02 with business people, gluing APIs together, like managing a backlog. And yeah, it's like, I don't know where this is going to end, but I think that like as time passes, problem solving is not enough. It's mere problem solving. Everyone solves problems in their work. Well, some people cause problems but yeah everybody wants to solve problems yeah i agree with it's a very generic
Starting point is 00:23:32 description i mean i really want to do stuff with computers so if you have a problem which is a people problem then i will honestly i'd probably be able to maybe diagnose it to some extent and say, oh, I think you have a people problem. You should get someone else to solve it. Yeah, well, that makes you sincere, Adolfo. Because, and I was the same way. One of the things that I stood on was, I'm not going to try to help somebody who I can't help. Even though I want to, because I want to help people, right? But being helpful sometimes is just being a pointer to somebody else, you know, and sincerity and authenticity and honesty,
Starting point is 00:24:09 and I guess integrity by, by proxy, come out of the person who's willing to say, you know what, I can see your problem. I'm thinking that the solution is over here. And I'm not that guy or that gal. That's somebody else. Like in your case, that's a people problem. Here are some good people who can help you hopefully solve that problem, but it's not me. And so you don't get that gig. You don't get that job. You pass on it, and that hurts because you want to make money or whatever.
Starting point is 00:24:37 You want to help people, right? There's always the tension of, well, I've got a family to feed, and so which jobs do I take? Which jobs do I pass? Can I afford to pass on this job? I mean, that's a hard one, right? Because saying no is a privilege that not everybody has. Sometimes you just got to have the work. How do you deal with those circumstances? I guess I've been very lucky. So when I started out, I was in a mode of just do whatever. Whatever comes up, you take. But at the same time, I didn't want to devalue myself.
Starting point is 00:25:14 So I set a pretty decent rate. And it was challenging because I think I would be willing to take work that I'm not totally comfortable with for the right reasons. But I'm not sure. Well, I mean, sometimes you just need to. But things turned out in such a way that I was never desperate enough to work with people who don't value my work as I value it. So that's for me like a first basis of collaboration. And only then comes, well, what kind of work are you going to do?
Starting point is 00:25:52 So, and as I said, I've been very lucky. Like when I started out, I had planned things in such a way that I, I mean, I could afford having little work. And since then I've had work kind of nonstop except vacations. Though it's still, I get very nervous when, well, I don't know what I'm going to do next week. And the funny thing is, I shouldn't. Because purely from the numbers perspective, I mean, I've planned everything in such a way that I could I could have months of no projects and everything would go well the thing is when you don't have something you start thinking like oh well maybe this is the end right maybe there's nothing else down there maybe there's nothing coming after this
Starting point is 00:26:37 how did you get there did you just save up while you're working full-time or? No, so I started very young. I have a very low cost of living. So that helps. That means that, I mean, if you can, let's say if you charge from 100 euros, $100 per hour above, then just a couple of projects a year will, I mean, if you work two months for 40 hours per month, per week, then in a country like the
Starting point is 00:27:08 Netherlands, I should like kind of make the calculation, but you should have enough money to survive if you are frugal. So not just two months of work. Yeah. The math works out in your favor because your low cost of living high hourly wage when you do have work equals you don't need to be billing 40 hours a week yeah in order for you to survive yeah and additionally there's like benefits and drawbacks to this but the the kind of welfare system in a country like the netherlands means that if you have i don't know a very serious illness you won't be bankrupt by that so you everyone has mandatory insurance and um like you would never let's say under normal circumstances you would probably never pay above a thousand euros for anything in your healthcare yeah so
Starting point is 00:28:05 your emergency fund doesn't need to be as big as people in other circumstances because you have a you have a cap on your emergency spend yeah exactly so and after the first year which was i mean it was tough not from a financial perspective but more in a i don't know psychological perspective like when you have had no work for a couple of months you're like does this still make sense and at the beginning you are well you know it doesn't matter i can i don't know learn new stuff on the side read all these books i wanted to read and whatever but then where's the work? So in fact, I got kind of stuck after a few months and only thanks to a recruiting platform,
Starting point is 00:28:51 I got the next project. And it was kind of, yeah, it was a six month project. So that was nice. It meant I didn't have to look for anything else in that time. And after that project finished, I got another six month project which was nice too and after that things got more kind of had to serve the waves right it got more uh more like a roller coaster but about that time it came like the rust the breakthrough where there was uh well i started
Starting point is 00:29:21 writing more actively like trying to actually started framing myself as a Rust expert. And I don't think this is a good strategy to get random people from the internet to work with you. But I think, well, it's mostly luck that someone thought, hey, they saw like a couple of blog posts and they thought we should work with this guy. So they sent me an email and I worked for them for a couple of months. And then a Rust maintainer I know of the couple of Rust networking libraries, he got offered to work on that being sponsored to implement a few features, but he didn't have time. So I told him like, hey, you should talk to Adolfo, he's good.
Starting point is 00:30:01 And then I ended up doing that. And that way things kind of escalated because I ended up getting on the radar of the ISRG, the people behind that's encrypt. And they asked me to work for about five months on a very nice project. So I got to do lots of open source work last year, which gave me also lots of things to write about. And I feel like having done this amount of work in the open and writing about it has helped me market myself, I guess,
Starting point is 00:30:32 as a specialist, as I wrote in the blog post. Right. So you can remain an undercover, maybe generalist. But the thing is, I started doing this more out of a marketing necessity. And kind of afterwards, like last one or two months, I started thinking like, hey, I think this is not only marketing. I think I actually like this.
Starting point is 00:30:54 Maybe I should just stick with this. And of course, one of the things I love about this is not necessarily working with Rust, which I mean, is a nice language, but it also has its words. It's mostly that I get to learn a lot. So for instance, diving into the container specification, and recently I had to investigate lazy loading techniques to get your container startup faster. It's so interesting to kind of get in touch with the great ideas people have had about
Starting point is 00:31:27 how software should be packaged and you become smarter by studying the specification someone else wrote because they are smart the same goes when implemented the network protocol like you get to read a bunch of RFCs and I mean they're not perfect but I don't know, for me, it feels like you become part of a community of very smart people who are driving the foundations of technology further. So that's, that's very attractive to me. It's like becoming a, well, I don't, I don't think I'll ever become like a famous internet
Starting point is 00:32:01 person, but I kind of treading in the path of the people who build the internet which is nice yeah so you'll be the kind of person it's kind of like the actors actor you know this concept of like certain actors are not famous like superstars famous but they're so good at what they do that they are respected by other actors more than they're respected by mainstream audiences it's similar to like if you go ask a major league baseball player who their favorite player is a lot of time they're not going to say the most famous baseball player it's going to be somebody that is like yeah he's good like everybody knows that's a good player but the players know that that player is good. And so there's this undercurrent of respect
Starting point is 00:32:51 there, even though you're not going to have necessarily starring Adolfo Oshkavilla on the playhead there. I did notice you have an awesome testimonial. You mentioned the Let's Encrypt from Josh O's on your website for instance like that is probably worth its weight in gold for people who know who josh owes is like to people who are in your little niche yeah like that's i i know i've met josh we've had him on the show i respect him quite a bit i saw that i'm like dang that's a nice testimonial like i would love to have that about me yeah and he said that about your work. So that's indicative of that. Yeah, it's amazing.
Starting point is 00:33:26 It's also like, I've very consciously tried to ask for recommendations after every successful project. It's not comfortable to do so. But if people are happy, they will be happy to write something for you. And it can make a big difference. Not necessarily making you more findable, but once people find you and they try to validate you, like, is this guy really worth this much money?
Starting point is 00:33:55 And they see, hey, all these people from the Rust ecosystem and elsewhere are saying that it's worth working with him. So, yeah, I haven't yet kind of experienced that this really makes a difference because I'm still getting most projects through network, like people who know me, who recommend me personally, not just on a website. So-
Starting point is 00:34:19 Well, I can't hurt. It's certainly social proof to confirm perhaps a recommendation or a network. Because they're going to check you out. Even if I got a recommendation, hey, I'm looking for somebody who does Rust, whatever, whatever. Somebody I trust says, yeah, check out Adolfo. He's pretty good. I'd go to your website.
Starting point is 00:34:36 I would read it. I would see that testimonial of Josh O's, and I'd be like, okay. There's two witnesses there that say he's good. So now I'm going to go ahead and have more confidence in hiring you that first time. So it certainly can't hurt. We have a similar situation with podcast recommendations because we get a lot of nice emails and I love them
Starting point is 00:34:55 and we have dialogues in private with listeners who say our shows are good, we've helped them in this way, et cetera, et cetera. And yet in terms of like getting that into something that could be a recommendation that could be used publicly or something, I have to then ask, you know, which is always kind of feels weird.
Starting point is 00:35:15 But over the years, I finally just said, you know what, I'll just reply back. Thank them so much. And then say, I even just did it just the other day and he was happy to go do it. I'm like, can you just copy paste that into an Apple podcast or a Spotify review? Because those are really helpful for us.
Starting point is 00:35:30 And he's already written something nice. So copy paste, throw it in there. We really appreciate it. And people usually say yes, but it always feels a little bit tricky to ask because it's just like, eh. Yeah, but on the other hand, I mean, if you really think you have something to add to this world,
Starting point is 00:35:46 you need to help people realize that you are there. Right. So. Yeah. Is this the reason for your writing? I mean, you said been writing more. Is this kind of in the marketing work? I mean, because, hey, I found you because of your writing.
Starting point is 00:35:56 Yeah. And now we're friends. And now I know, you know, if I come up with somebody who needs rust help, I might point them to your direction. So it's working. But was that the reason for the writing or do you just like to write? What are your... So there's a bunch of reasons. I've always liked to write. I even, when I was in school, I thought about getting into philosophy after finishing high school. But well, I lived in an
Starting point is 00:36:21 environment where people were like, are you crazy? You will starve. You just go and become a lawyer instead, which is also kind of related to the humanities, you know. So I went and studied the first year of law, which was interesting. I think I got pretty much like a bunch of things out of it that I'm still using today. But then I decided I wouldn't write contracts for people who never follow them, but for computers who always do what I say. So I made the switch. But the interest for writing has always been there. And then actually similar to specialization,
Starting point is 00:37:02 my main motivation, well, I don't know if it's really similar to specialization but in any case my main motivation to write at the beginning was as a way of way of marketing myself but at the same time i felt like i should only write if i actually had something to say so it's like it's a combination because i just refuse to write filler articles. I don't even think that would work because people are smarter than that. I mean, at least the people I want to work with. So yeah, it started out as a marketing need. I needed to prove myself that I was a Rust expert. I mean, I was talking to a company and they were like, yeah, but like, who are you?
Starting point is 00:37:47 So I thought I'd never want to have this conversation again. So I wrote a whole blog post explaining kind of did some historical digging. What was my exact contribution to the open source project? And I wrote down a big blog post, long blog post. I think it made the Hacker News front page to explain, well, this is what I did. And I'm not like one of those famous Rust contributors. But, well, I did this and I did that. And I organized the Dutch meetup at the beginning a couple of times.
Starting point is 00:38:16 And, yeah, that kind of worked. And after that, I started to realize, especially last year, I started realizing that people really get inspired by what I'm writing. And that, like, I started receiving emails from people and seeing subscribers. And I mean, it's not like I'm looking a lot into numbers, because I'm not doing it for the numbers. But I've had people write to me saying, this article has really opened my eyes to X. And that's very special because I think if you have something to contribute to the world in any way and you are capable of doing it within your means
Starting point is 00:38:58 and without it going against more important stuff, well, why wouldn't you do it? So writing articles takes lots of time, especially if you want to write things that are worth reading. And pain, too. Yeah. For me, at least. Maybe that's just me, but I feel like, and I always pick on my wife
Starting point is 00:39:18 because I use this analogy and she hates it, and she deserves to hate it because she's given birth to six children. And so I say, you know, I don't't write a blog post i burr the blog post yeah and i'm just trying to relate to the pain but she's you know she won't have it and with good reason i have no right to say that but um it does feel like that like for me it's just like not drudgery but just painful work and then. And then I always, just like a child, you go through all of that, and it's the worst pain in human life that doesn't kill you or whatever.
Starting point is 00:39:52 And yet afterwards it was all worth it because now you have this child. And a lot of times a blog post can be like that as well at a microcosm where it's like, this was a lot of work and anguish, and yet I always am glad I did it at the end and that doesn't always motivate me to write the next one but still it's worth it especially when you have people like you adolfo who they're emailing you telling you that you inspired them or you intrigue them
Starting point is 00:40:16 i mean it pays dividends but it is it is work it's hard work like recently i i even end up meeting people in person in amsterdam because of one of my blog posts or having video calls with people from other countries and i even got someone from lebanon to go for lunch with one of my friends because i thought hey i think you are the kind of person this guy would love meeting so why don't you just meet you two should have lunch and that actually worked out. And they did it. And they enjoyed it a lot. They sent me a selfie.
Starting point is 00:40:49 And I was like, hey, it's so nice that something small, such as a blog post, but actually it was this blog post that started also this conversation about the undercover journalist that it triggered so many good things in so many people. right so as i mentioned i
Starting point is 00:41:09 started writing from a marketing perspective because i actually saw it as an investment i need to invest in my reputation and with time i'm i mean i always thought it also contributed something to the internet discussion but i'm starting starting to see, to think more and more that the contribution, even though it's not like life-changing in a bigger scale things, it is a real contribution that's worth doing. So even, I think even if I didn't have my business,
Starting point is 00:41:39 I would end up writing anyway, maybe less frequently because it's just a lot of effort. But yeah, I just, I think that there's it's just a lot of effort. But yeah, I think that there's a bit of a lack of authenticity on the internet. So even if you write about very daily programming stuff, like, hey, I did this project and I had lots of fun and this is what it was about. People love it. Or hey, I became a contractor a while ago and i've been struggling with lots of things and i've figured out a bunch of things but lots of other things i haven't and i'm also a bit afraid here's my story yeah or the the same about the well i mean we're talking right now like
Starting point is 00:42:18 it's so nice when you don't have to pretend you're some kind of expert. And I mean, when I open LinkedIn or many, many places where you normally get articles from, people are pretending they're the kind of Einsteins that know everything. Right, gurus. There's gurus everywhere. The five things you need to know to avoid starving in the next recession, you know?
Starting point is 00:42:42 Right, right. So just writing about normal stuff from a real human perspective, and I'm filled with curiosity about computers, and I think I can pour that into my articles. And I also care about the people who are reading my articles. So I guess people in some way perceive that.
Starting point is 00:43:04 Yeah. No, I think that's true. And there is a lot of noise on the internet. That's one of the reasons for changelog news, which we've done for many years, is just to be able to highlight people who are writing like you're writing, to cut through a lot of the gurus, and hopefully provide some signal to people who really deserve it. I mean, our whole deal was like shine a light where it should be shined. And we hope that we do that on a weekly basis with that show and that newsletter.
Starting point is 00:43:34 Any newsletter has probably between 12 and 20 links. And I think that any working software developer who's curious in this space will find one of those sincerely good and touching to them. But those are hard to find. People like yourself are hard to find. Not everybody has time to do that work, and so we try to do that work a little bit
Starting point is 00:43:57 just with that little spotlight of ours that we can shine on people. I also think that your sincerity is absolutely spot on because insincere writing, grandstanding, AI-generated trash, as a seasoned reader of the internet, I can spot that stuff a mile away. And I can also know when someone's writing from their heart and from their experience. And when I read that post, I was like, this guy knows exactly what he's talking about. Like, you do he's like i just there was no doubt that you were sharing that from your actual real
Starting point is 00:44:29 experience and so i would encourage you to keep writing i want to also encourage our listeners who maybe aren't writing but have things to share with the world is to go ahead and go through the pain birth a blog post send it my way and uh we can get other people reading it as well one of the people who inspire me a lot in this regard is julia evans yeah like her writing there's something special about it because yeah well so much voice yeah i mean i it's not the way i write i mean i like to polish my stuff much no it's her voice it's her voice. It's her voice, not yours. You have your voice, she has hers. It's like she doesn't feel the need to appear as an expert
Starting point is 00:45:09 about anything. Right. She's just like, hey, I love computers. You should love them too. And I'm actually trying to write from the same source with a different voice, but I think it's the same source. You end up writing stuff that it's not necessarily
Starting point is 00:45:26 very generalizable in the sense like, I mean, you won't have advice for like the programmers of the world, but you can have a couple of stories, inspire someone with your curiosity, and maybe you'll document a bunch of things that someone will find useful about containers later when they Google something. Yeah, but at the same time, I think advice that is generalizable to the programmers of the world is very rare. I mean, that's the reason for the It Depends
Starting point is 00:45:56 miniseries is because there's very little generalizable truth. I mean, maybe Fred Brooks hit on a few things. There's no silver bullets. I think that's generally true. The mythical man month, generally true. But even our idioms and our cliches, don't repeat yourself, right? Our design patterns, they all have yeah buts, like all of them do. That's why I specifically am trying to avoid that kind of stuff. Like, oh, you should always unit test your code. Come on on or all kinds of different generic rules you should i did write one once which was born out of my own experience after many years of writing crud web apps and that was titled you might as well time stamp it and the general premise there was you think you need a boolean you probably just want a time stamp you're going to wish it was a time stamp at some point trust me i've done it a hundred times i've been like
Starting point is 00:46:49 i'm going to switch this to a time stamp you might as well just time stamp it and still even that phrasing which that one did go i think like number one hacker news for a day or something even that phrasing still has some wiggle room in it like it's not you have to it's you might as well yeah and so every once in a while you'll hit on something but even that has its yeah buts still has some wiggle room in it. It's not you have to, it's you might as well. And so every once in a while you'll hit on something, but even that has its yeah bots. Nullable timestamp, right? Yes.
Starting point is 00:47:13 Where null is false and the timestamp is true. Exactly, and the existence of the timestamp is true. Sounds useful. It's just the same exact, it ends up, it's practically the same thing, but it has more information, basically. In practice, you get the same functionality, but you also have a a time associated with it now there's other ways you can slice that too which give you more information and you'll find those in the comments to my blog post
Starting point is 00:47:33 which is great too because that's the other thing is when you write you learn because there's lots of other smart mostly genuine people i mean that's also one of the reasons to write to see what other people have to say about the topic like i've been very curious about the topic of generalization and specialization. And every time it comes up, I kind of look at the comments, see what people have to say. And the fact that a whole bunch of people on Hacker News started commenting on my blog post was amazing because I got to read lots of interesting stuff. And I see that like as a symbiosis between my article and the people commenting that becomes a new whole that people can consume is such a horrible word.
Starting point is 00:48:19 Consider. Yeah, consider. It's so much better. Oh, thank you. Absolutely. A lot of times the comments are the best parts. Sometimes the comments are just a dumpster fire. So it's hit or miss. But sometimes they're the best parts.
Starting point is 00:48:31 Yeah. Hey friends, this episode is brought to you by our friends at Sanadia. Sanadia is helping teams take NAS to the next level via a global multi-cloud, multi-geo, and extensible service fully managed by Sanadia. They take care of all the infrastructure, management, monitoring, and maintenance for you so you can focus on building exceptional distributed applications. And I'm here with VP of Product and Engineering,
Starting point is 00:49:23 Byron Ruth, and David Gee, director of product strategy. So when you think about connectivity being the first thing to consider, someone pushed back on this and say, we'll think about it later. What competes with a mindshare of connectivity? Just like an HTTP developer, you actually just download and run the NAT server. Whereas an HTTP developer, if you're building an HTTP set of endpoints, you typically have to implement or use an HTTP library. And then whether it's a Go standard library, Python, whatever it is, and you're actually implementing endpoints that register into the HTTP server. And then now you have to go deploy
Starting point is 00:50:01 this HTTP server and ensure that it's performant. So it's a slightly different model, but like you download the NAT server, it's a standalone binary. It runs on, you know, the majority of platforms. And then you have a handful of client SDKs across all the major languages. You download that. And we even have a higher level API that is akin to what HTTP developers have of like defining a handler, for example. We just call it our services API. And you basically have a few boilerplate things that you register your handler in the
Starting point is 00:50:34 NATS context. And out of the box, it actually supports sort of a general request reply setup. And then you get all of these other benefits out of the gate. But the experience and the onboarding is arguably just as simple as any other HTTP onboarding, with the exception that you're technically deploying a client application that implements these NAT services in addition to the NAT server. But that's where the Sanity Cloud, it's already a managed instance. And we even have the demo server for you to just try it out. It's a public endpoint that you can literally connect to. So you can still build a simple client application, use the demo server as the endpoint, and then you can play with that and use that as sort of the server deployment. Well, if we talk about it just from, you know, the central view of
Starting point is 00:51:17 applications, forget networking, all that kind of packet-based stuff, you were calling them HTTP developers, which kind of stalk instead of API devs. I mean, what do people do? They either glue it together at a primitive level. So the primitive being HTTP, they move up the stack in their mind's eye and they go, oh, we're going to do some gRPC, which is kind of still point to point. So it's a lot of point to point stuff versus broker assisted connectivity, which is way simpler. You connect to an endpoint, you get told about other endpoints. It's like connecting to a hive you know what we're trying to do is move people away from coordinated point-to-point connectivity to easy connect to anything securely and connect to your other stuff securely instead
Starting point is 00:51:55 of having to coordinate the whole you know rat's nest of where to connect to them then you've got to negotiate well what do we do then now we've got to get the schema information and can we even connect to this thing and does it even work and? And what version is it? And all this stuff. And what we're trying to do is transform that and flip that to Unify to make it much simpler. So I think we're trying to go from a rat's nest of point-to-point connectivity in the application space to making everything on net. And it's like connecting to a hive mind. And what we're kind of asking people to do is think about applications the same way you would video conferencing. So if me and Barham are going to have a chat, we might do a huddle on Slack or jump on a Zoom or
Starting point is 00:52:27 something. But if we want a colleague to join, we ask them to join the same course. We can have a point-to-point conversation by the same medium, or we can have a party line by the same medium. So it's request, reply, or pubs up, but it's on the same platform. We don't care about what Zoom server we connect to. We connect to the service and we coordinate our communications over the fabric. There you go. Yesterday's tech is not cutting it. NAT's powered by the global multi-cloud, multi-geo, and extensible service, fully managed by Synedia, is the way of the future. Learn more at synedia.com slash changelog.
Starting point is 00:52:59 That's S-Y-N-A-D-I-A dot com slash changelog. Back to specialization. There's one danger in specialization, which I think I touched upon, but let's talk about it more directly. And that is when you specialize in a technology, you are making a choice to invest into a particular technology in lieu of the others. It's your exclusive of the others. And Rust is working out very well for you. But you can also back the wrong horse, as many people have.
Starting point is 00:53:36 And I even have a few times in my career. I've invested in technologies that no longer are in use. And I'm not talking about jQuery. That was a good backing in the day because it lasted for a long time in the marketplace. It longer are in use. And I'm not talking about jQuery. That was a good backing in the day because it lasted for a long time in the marketplace. It's still in use. Yes, it is. But for instance, I got into Cappuccino for a while.
Starting point is 00:53:53 Have you heard of Cappuccino? This was a JavaScript library that was built on top of another project called Objective-J. This was from a startup called 280 North. Very talented guys. They built basically Objective-C in JavaScript. Cappuccino was their app kit.
Starting point is 00:54:15 They were basically copying Apple's app kit framework into JavaScript. You could write it in Objective-C-ish. I think it was either transpiled or somehow done at runtime. I can't remember. And so they had this whole, and they had a great web app called 280 Slides, which was an in-browser keynote clone-ish. And it was very whiz-bang.
Starting point is 00:54:38 And I wanted to learn Objective-C anyways because I was getting into Mac OS development. And I was already writing a lot of JavaScript. And I thought, okay, I can learn some Objective C I can keep doing JavaScript I can bring it into the browser and I spent about a year building Cappuccino things I built it generated one client for me and that was it and then it kind of went by the wayside all three of the people who created Cappuccino moved on to other projects. I'm sure it still lives out there in some production code somewhere.
Starting point is 00:55:08 This was about probably 2008, 2009 time period. And now you don't know what it is, right? So that was like, in terms of making a bet, that was not the best bet, but I didn't get deep into it. So I was able to read the tea leaves and move on. But you sure can back the wrong horse and now you're really in trouble there can you speak to that i mean yeah so i also think
Starting point is 00:55:33 about this because i mean you don't want to make bad choices in general yeah and i haven't met anyone who really got stuck in their career but probably because I'm very early in mine. I'm 31. But I've read plenty of comments on the internet from people who got stuck. But I've always wondered, like, what is the real cause? Is this because they made the wrong bet? Or is this because these people have no proper network? They have like maybe they ossified their ability to learn new things.
Starting point is 00:56:13 Like there could be so many causes behind a random internet comment saying, oh yeah, I specialized and now I can't find a job. I've also seen other kinds of comments. People wrote to me because of my article saying, I'm a journalist and now I can't find a job. I've also seen other kinds of comments, people who wrote to me because of my article saying, I'm a generalist and now I can't find a job. I should have specialized. So for me, it feels like maybe you are looking at the problem in the wrong place. And what has paid off for me a lot is just genuinely caring about people and about your work. With a bit of luck, the combination can be very powerful. And I think also one of the things,
Starting point is 00:56:51 going back to the risks of investing in the wrong technology, I'm trying to invest in very fundamental technology. So Rust has pretty much won at this moment. Like all the big companies are betting on it. The US has made a document saying we need to move off memory on safe languages. Like Rust is in the Linux kernel. When did you make the bet though? When did you decide on Rust? Well, I didn't very explicitly make it. I got into Rust because I was curious. And I confess I was conscious that this might pay off. And it might have motivated me a bit more than just fooling around.
Starting point is 00:57:39 Yeah. But the way I bet with this kind of things is I make sure I bet on something that it's worth to me now. So even if I lose the bet, I don't regret it. So even if it doesn't pay off in the long term, at least it pays off in the short term. Like, hey, I learned a bunch of very interesting things. I got to participate in an amazing open source project with a great community. Yeah, so when I started working, thanks to my involvement in the Rust community, I wasn't like the random junior guy who just got out of university because I knew how to properly use Git, how to properly make pull requests,
Starting point is 00:58:19 test my stuff, like lots of things that are kind of basic once you get the hang of of the craft but which could take you maybe a couple of months or longer if you haven't had this exposure to i mean even your expectations like if someone writes a bunch of untested code and you're right out of university you say oh this looks like most of my code until this date. But after participating in the Rust community and seeing a coworker write no testing code, it would be like instant red flag, like, wait a second, how do you know this works at all?
Starting point is 00:58:56 And I mean, without getting into dogmatic test-driven development kind of stuff, but like full test coverage or whatever. But basically, kind of developing uh i don't know some kind of second nature or taste for how a project a software project should be managed that was uh how do we end up here actually what are we talking about now well we're talking about making bets on the wrong technology. Oh yeah, right. Yeah, exactly. So even if Rust hadn't panned out, I would have ended up a better programmer because of this bet.
Starting point is 00:59:34 I think that's fair. And looking back at that one particular bet that I made that didn't pay off, I don't really regret it anyways, because A, I had fun. B, I expanded myself as a programmer because I learned a lot about the JavaScript runtime inside the browser, things I didn't know when I came to Cappuccino. I learned a lot of Objective-C-isms, which for better or worse,
Starting point is 00:59:56 I like some of that stuff to this day, and I still carry with me that experience. And I was also ready, willing, and able to let go of it. Once I saw like, this isn't actually going to go anywhere from here probably. And that's the other thing is like, you can't be dug in when something starts to fail. Yeah. I think that's a,
Starting point is 01:00:15 like a key idea. And that's also one of the reasons, even though I'm doing more and more systems programming stuff, I still keep an eye on other technologies who come and go which are coming and going yeah what's piquing your interest right now like if you were so outside of the rust bubble i'm very interested in the way dot net and c sharp is developing okay like they are investing a lot in making it a proper like a language where you can you write like high performance coding in fact related to the recent redis license oh yeah the alternative that microsoft has made very timely
Starting point is 01:00:56 which is incredibly suspicious yeah i know it was actually i just talked about that the other day it was like two days prior to the announcement of the Redis re-license, they announced this project. I think it was called Garnet or Garnet. Yeah, Garnet, yeah. It sounds like, I mean, they are probably offering a host to the Redis on Azure, right? So they must have received some communication from Redis. I'm sure they saw it coming.
Starting point is 01:01:18 Saying like, hey, you should start paying in a few months and oh, all right, goodbye. Redis client compatible yeah yeah so anyway that thing is written in c-sharp yes i saw that so and some i mean if you knew c-sharp from 15 years ago you would think this is madness but c-sharp now is not c-sharp from 15 years ago how so it's evolved a lot and the.NET framework is now cross-platform. It has lots of very interesting features. So to me, it feels very natural that this project is written in C Sharp. And in fact, when I write non-systems programming code, I mean, when a client says to me,
Starting point is 01:01:58 just use whatever language you want, I'll very often pick C sharp. So I like, I'm following it a little bit less actively than Rust. And then I guess just keeping an eye on Hacker News and seeing which things trigger my interest. There's not lots of time to invest into that. I mean, it can also be, I guess most people have experience that it can get out of hand. Yes. Because, well, we are curious, right? That's why we're into programming. Yeah.
Starting point is 01:02:30 At least myself. So yeah, you need to take a bit of care. Yeah. But right now, I mean, I'm also trying to diversify my knowledge based on the work I'm doing. And I think that's also a good proxy. Like if someone is paying you to learn something, well, I guess it's worth learning. So I've been getting into, well, I don't think this will be reusable knowledge, but I was paid to do it. So
Starting point is 01:02:53 I wrote a dependency solver for a package manager. Okay. And yes, so for the conda ecosystem, it's being used like for a new like a replacement for conda. And I don't think I'll ever get to do that again unless there's some random person who randomly needs dependency solver. Yeah. But on the other hand, like it wasn't a bet.
Starting point is 01:03:20 I was paid to do it. So I was in fact paid to learn this. However, sometimes I get paid to learn things. So I was, in fact, paid to learn this. However, sometimes I get paid to learn things that I know will be reusable. For instance, I investigated how to produce container images very efficiently, directly from Python packages without actually going through Docker, just downloading the packages directly, messaging the data and generating a container image in parallel, every layer in its own process.
Starting point is 01:03:51 Like it's amazingly fast. And a year later, a company that read that blog post said, hey, we actually need exactly this and come help us. That's the project I'm doing right now. So I had to figure out the container specification, a bunch of protocols and low level stuff, which does feel very reusable. And I also, well, we will see also, I mean, we still need to see what happens with AI, but I would expect that fundamental work, like someone, like some real human person needs to understand what's going on at the base of things.
Starting point is 01:04:38 So that also from that perspective, it sounds like a good idea to bet on the low level things. Yeah, I'm kind of betting on them right now, but I'm being paid to do it. So it feels less like a bet. Well, that's a good reason to take a gig. I used to have like a decision rubric for a project where I would have three things. I'm trying to remember back because this was years ago. I would look at three different aspects of a project in terms of it. Is it interesting to me or is it worth taking? And the first one was money because I'm trying to make a living. And so if the money is there, that's a good reason to take a project. It's not the only reason, but it's a good one.
Starting point is 01:05:08 The second one was intellectually interesting. So it's either something that I'm interested in, the problem space, or the technology. Or like you're talking about, it's a technology I already wanted to learn anyways. And now I'm able to learn it while being paid versus learning it while not being paid. And then the other one was reputation or portfolio. I mean, that's real. You have to build your reputation. You have to have examples of things that you've built.
Starting point is 01:05:35 And so is this good for that? Well, this sounds a lot like my own heuristic. Does it? Yeah. Those are the three things I would look at. And then you have other things too. Is it something that I have a moral problem with I remember one time I went down the road with this gal
Starting point is 01:05:51 about helping her build a website I didn't go very far down but it took me too long to realize it was a porn website and then I was just like I'm sorry I'm not interested I just don't want to work on this kind of thing that was a stopper for me so there's other things that are like, no, not going to do that. But for the most part, those three things.
Starting point is 01:06:08 And if I can get two of the three on any given project, I'm super happy, right? Like if it pays good money and I'm learning something new, super happy. If it's learning something new and getting a nice portfolio piece, but not paying very well, pretty happy. If I can hit all three, that's a home run.
Starting point is 01:06:22 Very happy. Yes, very happy. me it's it's the same i mean i don't put the moral stuff in the list because it's it's not up to negotiation right so but it's worth asking up front sometimes because because i so many people have moral obligation or not obligations moral objections to certain types of projects, the people who have those kinds of projects and are looking for that help, they'll kind of hide it and they'll save it till later. At least that was my experience. Because I was like, you should have led with that.
Starting point is 01:06:55 Don't you think? That should be right on the front page. Because now you're not wasting your time and my time. And it was almost like she was trying to sneak it in the side door and hoping that it wouldn't bother me. Well, if it wasn't going to bother me, it wouldn't bother me at the beginning either. So it's just a waste of time. And it was almost like she was trying to sneak it in the side door and hoping that it wouldn't bother me. Well, if it wasn't going to bother me, it wouldn't bother me at the beginning either. So it's just a waste of time.
Starting point is 01:07:10 But yeah. Okay. So specialization, generalization, technologies, decision-making. Have you ever thought about just going back and working for somebody full-time? Just get a job again i sometimes think about it when i i'm afraid i'm not going to find enough projects on my own but it always feels like well i would be doing it out of fear the fear that i won't be able to find projects but and i actually think that's not a good enough reason for me right now like yesterday i published another article about like a sequel of um of the one on the undercover generalist oh really i should have read that
Starting point is 01:07:54 it was it was it is called from false tag development to systems programming and at the end of the article i mentioned that i actually dread at this moment going back to an office job. Like this very call we're having now, it started for me during working hours. And I don't care because no one is expecting me to be at an office. So there's a level of independence that I really enjoy, but also there are many different aspects to it. Like even the reputation aspect, I feel like when you are working independently, you can, it's much clearer which impact you are making in the projects you are involved in. So that testimonial from josh asks you wouldn't i'm not
Starting point is 01:08:48 sure you would give that to a team but you can give it to one person you have worked with and you know this guy made this and it's great you should hire him like and so even from like my craftsmanship sense of like wanting to be recognized for my work, it feels like at most companies that just wouldn't be, wouldn't happen. So I kind of like, I'm still, well, I'm still searching. I mean, this is a long journey. But right now, like the mental model I have career-wise is i want to try to become like just a very good craftsman and that people know to find me when they need a craftsman because i if they don't need a craftsman well i i guess there's plenty of other people out there who can help you too.
Starting point is 01:09:45 Like if you need to build something simple. Sure. Yeah. Well, the robots will build those for people soon enough. So the craftsmen will be the only ones left. Well, I hope at least that remains. Otherwise, I'll become a mere interface to GPT. Exactly.
Starting point is 01:10:04 I mean, someone needs to translate business needs to GPT, right? That reminds me, I think now might be the best time in history. If you want to stake your claim as a, I don't know how to name this yet, so somebody needs to put a name on it, but the people who come in after the robots program you things and they fix everything. You know, similar to there was Rails rescue projects.
Starting point is 01:10:28 I did a bunch of rescue projects where it's like, we have a hot mess. It's still serving value to our business, but nobody can touch it because the people that built it moved on or whatever. Please come in and save this project so that we can continue to do things. And there was Rails rescue, there like teams that all they did was-
Starting point is 01:10:46 The AI rescue team. Yeah, exactly. And there was similar things for like, you go to the wrong outsourcing company, you end up with a hot mess. You're going to end up with some AI hot messes. And I just feel like if you want to get at the top of the search results right now, or not right now, in the future, to be the rescuer of the AI, we got to get the domain, you're going to put the name on it, right? Like this is when you
Starting point is 01:11:08 stake your claim. AIrescue.com. AIrescue. Somebody can have that. That's a free idea for anybody who wants to. It's obviously already registered. That's true. There's nothing new under the sun. Someone's all over that. All right, Adolfo, this has been lots of fun. The website ochagavia.nl There you'll find his writing. You can subscribe there. You can hire him.
Starting point is 01:11:33 Anywhere else to send folks to connect with you online? No, I just use my website and email on GitHub. Well, you can find me on LinkedIn too, but that's like a horrible place to find people. I used to agree.
Starting point is 01:11:47 I'm starting to disagree. And here's why. Everybody's there. And you used to be able to say that about Twitter. You can't say it about Macedon. You can't say it about Threads. You can't say it about Blue Sky. You can't say it about X.
Starting point is 01:12:00 But with LinkedIn, I mean, what a world. What a world we live in to where it's like, you want to find people. Everybody is on LinkedIn pretty much 201. So that's, that's a weird, but other than that, I would a hundred percent agree. Well, that's why I haven't left. Yeah. You can't leave now. That's where everybody is. Ah, Microsoft. All right. Well, thanks for hanging out. A quick mention for those who want some more of this is that Adolfo and I actually had about a 45-minute pre-call recorded because as an authentic, sincere person that he is, he wasn't sure he was qualified for podcasting, I guess.
Starting point is 01:12:40 How would you frame it, Adolfo? You weren't sure that you could handle a conversation with me, which was... Well, yeah, I just wasn't sure. I haven't ever been on a podcast before. So we talked about, it was a lot about Rust. It was a lot about your history. I can't remember what all we talked about. It was about a month ago now. But we're going to put that in after this for our Changelog++ members
Starting point is 01:13:00 because it really is a bonus. And so if you want some more to learn more about Adolfo and hear from me some more as well, stick around. If you're on Changelog++, if you're not, well, what's wrong with you? It's better. Sign up for Changelog++, changelog.com slash plus plus, support our work directly, and then you'll also be able to stick around and get another 40 minutes of us two gabbing.
Starting point is 01:13:23 All right, that's enough of the sales pitch. That's all. Talk to you all in the next one. Bye, friends. Bye, Adolfo. Bye. If you enjoyed this conversation style, we have a couple more in the back catalog.
Starting point is 01:13:40 Go listen to Change Login Friends number 22 with Justin Searles on dependencies and to episode number 24 with Chris Brando about API design. And if you want more like this, let me know what topic and or guest you'd like me to It Depends with next. The best place to do that is at changelog.com slash request. Thanks once again to our partners at Fly.io, to our Beatfreakin' residents, Breakmaster Cylinder, and to our friends at Sentry. Use code CHANGELOG when you sign up and you will save 100 bucks off the team plan. Plus, that will help Sentry know that we're making an impact on their business. Once again, use code CHANGELOG, all one word, for $100 off. Next week on The Change Log, news on Monday,
Starting point is 01:14:25 Zeno Rocha from Dracula and Resend on Wednesday, and Gearheart Returns for Kaizen 14 on Friday. Have a great weekend. Please share our work with people who might dig it, and let's talk again real soon. So here we are. You were saying that you are from Chile, but you're currently in the Netherlands. That's true.
Starting point is 01:14:50 What are you doing there? So I came here when I was 19 to study computer science. And I think it would take the full half an hour to explain. But it was one of the best decisions in my life it's better

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