#107 Josh Long found his place the world as a developer advocate with the Spring team
⚠ The following transcript was automatically generated. ❤ Help us out, Submit a pull-request to correct potential mistakes
Josh Long 0:00 It's very easy as a programmer to think, okay, my job is to go in there and program. And then you realize, okay, you know, if you really wanted to help, you could do more jobs. And also you realize, if you really wanted to help, you could do more jobs and keep your eye on the final goal, which is production, right, get to production. That's what matters. net, nobody, nobody's nobody's paying you to program they're paying you 234 Solutions into production, right? And when you realize that you start becoming a lot more valuable to companies, right? doing extra work actually becomes less useful. I mean, at that point, once you realize that you're, once you realize the full sweep of what needs to be done, you get more efficient at doing the thing you're doing, hopefully, and then you you prioritize getting into production over tangents or digressions on Wouldn't it be cool Wouldn't it be nice to do this or that shipping? That's a very useful skill.
Tim Bourguignon 0:56 Hello, and welcome to developer's journey, the podcast. bringing you the making up stories of successful software developers to help you on your upcoming journey. My name is Tim Bourguignon, and today, I received Josh long. Josh is the spring developer advocate at VMware. He's a Java champion, a co author of six books, host of a beautiful no booty full podcast, and open source contributor, and a screen caster, and many, many more, Josh, welcome to dev journey.
Josh Long 1:26 Thanks so much. How are
Tim Bourguignon 1:28 you? I'm pretty good. Pretty good. Thank you. So the show exists to help listeners understand what your story looked like, and then imagine how to shape their own future. So let's go back to your beginning choice. Where would you place the start of your developer's journey?
Josh Long 1:45 I started writing code in the 90s. I was in I guess, high school. So the beginning of my pain was that if you're asking that's, that's when I began, but then in terms of like, my first Professional, gay guy, it was, you know, some stuff in 2001. And then really full time like 2002. So that's the start of my career, if you will. And the pain just got worse.
Tim Bourguignon 2:18 Why do you call it a pain?
Josh Long 2:20 Well, it's sort of I love code. I think all of us love code. But for me, the thing that was interesting was to realize that the hard part about the job has very little to do with code. It's It's everything that that sort of contextualize this code, right? So, the, for me, it was, Hey, I'm trying to get a job right after the big.com bust, right? This is right when the economy fell apart in the States, right. So 2001 actually, in the 2000s, like early 2000, the economy was the software bubble burst, right? All All the software companies in the country basically just disappeared. Right? So a lot of companies, there's a huge equity boom in the 1990s that had led to some, perhaps regrettable software companies getting funding. It was the case that in the early night in the 1990s, you know, if you knew Microsoft front page, you know, you could get somebody to pay you $100,000 to build a terrible website. Right. But that was how exciting that time was right? But now, you know, then Sunday comes 2000. And the economy fell out. The bottom fell out from the softer economy. So jobs are hard. And then comes 2001 911, right, this cataclysmic event that said our economy back another several years, so it's just a really hard time to break into the industry. And so the first job I took was a very unpleasant the first real job the first job I had, you know, and part of that is, of course, you're young. Do a job, you're just trying to get your teeth. You know, you're trying to sink your teeth into something you're trying to get a, get a feel for what it is to be in the industry and to actually put theory to practice. But a lot of it was just sort of like, Okay, I'm doing their job for much less than I'd like to do. And it's a difficult job and I'm being forced into startups, I'm being asked to work not just 40 hours a week, but 50 or 60 hours a week for months on end. So I really went, you know, they, they say, jumping into the deep end of the pool, right, I was jumping into the deep end of the pool very quickly. And that's, that was the sort of character of my career was just lots of deep end of the pool experiences for the next 10 plus years, you know, the first 10 years were just all oh my gosh, this is how easy you know, like this is way, way, way, way more difficult than it should be. Lots of startups characterized by startups.
Tim Bourguignon 4:53 What kept you going through this this pain as he called it?
Josh Long 4:57 Well, I love software. Again, I was doing it I was I would do this stuff for free if I needed to I know, code is one of the things where I can go home and do that, right. I was I, you know, I'm I had an experience once where my friend had a very fancy Plymouth proud, which is a nice, it's a car. It's a very sporty car from the 1990s, early 2000s. And it's a very distinct car. It's very interesting, the wheels kind of shut out from the front. And so it's got very good turning capabilities because the wheels act to level the car, even if you're turning at a great speed. So it's a very interesting looking car. It's very, you know, it's not it's not like it's not like super luxurious or expensive, but I mean, it was definitely a sporty looking car and so my friend mistakenly invited me to a nightclub with him with this amazing car, but me I just I, I remember saying okay, sure, man, I'm happy to hang out, you know, no problem. And the next thing I know, we're in this car and we're going to this makeup. But I've got a giant book, windows, I'm not even sure what I was studying maybe it's like c++ or something. I had a giant Sam's book, you know, those books, those giant books. So I'm sitting there reading this book, not really appreciating what's about to happen, which is he wants to get into this nightclub and, you know, meet people and it's Los Angeles. So it's Hollywood. So it's glamorous. And here I am, you know, the pinnacle of nerds, you know, just sitting there reading the Sam's book on c++ while he drives this amazing car into this nightclub. And he just said, Hey, take a look. Take a look at what's happening right here, man. Like I hope you appreciate it. People are looking at the ribbon. Why is he reading a book right now? Why is he just what is he doing? What a nerd Do I still nowadays I don't have to carry a book I can just carry my iPad
Tim Bourguignon 7:04 looks a bit less than earlier.
Josh Long 7:06 Yeah, it's still nerdy. But it's 3d, which is some sort of technical book. Yeah. But so that was, that's me, right? I love this stuff. And so then to find out all this other stuff makes it hard. That sucks. You know, the economy? Who knows? If you don't think about the economy, when you think about getting a job, I don't know why. I mean, surely the economy matters. But I thought, well, just, I love code. People need code, I'll be able to find a job. No problem. I didn't realize I'd have to make so many compromises so quickly. And then, you know, it's kind of a badge of honor, I guess. Right? You work for a startup here. But for a startup there. Those are hard. I mean, startups are notoriously difficult to the United States because no, no unions don't the labor laws for that kind of stuff. So really, when the economy's down, I feel like the startups that are living on the on the they're living on the edge of insolvency Anyway, those startups have less restraint, you know, they're very happy to pull you down with them, you know. And so it can be kind of abusive, but you don't even realize that you're in the bad situation until you get it.
Tim Bourguignon 8:14 So, I understand you were you are you are still very passionate about coding. And when you started in 2001 that was definitely not the not the right context to be so to be enjoying How could have put this a fulfilling maybe day job, but when when did it did it transition towards something that you can enjoy, both for the code and for what you're doing and having a day job that is fulfilling?
Josh Long 8:42 Well, I joined the spring team, right. So that was 2010. I had a bunch of that don't get me wrong, like the there's two ways to get fulfilled, right. One is there's actually many ways to get filled right, there's um, give me that book by Daniel h pink called drive. Absolutely. Right. And he talks about what motivates somebody. And so one of the big things that motivates people, one of the things that keeps them, you know, working is the sense that they're involved in something interesting that they're contributing to something and that they have, they can exert control over that. So when you're in a startup, even though you're not being paid a lot of money, you feel very compelled, you feel that you're part of something bigger that you're able to perform, and that you're able to contribute to something you're able to craft something you're able to have a hand in something right so that that experience I would never trade and so I worked at a lot of different startups. But at a startup, you can wear a lot of hats, you have a lot of control, you can do a lot of things and so nobody ever said to me, you know, we just want you to write a front end or whatever they if I want to try this or that or whatever. Sure. I mean if we needed more help everybody needs To help, you know, and nobody can be a specialist, you know, so, you know, I, I learned a lot, I learned how to manage teams, I learned how to work with overseas teams, I learned how to outsource and insource I learned how to hire, I learned how to be an architect, I don't how to do CTO kind of stuff, you know, just just a little bit of everything, you know, and I appreciate that. So I, that part, that part was, that was satisfying as rewarding, you know, and to work at all these different companies and to get a feel for how different different software practices work and how different kinds of architectures hang together, that kind of thing. Really interesting and to realize that the goal was to, at the end of the day, get to production, right, that thing that was very useful. It's very easy as a programmer to think okay, my job is to go in there and program and then you realize, okay, you know, if you really wanted to help, you could do more jobs. And also you realize, if you really wanted to help, you could do more jobs and keep your eye on the final goal, which is production, right? Get to production. That's what matters now, nobody, nobody's nobody's paying you to program they're paying you to deliver solutions into production, right. And when you realize that you start becoming a lot more valuable to companies, doing extra work actually becomes less useful. I mean, at that point, once you realize that you're, once you realize the full sweep of what needs to be done, you get more efficient at doing the thing you're doing, hopefully, and then you you prioritize getting into production over, you know, tangents or digressions on Wouldn't it be cool, wouldn't it be nice to do this? shipping, right? Because that's a very useful skill. But nonetheless, the first time I really enjoyed the work was I mean, I enjoyed the work before but with the first time I felt like, this is a sustainable environment where I could keep doing this for as long as I wanted to, I could, I could feel like I could grow and There's people that could teach me things, you know, was I joined the spring team in 2010. And so by that point, I'd been using spring for many years. And I was very impressed with its robustness, its flexibility. And I thought, well, gosh, I'd love to be involved in that. And so that's, you know that I've been to the same job, same team, same job, same role, same everything for 10 years, the company has changed, right? I was at VMware, then pivotal than VMware again. But that's true for everybody that's drinking, we all moved together. And so that's been good. I like I like, I like being able to learn things and I like I like being in an environment where I'm the stupidest person in the room. There's always something here.
Tim Bourguignon 12:41 Before we talk about about spring I would like to come back to one one comment you made. You said you you've worn many many many hats. Yes, during your your career. After trying all those hats, how did you did you decide on the direction you took nowadays, so more in the Developer Relations. So I picture it as a very technical technical skills working on one foot on the with the development teams to know exactly what's happening in the in the development field of spring. And the other one to word that's put it's a marketing or more outward facing with the developers in the field. customers using it, and also the marketing promoting. How do you How did you land in this in this position? And how did you decide that this position was the right one for you?
Josh Long 13:36 It was kind of by kind of by accident. So first of all, I had had a decade almost of experience, saying, Yeah, I'll try you know, what, what's the harm? I could give it a shot, I'll give it a shot. Because if I try something good might come with it. And if that had been the case, that had been proven out by me constantly saying, Yes, I'll give it a shot. I'll try. Right, but that's 10 years before that. And so this is why I ended up wearing so many hats. And I, so that was that's my mindset is if somebody says do want to try as a shirt, I mean, what's the worst that can happen? I can just go back to what I was doing before against you know, but uh, you know, it's always nice to try something. And so I was contributing to open source I was contributing to spring as an external contributor right I was working at several separate, different company and I had written several books on spring at this point and contribute to the open source spring code as well. And I figured, you know, I've already visible I was already out there in the community. And at one point, the gentleman who runs who ran spring integration of any Mark Fisher, who's still in the springtime these days, but different project, he he ran a project called spring integration, which is a enterprise integration. enterprise application integration framework supports two use cases like Connecting disparate data and services with each other, you know, and so that it's messaging based, and I was using AI kinds of technologies in my day to day work. And I realized, gosh, this is so painful. I would like to use spring intubation instead. So I was because it was seemed like it was really well put together. And so I contributed code to that, right, I started contributing code to this messaging framework, this integration framework, and I started continuing to some of the other spring projects as well. And I was just starting to become a general nuisance to the spring team. You know, I was always talking to them sending pull requests, or this is before a pull request, but I was sending code, you know, and really, they're just super friendly. So I really appreciated that they were mentoring me and were so willing to help me and eventually Mark Fisher made the huge mistake of saying hey, you you're already out there you I was already going to conferences, right. I was already speaking at conferences about spring and how I was using it in this case, and that case, I even got my coffee. involved, I got them to sponsor me to go to these conferences, and, you know, published articles with their name and all the stuff, I did my best to make sure that people knew that this amazing company shopzilla was helping me out. But nonetheless, it was still. I got to move it from all that, right. And and so I was already at conferences, I was already doing all this stuff, but I was doing it on my own vacation time and with my own money, right. So, finally, I, he asked me, he said, hey, we've got this new job called a developer advocate. And he said, Would you like to do that? And I said, Sure. What's that? He says, Well, you know, you do this, this and this, and this. And I said, No, Oh, you mean kind of like an evangelist, right? That's, that's all I'd ever known for the term to be was an evangelist. And one of my friends guy named James word. I knew of him I knew of people. Like him, and I'd seen James Ward action at a few user groups over the years and that was a big fan, right as a bear. He was a, he was a charming and compelling and technical presenter, I just so he, he lowers the, the, the barrier that people have when they're when people don't want to be lectured at, right? They want to have fun, they want to participate. They want to feel like they're in an experience together instead of being the subject of experience or whatever. So, so this was I enjoyed his work. And I said, Oh, you mean kinda like Stanford? And he said, Yeah, kinda. And then I said, I couldn't do that. Now. That's not for me, you know, I I don't have those kinds of skills. And so I said, Thank you very much. And I, and then I closed the chat. And I said, thanks very much. And I and I said, I'm gonna go get some coffee, man. I'll be back. Because we're still talking about code. I thought, Okay, I'm gonna go make some coffee. It'll come right back. And then I got about five. I must have been I see at my desk for a few minutes, and then I thought about it, and I walked away to start making coffee. And then like five minutes later, I'm like, What am I doing? And I ran right back to the computer and said, Yes, I'll take it. I'll take it. I'll take it. Yes, please don't don't give it away. I'll take this job, please. Because I love the spring team. I love working with him. I love the I love the code. I love the community. I love. Of course, I wanted to work with the spring team, there's no way like, I don't care if it wasn't, I was expecting an engineering role. Right, which I, when he explained later was that this is an engineering role. It just had a marketing outbound component as well. So and I said, and plus it was actually a flattering thing, right? He was saying, We want somebody who can do the engineering and speak to the engineering with credibility, but also communicated and since I'd already been at conferences, and already written books about it, and already written articles about it, you know, for free, they knew I was capable of doing that and keeping to deadlines and all that stuff. So it was actually a very flattering offer. And so I took it and yeah, it's That was in 2009. And the this is right after VMware had acquired the spring source company, the company that was the sponsor for spring and all the open source projects was called springsource. It was acquired by VMware in 2009. And as part of that they had a budget to hire me. So they said, okay, hey, Josh, when would you be interested in this job? And I said, Sure. And, you know, you know, obviously, after five minutes, right, I said, Sure. And then they had a temporary freeze on hiring. So they couldn't hire me. So I ended up I ended up basically getting the job. They said, Hey, we really like you. And you're, we're, you're our number one. Everything except for you got the job because they couldn't say that because there's a hiring freeze, right? Um, so I ended up waiting six more months before actually could start the job. But, you know, that was a that's how I got into it. And I did. know anything about it, and I didn't know how to do this job, I still don't really have a clue. But what I realized later was the number one most desired skill for executives and for, for technology leadership from their people, right, the people that work for them is the ability to communicate, it's the ability to articulate things, and and indeed, the technical chops for a CTO might be a little bit more than your average, whatever, you know, day to day developer role, but really, the distinction there is that there, they have good interpersonal skills, they can communicate, they can articulate ideas, they can prosecute arguments, and, and, you know, persuade or convince people of the value of a particular approach, right, they can mediate discussion. So really the the difference between a CTO and a developer isn't so much How, how technical you are, although that's a, that's a part of it. But it's really how how well you can speak to those ideas. Can you make your case? Can you work with others to achieve a goal? Can you be more than just a programmer at the keyboard, right? And so, communication skills as a result of that are very important to people. Right? The number one thing that technology companies say they want in their candidates is good communication skills. Right? When I realized that it's like, oh, well, this is actually, this is a blessing in disguise, right. This is an opportunity here, I need to get better at this. And it's a valuable thing to be good at. And it seems like a lot of fun. I get to hang out with this open source community. And it's also VMware, it's also the spring team, the spring team are mostly at the time they were mostly Australian and European. Or maybe, maybe it's European and Australia and there's a good number of people in the states as well. But, you know, it wasn't like Silicon Valley. It was people all over Western Europe, it was people all over Australia and there was people, it was not that many people in Australia, there's still several, handful of people, at least and, and there's a handful of people in United States, right. So it was, it was mostly a work ethic being born of people who were in countries that treated their workers better, right? So nobody was gonna ask me to work 80 hours if I didn't want to work 80 hours, right? That was not part of the job. And I just thought, well, gosh, this is a nice place where I can learn and people will, you know, there's no, nobody's gonna be breathing down my neck keeping me up late at night or waking me up early in the morning because of fire alarms or whatever, you know. It just seems like a very commonplace I thought, well, I could, you know, I could do this and I'll just do my I'll just for the first time my life I'll be able to do just 40 hours a week. And Boy, was I wrong. This was great, right? They've never asked me to work late. They've never done anything like that. But there's so much cool stuff. Right? And, and one of this, one of the things that I love about the spring team is that it just kind of let me do what I want to do right there. Just leave me alone. And, you know, pat me on the back every now and then they're there. I mean, I talked to them all the time, but nobody ever tells me what to do, you know, not anymore. Certainly. In the beginning, I would really go after I'd asked them and I chase individual contributors down so that I could get help, right? I'd say, Hey, what about this? Or how about that? Or, you know, how do I can how do I convincingly demonstrate this or that or make the case for this or that? You know, so they, they wouldn't, they would be very friendly, they give me suggestions, but it was never ever like an order nobody's ever ordered me. And so when you get full autonomy, just like that, even though I was working in a big company with a very friendly workplace practices and great, you know, time off policies and all that very respectable benefits, even though I was at such an organization With Europeans, right people who are used to not working abusive outbursts, right? Even though that was my situation, I was so in love with all this technology, all this cool stuff and all the cool stuff that I could learn. I ended up, you know, totally working way more hours than I needed to, but it was pure fun. You know, that's, that's the difference is, I enjoyed it, I would have done it for free. I would have, you know, if they said we're not paying you, you know, if they could have like, punished to me, they could have said, Hey, if you work more than 40 hours, we're going to take away some money, and I still would have more than just a lot of fun. I really enjoy. And so I just hope that's the difference is it 40 I think this whole thing, this whole discussion around 40 hours, completely awesome, completely true. You should not abuse yourself, you should not work too long. And they talk about the people talk about the rate of diminishing return for for work, you know, but that said, Time sure flies when you're having fun, right? If you're having fun, it's really easy to forget that. It's been So many hours per day or whatever, right? It's very easy to forget that. And that's why I've been at the same job for 10 years, I could do this another 30 years. I'm having so much fun, you know. And I don't even know where the decade went, just went by. So, you know,
Tim Bourguignon 25:18 that sounds absolutely awesome. If I, if I remember, well, you wrote a blog post summarizing 2019. And you had something like 280 talks during the year.
Josh Long 25:31 Sounds. Yeah. Yeah. That's
Tim Bourguignon 25:35 that's something that that's only doable. If you're having fun, I guess.
Josh Long 25:41 650,000 miles on planes, right. I mean, you saw the seas, I dozens and dozens of cities all on every continent, except for Antarctica, you know, all around the planet in just five days, and I was talking does doing presentations publicly for conferences and doing online and I was doing something I have my own podcast, I have a screencast. I was writing a book, I mean, contribute to open source and, and also talking to customers. Right? And it was just you can't do that. It's very clear that it doesn't it doesn't add up. So yes, I think 40 hours is, in general, you're gonna brain isn't going to do what you want it to do as efficiently after 40 hours. But it goes from being painful to just inefficient if you're having fun, I think right? It's painful, then you just feel demoralized, right? But for me, I loved what I was doing. So me For me it was like, I mean, think about that. 650,000 miles. That's a America miles American meters, right. What's it in kilometers, though?
Tim Bourguignon 26:46 A lot. It's too late for me to compute
Josh Long 26:49 anything. So let me see 50 miles in a 1046 right to a million Plus kilometers is what I did there last year. And so I that means spending, you know, hundreds of nights in hotels, that means spending at least a few dozen nights on planes, you know, when actually most nights but a lot of those are on planes, you know, that means spending just way way, way too many hours stuck in an airport somewhere, you know. But, again, that's, that was the most fun I've ever had. And it's, you know, that I said the same thing the year before that I said the same thing you do before that every year I every year, there was more work and more travel and more content and more people to talk to and more work to do and more new code to look at. But every year I enjoyed it more than the one before. So
Tim Bourguignon 27:51 which is Yeah, let's put it in the light of 2020 with the pandemic. How was how was your You're going if you cannot travel, you cannot go to all those conferences. I suppose you're still talking.
Josh Long 28:06 Yeah, I'm still talking to a bunch of people. I still do presentations online. Not as many as before, of course, I'm still talking to customers online. So in that respect, it's good. You don't need to travel to do this job. That's the interesting thing. Again, my, the spring team has never said, Hey, Josh, you need to be here or need to be there. Right? They've just given me. You know, my managers over the years have always just been very supportive. And so they realize there's many ways to be a good developer advocate, right to be to do this job. Well. One is to give presentations live in person, right. Another is to do a podcast. Another is to write a book. Another is to write a blog. Another is to write to, you know, some people can do a lot just by being on Twitter. Another is to do a screencast, you know, YouTube videos. And so my approach has just been, let's just do a little bit of everything. Right. And another thing that's very useful to speak to customers, right to understand their pain to understand the use cases that are that are motivating them, right? It's nice to stay involved in the practice, as opposed to just the theory. Right? So working with customers has been very helpful as well. And so I always try to do all of that. I always try to do a little bit of everything. And in 2020, yeah, very few planes to get on. I've had three flights, I think, since December 31st. of 2019. It's, you know, I went from top tier status like top 1% of the entire planet in terms of travelers to you know, almost nothing right. I've traveled so little this year, but I've got a wonderful family. And it's it's nice, it's not it's never a problem to stay home. You know? That sir.
Tim Bourguignon 29:58 I would like to come back to one word, you You said before you spoke about evangelism, do you after 10 years in the in the in the position, you make difference between Developer Relations and evangelism?
Josh Long 30:13 No, they're the same word. They're the same goal. I just don't like the term evangelism because it is actually my manager, the one that hired me. gentleman named Adam Fitzgerald. he's a he's awesome. He's a he, for for many years. He was the head of of advocacy over at AWS after he left the spring team. Just an amazing human being and he was he's actually one of those professional marketing people. Same thing. So he he I've never met a person who was as busy as he was. Every morning he woke up at eight or sorry, not woke up. He was on the phone at eight And he was finished at five or six every night, right? It's just meetings all day with different parts of the organization. And he's one of those people that would if there was a conference to go to, he would go to the conference, he would help set up the booths. He would help get people prepared. It worked a full day shift, and then he'd go back and answer email. The guy worked all the time. And I thought when I joined, I would be able to help him relieve some of the extra work. And then I realized, no, no, I'm not helping him with the work that he's got. He's got even more work that he just hasn't been able to get to. That's what I'm trying to do. I was, but he was such a professional. He never, you know, he was, he's such a professional. He would go there, do the job, do a great job, kick butt. And then and then, you know, go back to the hotel, finish the work, go to sleep, wake up the next morning, get on the earliest flight back home. Be a great family man, you know, just an amazing person. And he worked super, super hard. You know? Whereas, me, you know, if there's a flight I can catch at six in the morning or there's a flight I can catch at noon and let me sleep in a little bit. I'll catch someone at noon. I'm not in a super hurry to, to leave, you know, if I'm in Paris, France or whatever, someplace, Singapore, whatever, someplace nice like that. Why would I? Why would I, you know, I'll stop and smell the roses every now and then right I I take a little time I enjoy the places that I go to that kind of thing. So I just remember him. He was such a professional. And so he he was the one that said, Hey, we don't want to bring up the image of a religion. We don't want to invoke, you know, religion in this right? So we don't use the term evangelists, right? Because that conjures up in the United States of these two conjures up the images of Sunday morning, priests, you know, trying to proselytize on TV, you know, evangelists, evangelists, that kind of thing. And I'm not a cult leader. I'm not a religious person. I'm and I don't even have a particularly religious, you know, bend, there's no like, there's no, it's right always or else kind of perspective on this. I don't want to bring up religion at all. And so advocacy, develop advocacy, Developer Relations, that kind of stuff. I prefer those terms because I don't want to bring up religion that I invoke that term. Not that there's anything wrong with people having religion, of course. But for some people, you know, that don't have religion. There's no need to needlessly invoke it. You know.
Tim Bourguignon 33:33 I recently heard a slightly different definition. I wonder what you will say. The idea was that evangelism was more outbound so centered on the company and preaching the good faith outside and that devil advocacy, more was more inclined into getting the voice of the community To the about the product to the development teams and to the product managers and more, more tuning what people are doing was a product inward in toward the company.
Josh Long 34:14 That's part of my job that doesn't matter what you call it, that's part of the job is being a, because there's no need to have a one way communication channel, right? that anybody could have done. I could, the engineers could have just done a screencast a week, you know, that would have been, it's having the time to follow up to to take feedback. That's, that's a huge part of job like, it's like I just said, I spent time with customers. I want to know what we can do to make things better. This is not me. Talking at them, this is me talking with them, you know. So that's part of the job. It doesn't matter what you call it if you I don't think you can do that. And not have a two way channel. You know, it doesn't matter what the name of the job is, but maybe I'm wrong. I could be wrong. I've always been. I've always assumed that that was part of the job.
Tim Bourguignon 34:59 Sure. That sounds totally reasonable to me. I was surprised when that when I read your bio, about reading the Word their jaw, it says Josh is the spring Developer Advocate.
Josh Long 35:17 Okay, it was for many, many, many years the first and only developer spring developer advocate on the team. So I have a lot of files that are outdated. Okay.
Tim Bourguignon 35:29 How does the the teamwork in such a special a special team works?
Josh Long 35:36 Quite well, I think I mean, we have a, we have a small group of people and they tend to have their own things that they work on and some are more interested in spring than others, right, some more some focus on architecture, some focus on you know, cloud, you know, cloud native stuff, that kind of thing. So, you know, my my focus has always been the world You're fun, wild world of spring. And so we've got a bunch of advocates at the company, but only a very small, much smaller few focus on on spring.
Tim Bourguignon 36:14 Okay, I see, I see, you still take part to the development of spring, either inside the company or as an open source contributor.
Josh Long 36:24 I yeah, I send pull requests whenever I can. I am. A lot of times I So have you ever used Spring Boot? I haven't. Yes. Okay. So So Spring Boot, pulls together, lots of different modules, right? It pulls together, lots of different independent projects. And it does that in a masterful way. It's really clean to just add a starter dependency, you add Spring Boot starter, whatever, you know, NBC or web me, and it'll bring in all that you need to be able to build web applications, right? servlet based Tomcat, whatever kind of web applications, right? And if you want to do batch, you just bring in Spring Boot starter batch. So you can layer on all these different capabilities into one application. And it's just as simple as opting into this one dependency. And then that dependency level sets, all the conflicting version ranges. And it brings in all this auto configuration, and all that kind of stuff. And that is such an amazing thing. Because spring, the wide wonderful world of spring is huge, right? There's all these amazing projects, but they used to, they still do I mean, they they release independent of each other. Right? Most of these projects, the only dependency that they have is spring framework. And so as long as they all converge on the same, you know, major versions of spring framework, then they can work well to each other, they should be able to work with each other. And that was always the theory and in practice, If it was true a lot of the time, but sometimes it wasn't. And you, the spring team didn't really have a great way of catching all these kinds of integration issues. Right? Remember the spring team worked on spring integration. That's one team. Some other team worked on spring framework. That's another team, another team worked on spring security. That's another team that, you know, and on and on, right? There's dozens of projects, and each of them have their own focused team of engineers and management and all that stuff. So each of these projects evolved independent of the others. And so I am out there. I'm trying to talk to people about the aggregate of spring right, though, what happens if you pull these things together into one code base. And from that perspective, you see a lot of integration issues that aren't obvious. If you're focusing on just spring security. Why for many years on the spring team, I had, you know, I had a unique vantage point, because I was the only person on the team that was spending all this time pulling everything into everything together into one thing, right? Making it all work in one application to see if it would work quickly. Or if it would be class I found issues or whatever my life was spent integrating, and then Spring Boot came out. And suddenly, all these bugs that I would find related to integration are gone, you know, so there's much less need for the constant pull requests and all that stuff. I contribute code proper actually contribute real code to the various projects too. But yeah, I confess I haven't done much this year. I've been busy with a lot of other stuff this year. You know, a lot of backburner projects. And now that I've got so much time at home, I figured I'd finally scratch off, you know, tick, tick, scratch off the list, you know, so. But yeah, I contribute and I love contributing and the spring team is very funny. By the way, the way, the way that I contribute to spring into open source is the exact same way that anybody on the spring team contributes to spring or open source, which is the same way that anybody else in the world who wants to To get the spring would contribute to spring and to the open source, that is to say, you send a pull request, you talk to people, I happen to have slight advantage, I can talk to people in Slack, but I could just as easily talk to people on GitHub issues. And then once there's consensus, you know, send a pull request and it gets merged. It's a very, very predictable, approachable process. Right? So I want to encourage people to, to pursue it if they want to be interested interested in a lot of the GitHub projects that we have, have GitHub issues that are marked, you know, ideal for contribution or, you know, ideal for newbies or whatever, right? It's these are projects that we encourage people to try their small focus, and we hope people will contribute, we hope they'll take them and say hi and the GitHub issue and then somebody will notice and we'll happily mentor them if they want help and we'll happily help them. Get the work.
Tim Bourguignon 40:55 This is this is one of the tags. Sorry, this is one of the tags of the issues itself. from GitHub, yes. Beats This is good for newbies or something. Yep. Well, first, first, first, first effort, something like this. Yep, I'll finally thank.
Josh Long 41:13 So nowadays I still do a lot of I still contribute a lot. I ended up even though I'm not the, I'm not doing as much of this before. Like I there's two ways to contribute, right? And anybody can do this. One is to identify issues and or their workarounds. And another is to write code. And this year, I haven't had as much time to write code, but I have still been pulling down all the latest and greatest bits and trying it out and finding issues right. And so I talked to the team a lot on that. So yes, there's code that exists entirely because I died identified issues in the in the integration talk and stuff and, you know,
Tim Bourguignon 41:52 that's, that sounds very cool. sounds really cool. You seem to have hours for free, the very nice spot for yourself where you're very welcome. stablished where you're having a lot of fun and it transpires in your voice when you talk about it. what's what's in your future? Do you have some some some goals or dreams, things you want to fall into to still tackle on your bucket list? Or it's more of the same and having fun. How do you tackle the future?
Josh Long 42:19 Well, so in some in no August, August of this year, will officially be 10 years on the spring team. Now keep in mind, remember I told you that story i was i was interviewed six months before they could actually give me the job. Right? So in theory, I've already been on the spring team for more than 10 years, but August will be 10 years I that I don't know why that date means so much to me, but it does. It's the decade you know. So that's one goal. As for the my professional goals, well, I I'm glad that you think I've carved out a nice place for myself, but I I think I've been a bit of a failure. In this respect I've been, I haven't done nearly as much as I would like to do. And so what I mean by that is, we have millions and millions of new projects that are generated every month on start that spring that more people generate it to projects and start that spring that out. Then, then they then they generate any kind of project out there in the ecosystem, right. There's, it's the most commonly typed most commonly generated kind of Java project. But that said, there's 8 billion people on the planet. And if you divide that by two, that's 4 billion, because there's some math that suggests that only half the people on the planet are connected to the internet still, right? There's still 4 billion that don't have access to the internet. So let's talk about the other four. Let's talk about the 4 billion that are on the planet. 4 billion minus a few million that still leaves a lot of people who are not using Spring Boot that I need to get to I need to get to everybody, right I want to Everybody using it? I can do it, they could definitely do it right. So I've got a long ways to go the math is not my favorite. So I don't know where I'm going to do, but it's not going to be done yet anytime soon, you know?
Tim Bourguignon 44:12 A few billions to go.
Josh Long 44:13 But let's cool hashtags huh?
Tim Bourguignon 44:18 You had one advice for one of these billion people that should start with with started spring that I would what would you advise people to to get into this this spring world all the Spring Boot world and and get their get that kick out though? What what's your living everything?
Josh Long 44:36 First, if there's somebody listening that isn't a Java programmer, or JVM programmer, but they're starting off in the in the programming world. Welcome. We're so glad you're here. We need you. I think you would agree. Right? The the there is a talent shortage, right? There's a we need people, right? We need engineers, we need people that want to change the world. And so first of all, Doesn't matter how you got into programming, welcome, we're so glad you're here. It doesn't matter if you use spring, I'd love it if you use spring, but if you're, if you're writing code you're already changing the world for for the better if, at least in theory, right? My, my hope there I've got I've got a bit of a conflict here right? On the one hand, I I sincerely hope that people like you and me and all the other people that work in software, I sincerely hope that we become less important less relevant, I want us to have less prominence, right? I what I would like is for programming to be a commodity, I want it to be commoditized I want everybody that learns arithmetic and reading and writing. I want them to also learn programming, right? I want young people to know how to program because computers control the world and if the the people that control the computers, therefore also control the world, right. And that should be that should definitely be the next generation that should be the generation that ran, and the gen the generation after and all that stuff that needs to be the young people, right? So I want them to make it so that there's no need to pay software programmers so much money, right? It should just be a regular job, just like just like reading and writing, you know, whatever, right? That's the first thing. I sincerely want that. On the other hand, I would like to make enough money to cash out before, like, before devaluing but I do change to zero. So, you know, I, I'm, I'm happy I like my job. I make enough money to be satisfied and, and content in the springtime, treats me very well. And I am. I'm always learning something, which I love. So I feel very excited to go to work. I feel very happy with my job. And so that I feel like is a great situation. And I would love for more people to just start writing code and to join me my I want more people to come in and come into the industry and to write software into. And who knows, you know, the nice thing about this industry is that once you're once you've got that imaginative Spark, if you've got the ability to build something with your own hands to write code to build something from whole cloth, then you've got the ability to, you've got imagination, right, and imagination. You don't have to be old. To be imaginative, actually, right. It's, sometimes it's the opposite. You know, sometimes, young people have the best imaginations, right? There's no such thing as like, a better and, you know, well, I mean, that's what there is. But imagination isn't better or worse, because you've got more years of experience, right? times people that don't know, everything, actually have the most imagination, they had the better idea. So the nice thing about this industry is that the young people because of their outsized imagination, they can actually change the world a lot more readily a lot more easily than people who have been in industry for a long, long time, right? Because The the cynics, the chiseled veterans that have been in this industry, they have a perspective on things and they think, well, that'll never work out. Why would I even try that there's no return on investment or this or that, or whatever. They don't. And they're so used to understanding what's possible or not. But when you have young people, they come into the industry and they have no, they have no, nobody's ever told them, it can't be done. Right. And so they're not they don't listen to this, to the naysayers. They don't have these thoughts in their head that say, don't do that. That's not going to be worth your time. It's not going to be it's not going to pan out, you know. So, the only people if they come to the industry, I want them to come because if they come, they could change the industry, they can actually make it better for me, right. And everybody else, right? They by teaching us new things by imagining new opportunities for the for the industry. So that's the first thing. Please come. He's not most of us do. Terrible, right. And then when it comes to people that are trying to build service, if God based applications, you'll find no greater community than the spring community. If you want to build software. For the server side, I cannot imagine a better way to do that than to use Spring Boot. I can't imagine, I'm going to say better What I mean is with more integrations, right, more more opportunities for building things that use technologies that people are using, right? I can't imagine a better community to to learn from because they sprint community is super friendly. Like look at the Stack Overflow, action. Look at the spring, the responses that the spring team are always getting on second float in Twitter, and we have Gator channels, all that stuff. So really, really friendly, right? Just there's always somebody you can talk to, which is why, like I said earlier, if anybody wants to contribute, they could contribute the exact same way that we all contribute, which is go into the GitHub issues or go to GitHub dot i am gi TT er that I am and then, you know, talk to people, and there's somebody on the spring team, that'll answer your Customers talk to you and help you, right. So very, very friendly. And then in terms of just lines of code, and all the usual metrics, you know, spring is super productive, right? Java is getting more and more concise, but you don't have to use Java, you can use kotlin or some other language, and then it's even more productive, right? It's just, it's a very productive experience a very productive language, very productive technology. And so, I don't know, server side application is for everybody. But uh, you know, if it is then welcome, we'd love to have you in our community. It's a it's the largest community in the JVM, right? So there's the number of people that use Java. And then second only to that is the number of people that use spring, right? Well, except for like, like, there's probably more people using love for j, right? Things like that. Right. So just a very, very nice place to be and I hope people will join us and if they want to, if they want to write software, of course, then go To start that spring the nail, right, that's the best way to bootstrap a new project to get it does code generation. So that's brand new as a code generator. But it's not really needed, right? You don't actually need start destroying the generated code is just a few dozen lines of XML for your Maven build, or just a few, like less than a dozen lines for typical Gradle build. And then just a simple empty skeletal test classes simple empty. main application, public static void Main. So that's code you write by hand. It's just, you don't need to throw it. It's just it's very, very small.
Tim Bourguignon 51:41 Okay, Jet listeners. Um, that was a whole bunch of advice there. Maybe you roll back and listen to it again. How to get started with spring. That was cool. Josh, thank you very much. Um, where would be the best place to continue this discussion with you?
Josh Long 52:00 I'm on Twitter @starbucksman and my direct messages are open. I'm very happy to answer questions. A lot of people send me questions every day, I tend to go through them once or twice a week and just see if I can answer questions. Or if I my superpower is I don't know much, but I do know who knows. Right? So Hmm. If I don't know, the thing I can do is connected with people that do know and the spring team are very used to me just putting them on cc on an email and saying, hey, I've got a question for you from this person in that community. Right? They, they, I'm sure to noise them to know it, but they're very family they want to help. So they're very happy to have. They're very happy to have if I can't answer the question. They're very happy if I forward it to them and put it in their lap and they will they'll happily carry on and answer the question for you or or change the code if need be. Right. I'm on the spring blog spring.io/blog. I blog there every week. I also have my own blog and I have a bootifulpodcast.FM. That's my podcast. So, you know, lots of places you can find me I suppose.
Tim Bourguignon 53:07 And it's bootiful with B-O-O, like boot
Josh Long 53:12 Yep, Bootifulpodcast.FM.
Tim Bourguignon 53:16 Awesome. Josh, thank you very much!
Josh Long 53:19 Hey, thank you so much. I this is a lot of fun. I really appreciated the opportunity to talk to you today.
Tim Bourguignon 53:26 And this has been another episode of developer's journey, and we'll see each other next week. Bye bye. This is Tim from a different time and space with a few comments to make. First, get the most of those developers journeys by subscribing to the podcast with the app of your choice, and get the new episodes out to magically right when they air. The podcast is available on all major platforms. Then, visit our website to find the show notes with the old links mentioned by our guests, the advices they gave us, their book references and so on. And while you're there, use the comments to continue the discussion with our guests and with me or reach out on Twitter or LinkedIn. And a big big thanks to the Patreon donors that helps me pay the hosting bills. If you can spare a few coins, please consider a small monthly donation. Every pledge, however small helps. Finally, please do someone you love a favor, tell them about the show today and help them on their journey.