Hey everyone, this week we have one of our interviews with a SpringOne Platform speaker where you get to not only hear a little bit of what they'll be talking about, or preview if you will, but some about themselves as well. Now we have SpringOne Platform coming up in my hometown, Austin, Texas, October 7th to 10th. Now if you're listening in the future, this is in 2019. Sorry if you missed it. You have to write a letter to me, tell me how 2025 is doing. Always curious. Anyhow, you should take a look and register for it. If you register before August 20th, you'll get a nice discount from it. Otherwise, if you just go to springoneplatform.io, you can sign up for it and come see us in Austin. So with that, enjoy the interview. Today we're joined by Trisha G in our Women of SpringOne interview series, and I would like to just kind of start things off by asking Trisha to share a little bit about herself, kind of give us some background, and we'll take it from there. So Trisha, welcome, and please tell us about you. Hello, thanks for having me. I'm Trisha. I'm a developer advocate for JetBrains. I mostly work doing developer advocacy type stuff for IntelliJ IDEA, which means that generally speaking, I try to stay up to date on what's happening in the whole of the Java community, Java language updates, and try and keep developers up to speed on stuff which is going to be helpful for them in their day jobs when they're hopefully using that IDE if they're using IntelliJ IDEA. Well, at this point, I have to say, who wouldn't use IntelliJ? I mean, really? Well, yeah. I mean, and for those of you listening, I know and have known Trisha for a long time. Deepest respect for her and all the things that she has and is accomplishing, has accomplished, is accomplishing, I guess. For those of you who don't maybe know Trisha as well, I was hoping we could maybe tease out some thoughts, some background from her, and maybe all of us get to know her a little bit better. So Trisha, if you would, please tell us, how did you get into tech? Take the Wayback Machine, and we'll see maybe where we lay out.
2:01I have a fairly standard classical way of getting into development, really, the same as a lot of other people in the industry in terms of, I actually studied computer science at A-level, so I come from the UK, so at 16 to 18, I was studying computer science, and I went to study computer science at university. I originally wanted to do astrophysics, actually, because I wanted to be an astronaut, and I wanted to, I don't know, I wanted to go to Mars. But it turned out I wasn't that excited about all the physics equations and stuff, and I really liked programming. So I studied computer science at university instead. I did an undergraduate placement at Ford Motor Company, where I was doing programming, a bit of, I was doing a bit of web development, a bit of programming, and so then when I graduated, which is now way back in 2001, I kind of just fell into programming type roles. At that point in time, I'd studied Java at university, had done a little bit of Java, let me see, did a bit of Java for my final year project, and ended up doing Java programming roles back in 2001, when Java was a fairly new language. And I've basically been doing professional Java development since then, which is a little bit scary, because I still feel like I'm just kind of getting the hang of this programming thing. I've been doing it for nearly 20 years. Well, if you count all of the programming, I've been doing it for more than 20 years. I've been doing Java for 22 years, if you include university time. Oh my goodness, that's more than half my life. And so yeah, I did programming to begin with as a graduate, and I just really liked it. And the jobs that I had were largely, to begin with, had this kind of classic big industry thing of trying to put you first to the technical role and then advancing you into management. But that's not really where I saw myself. So I ended up jumping from programming role to programming roles, taking stints of about two years in each different company. So it means I've worked for a lot of different companies. I've worked for these big enterprise companies, I've worked for small startups, I've worked for not-more profits. I worked for this great company called LMAX in London, which is a financial exchange, which is where I actually used
4:04some of my computer science degree in terms of understanding like what big O notation really meant and how it impacted the performance of your programs. And then after that, I ended up going into developer advocacy. Because what I really found super interesting is having spent all this time learning how to program, working in all these different types of environments, understanding what's difficult about this job, I really wanted to make other developers' lives a lot easier. So I kind of want to tell people all the useful stuff that I've picked up the hard way. I want to teach them the useful bits of Java. I want to teach them how to use the IDE so they don't have to think about what they're doing. They can just get on with their job. So that's how I ended up working for JetBrains. I've been working for JetBrains for nearly five years now. And so that's really a sweet spot for me. I'm still doing Java type stuff. I'm still doing coding. But a lot of what I do is like figure out how are real developers solving problems? How can I help them solve those problems more usefully without having to bang their head against the brick wall of the tools they're using? Well, that actually is a phenomenal, bring us up to speed type of review of your background. And it also covers the next question I was going to ask, which is what you love about it. But I think you've very clearly stated what you love about it. But actually, that leads me in a slightly different direction now that you've brought this up, because developer advocacy is kind of an interesting field, if you will, an interesting specialization. And sometimes I get the question, how do you go into advocacy? How do you get started? And, and many times I've, I feel like if, you know, when you kind of look at the cross section of those of us crazy enough to kind of enter into that area, it almost seems like it's an accidental evolution, because we start sharing and talking to colleagues about things that we find useful. And then we start expanding that, or they suggest we go and share our same tricks, tips, whatever with a local Java user group. And then that evolves to maybe a local conference, and then other conferences. And then before you know it, you're just there. Was your kind of transition in that a gradual kind of enlightening? Or was that something that you looked at and said, you know
6:07what, I can do so much good by doing this? Was it kind of a conscious decision? How did, how did you get here? I guess it was kind of accidental and conscious. Obviously, like you say, to become aware of this sort of role, you sort of kind of accidentally move into that direction. So for a start, when I was doing all of my other development roles early on, like my first role after Ford, I distinctly remember doing a very thorough job of documenting the code base, we were using a homegrown library, which wasn't well documented, it wasn't clear how to use it, I really struggled getting started on it. So what I did when I knew I was leaving the company is I actually put aside some time to fully document it. As a developer, how do I use this library? And that's like my first proper role as a graduate. And, and that's where I've always been as a developer, I've always been very thorough in documentation, I've always tried to write self describing code. And even when my code wasn't that great, it's always been like, look, I've done it. And it's not great way. But these are the reasons why I did it this way. So I definitely always had that kind of instinct of, you know, I enjoy programming, I think it's fun, but I struggle a lot to, to use things the way they're supposed to be used. And if I've struggled, I want to write it down. So I kind of started from there. And I started with blogging and things like that. But then there came a time, let me see, around about maybe 2011, something like that, where, so I joined the London Java community in 2008, when I moved back from New York, and I needed a job. So I joined the user group, it seemed like a sensible thing to do. Right, I kind of got involved in it in the user group for an entirely selfish point of view, like, what do I need to know, what jobs are there, I need to meet people in London, I've been living in London before, but I felt super disconnected to the city. So I needed a way in, the user group was a way into that. And then over the next few years, when I met people who are now fairly famous in the Java community, people like Martin Verberg, like Ben Evans, and I met these people in the London Java community, and they were big in open source, and they were big in the community. They sort of
8:10opened my eyes to what was kind of what the Java community was. Before I'd been a typical nine to five type developer, which I have no problem with nine to five type developers. But you know, I'd go to work, I would read the internet to find stuff, but I generally just do whatever I needed to do for the job. And the London Java community has opened my eyes up to all sorts of other stuff that are out there, open my eyes up to open source, and to, to being able to use other people in the community in different types of roles. So I kind of was trundling along with that for a little while. And then I think it was 2011, Martin sort of pushed me to do my first lightning talk. And I also, at the same time, I met Martin Fowler in the pub, weirdly, and complained about the lack of women speakers at various conferences. And he was like, well, you're in the perfect position to do something about that, because you're a technical woman. And I'd never thought of it that way before. Right? Because I'm like, just moaning about these conference organizers not doing more. And in actual fact, I'm the one in the position to do the most about this, I can stand up and I can present at these conferences. And by me standing up and presenting at some of these conferences, I can maybe double the number of women speakers alone. Right? So it became very clear to me that I have a role to play in this community. And I can do this, especially with the help of mentors like that. They were super supportive. All of these people were like, you know, you can do this. You've got this. This is a good thing for you to do. You've got the skills. So very quickly from in the space of about a year, I started from, I already had a blog. So that's kind of trundling on. But in the space of about a year with people's help and mentoring and pushing, I kind of started speaking at conferences. And then at that point, I was like, yes, this is what I want to do. I want a job where I am doing things like blogging and conferences and teaching people as the main part of my job, not just as a kind of side aspect. And then I very deliberately steered my career into, into that direction. One of the other things I wanted, which is kind of related is that I knew I wanted to work remote. I knew I wanted to be able to, well, I knew I wanted
10:16to be able to work from home. I knew I wanted to start a family in the next five years. Cause you know, I'm a woman and I was like coming up to 35. So I think even before I had a boyfriend at the time, I'm like, no, this is on the cards and I need to be in a position professionally where I have flexibility. Should I want to have a family? And so developer advocacy, although there's travel involved in that also seemed like a good fit because I know that a lot of people can work from home doing that. So again, something I deliberately steered my career towards because it was going to fulfill what I needed from a personal point of view. Yeah, that is an excellent point because it does give you a great deal of latitude. It also adds a lot of, um, a lot of other tasks. Sometimes folks ask what it is like to do developer advocacy. And one of my responses is it gives you about a hundred different things to do. So you're never bored. The problem is there at any given point in time, there are about a hundred different things you should and could be doing. Yeah. I'd say that's the biggest challenge to developer advocacy. And I really struggle with it. Um, that's the one thing I really do struggle with because partly a lot of it's pressure from myself. There's just so many things I want to do. There's so many places I want to go, so many conferences I want to do. There's so much I want to write about. I really want to be doing in-depth written tutorials. I also want to be doing screencasts, but there's all sorts of other rubbish, like loads of admin because, um, because I'm fairly the way that we're structured inside JetBrains. I also have to book my own travel and I have to do a lot of my own admin for expenses and stuff like that. And that's just, you know, extra overhead. So there's always just all this rubbish to do as well as all the really awesome stuff you want to do. And because my, the remit I've given myself is cover all of Java and all of IntelliJ IDEA and these are just massive products and it's impossible to do all of that by myself. And, um, and so, yeah, there's always just so many things to do and prioritizing them is almost impossible. And figuring out what's valuable is also quite difficult because something which gets, you know, 300 people at a conference talk, how does that rate against, you know, 10,000 people reading blog posts or, you know,
12:17X many subscribers on Twitter? How do you measure these things? Is it really giving value to the company, to the product? Yeah, it is very difficult to assign specific value to specific actions. It seems like everything kind of builds on everything else, but I can say with a lot of gratitude, I'm glad that you do all of the things you do because there have been several times I've watched at Tricia G screencast. And I've also sat in on talks. I've read your, uh, your articles. All of them are just superb. I want to take it back though to something that you mentioned in terms of your traveling and speaking. There have been times even where you weren't able to travel that you've delivered a talk. I remember one time at Java one, I think it was two or three years ago. Uh, you were unable to travel to Java one and you even, uh, set it up to where you could do it remotely, which was amazing. Uh, and, uh, after some initial technical issues, you work those out and everything, or they work them out, the local team or whatever, but you were able to deliver that talk. It was wonderful. I was, uh, more than impressed with, with what you did just to make sure that you, uh, met attendees where they were literally, even if you couldn't literally be where the attendees were. Yeah, it's, it's a bit challenging. That's another one of these challenges as well, because the reason I couldn't chat, couldn't travel is because I was like eight months pregnant. So I wasn't going anywhere. Yeah. No, I really wanted to give that talk at Java one. Um, and one, this is one of the other things that kind of ties into finding the balance. I don't really know where to find the balance between. I want to, I want to continue working because I enjoy it. I also want to want and need to maintain my visibility. Whilst also, you know, like I've had two kids since I joined JetBrains and, you know, you have other stuff that gets in the way, other family thing gets in the way. There's other things that you have to take care of as a human being and learning to balance, well, learning what that balance is, is quite tricky. So the, the instance you're talking about is, um, when I was pregnant with my first child, when I was pregnant with my second child, I was like, I'm not doing that. You know, it's nice to do that. It's nice to try and, um, maintain the visibility
14:18to try and reach the audience that you like reaching. But there's sometimes where you're just like, no, I, I need to, you know, I'm eight and a half months pregnant. I should be chilling out, relaxing. I'm only taking four months maternity leave and I should just fully enjoy those four months and be there with my kid and then slowly ease back into it afterwards. So these are some lessons that we have to learn as well about balance. Well, and I think that makes you better overall, really, right? I mean, if you take time away to clear your head, to focus on the things in life that are truly important, it allows you to see everything with a much clearer lens. I think so. I find that when I'm super, super busy and really, um, productive in terms of ticking things off, sometimes I'm so busy ticking things off. I'm not stepping back and looking at the big picture and you could have done like, I don't know, three articles and five, um, screencasts and 27 tweets. But at the end of it, you're like, well, none of these are really key to the business or none of these are reaching my customers or none of these are what I feel passionate about. You do sometimes need to be able to step back and say, look, I need some time to figure out what's, what's really important, what the big picture is. And not necessarily just work wise. It's like, if you can connect with yourself as a human being, it makes you, particularly as a developer advocate, it makes you better at connecting to other people as well. I don't think we should be constantly, there's a lot of pressure at the moment to stay up to date, stay on top of things and just be all go, go, go in terms of technology. And I think sometimes it's down to people like us to say, hold on a second, you know, in this case, it's August, it's summer, you know, perhaps you should be chilling out, just taking some time to, to, to decompress and, and not stressing out about everything all the time. Yeah. Too true. I almost hate to take the conversation in a different direction now, because as, as always happens, anytime I get a few minutes of your time, I just find so many gold nuggets in the conversation that I, I hate to see that part of it in, but let's, let's take this in a different direction and find some gold elsewhere. I guess taking things back to SpringOne, because obviously this interview is part of the profiles, right? The interviews of women of SpringOne platform,
16:19uh, you haven't presented at SpringOne before, but you're no stranger to the spring community and topics that are near and dear to our hearts. Uh, you have, uh, had a great talk at spring.io called is groovy better than Java for testing, which is just, uh, uh, the suspense is killing me. So can you tell us a little bit more about that? Uh, yes, this is a talk I gave in, in 2015. Uh, that was again, like I, I distinctly remember because I flew over to Barcelona, which is only an hour from where I live in Seville. Um, again, quite pregnant with my first child. And, um, I kind of flew in, gave the talk and flew back the same day. And I was like, no, I'm not doing that again. But it's, I like that talk. It's, I would like a chance to explore this topic a bit more is groovy better than Java for testing. Of course it's a clickbait type title because the answer of these things is it depends in the context in which I came up with the content for that talk, um, groovy, but specifically the spot framework was a much better way of encouraging the team to think in terms of how to write unit tests in a sort of given when and then type way, how to clearly separate what you're really testing versus set up. Um, the, um, groovy allowed us to be much more, um, even though I, when I started doing this, I was not really a groovy person. I was very thoroughly a Java person. And yet I still found the groovy tests a bit more readable, um, because it reduces a lot of the noise in terms of the boilerplate. And this is also in the context of MongoDB and in MongoDB, we do a lot of creating hash maps and that's quite clunky in Java and much more readable in groovy. So for this particular use case groovy and specifically spark, um, was a much better, much better set of tools for us to do testing. Um, since then with J unit five and some of the modern, uh, advances if you like in unit testing, you could argue there's not as much between them, but it also depends a lot on the team. I've just
18:22found pretty much better for the team that we were working with because, uh, it focused people on how to write the tests, but in other teams where they already have a discipline in how to write tests, sometimes Java is much better because Java being statically typed being, you know, I know that you can compile Ruby, but everyone says that to me. I know, but that's not, it's not the same thing. Java being statically typed, Java being, um, much more amenable to things like refactoring inside tools like IntelliJ IDEA. Sometimes it's just better to write stuff in Java from the beginning because everyone on the team should probably may understand Java, uh, everyone on the team can use something like IntelliJ IDEA to refactor the things you get, uh, you get really fast failure if you have compilation problems instead of Groovy where it only tells you when you run it. So, you know, in the end it depends, but I'm still a big fan of Spock for testing. It's just a really nice framework. Okay. Well, great answer. I was kind of hoping for the definitive. Yes, absolutely. Or absolutely not. But yeah, I guess it's like most things, right? We still have to reason through it in our current circumstances. So I still choose spot first and foremost when I'm trying to write tests, but every now and again, when I start to, that's usually when I create a new project, but often when I have to maintain the project, I just find it a bit easier to have stuff written in Java because it's easier to move code around in Java automatically. And the groovy stuff, because it's dynamic sometimes just doesn't, it just doesn't refactor or get changed in a way that you want it to. Yeah. Yeah. Completely understand that. Um, but now of course, you, you know, this has to be coming, right? Um, what are your thoughts about Kotlin for testing or otherwise anything really? I made the mistake of, of taking that code base that we've just been talking about where we had loads of spot tests and trying to turn those into Kotlin tests. This is my, this is the first thing I tried when I joined JetBrains. Groovy to Kotlin, even though the language kind of looks fairly similar because there's not so much boilerplates, they're not the same because groovy is at one
20:23end being like super dynamic and like bloaty light and Kotlin on the other end, but it's, it's not just, um, static types, but it's also really strict in terms of nulls and things like that. You can't easily turn groovy tests into Kotlin tests. You just get a lot of compilation problems straight away. So my first trial at using Kotlin for testing was not super encouraging. I do think if you've come from a Java point of view and you've been writing your tests in Java, I think that Kotlin can make, can help you write much more concise tests. Uh, again, can get out of your way in terms of boilerplate, allow you to set stuff up much more easily without having a lot of the ceremony that people complain about with Java. And of course you get, uh, uh, the advantages again, you've got strict compilation and stuff. So you get compilation failures rather than waiting to run the test to find that you've got some sort of weird typo, which is causing problems. So, um, Kotlin, I think is a good choice for, for a testing language. I'll be completely honest though, even though I've been working at JetBrains for nearly five years, I've not written a lot of Kotlin and partly because we already have loads of Kotlin advocates and we only have two Java advocates. So I definitely still end up doing a lot of Java stuff. And, uh, so that's kind of the main reason really, but also because I'm just kind of super used to writing Java stuff. So it's still my first go-to language for, for a lot of things. Yeah. Makes perfect sense. I'm a big fan of Kotlin, but, uh, yeah, I, I think, uh, the depth and the breadth that Java brings to the table just due to its longevity as well as its innovation over the years is, uh, it's compelling. So completely, uh, agree and understand on that. Well, uh, now we, we've kind of covered some of the past, but that brings us to the present, right? Uh, this year at SpringOne platform, you're going to be speaking about fully reactive spring Kotlin and Java effects, uh, playing together. Can you tell us kind of how you came up with that topic and how it developed and maybe a little bit about where you're going to be heading with that? Yeah. So a couple of years ago, Josh long asked me to
22:23co-present with him. Um, and that was when I was pregnant with my second child. And so I was like, oh no, I can't do it right now because there's just too much going on. And then last year when I was trying to think of topics to present at Java one, which became Oracle code one, I reached out to Josh and I was like, should we do something together? Let's, let's co-present something. And because both of us do a lot of live demos, we thought, why don't we do this like pair programming, pair coding, dual type thing. Um, and so Josh took a look at some of the stuff. Well, he's, he's, he's aware of what I've been doing before. He's like, why don't we take one of your, um, things that you've done before, uh, and then spring boot it and, um, and, and we'll split it into sort of microservices type thing. And then, you know, I'll do the springy stuff and you do the Java effects stuff, which is similar to what I've been doing in my demos before. So it was kind of a collaboration between, between me and Josh and, you know, being me and Josh, it's kind of this wild, like live coding thing, but also let's try and put as many buzzwords as possible. Like what else could we put in here? It had mongodb in here as well before, but when we actually presented it at code one, we just didn't have time to do any of the mongodb stuff at all. We were like, let's just do reactive spring Kotlin Java effects. And that's, that's going to be the end of it. So, um, so yes, this was like a super intense talk and I spent, well, we spent probably about two days, like practicing it and coming up, bringing it together and stuff in San Francisco last year. Sadly, I guess it actually wasn't recorded, but it's good because it gives us an opportunity to give it again. But at SpringOne, so I said to Josh, do you want to co-present it with me? He's like, no, no, you can, you take this. You do it on your own. I'm good. Presumably he's doing like other stuff. And, um, and so, yeah, so I'm going to try and take this super ambitious live coding thing that we did where I only have to do half of it. And now I have to also do Josh's half of it as well, which, and Josh was doing the Kotlin stuff. So now I have to learn Kotlin way better than I know it at the moment. Um, so yeah, that's not challenging at all. Well, maybe for lesser mortals, but I, I know this is going to be an amazing talk. And, uh, I'm
24:24sure I speak for Josh in, in saying that it'll only be better, uh, because you're, you're kind of bringing it end to end, uh, which is, is quite awesome. I'm, as you may remember, I've written a couple or coauthored a couple of books, not written by myself, but coauthored a couple of books on Java FX. I'm a big fan of Kotlin. I'm a huge fan of spring shock. Uh, and I'm, I just can't wait to see this talk. So, uh, if any of you out there are not already booked to go to, um, SpringOne platform, you should probably look at this as the tipping point and go ahead and get your, your tickets and make plans because this talk by itself, I think is going to be worth the entire price of admission. So, um, yeah, just, uh, yeah, no pressure, but, but I, I wouldn't even say that if I didn't fully believe it, I look at the title and I'm already in. So, okay. So I guess kind of bringing this to a close as much as I love this conversation, if we could just kind of wrap up with what are you looking forward to a SpringOne platform other than your talk? I know you're excited about that. Uh, maybe, you know, looking at it, going, how am I going to fit all this in, you know, an hour, but what, uh, anything in particular you're looking forward to there? I'm just looking forward to being there. I can't believe I haven't been before. I mean, every year I've thought about going to SpringOne and every year, someone from Pivotal has said, you know, you should come. And I've been like, oh, I'm already, I'm already booked up. So this year I made the decision very early on, I think before last Christmas, that this is something I wanted to do this year. I want to be there. I want to, I want to hang out with like the spring community because it's a community that I don't always necessarily hang out with. I've done spring casts for spring support and intelligent idea. And I speak to people over Twitter and stuff, but it's, it's a slightly different community from the one that I usually see at conferences. So I'm just really looking forward to not only meeting the speakers and the other, like, you know, key people at the conference, but mostly the attendees and getting to hear like what they're doing, what they're working on, what their pain points are and you know what they're excited about. Well, I think you've already actually covered my next question really well, but in case you have anything else to add, uh, what you might say to someone considering coming to SpringOne
26:24platform, why should they attend? I think for me conferences, it's all about the hallway track. Um, it's obviously going to talks is really cool and there's some great stuff and the talks will get you super inspired. This is the thing that got me about first conference I went to. I went to a couple of talks and was like, my goodness, I really want to be working this way. I want to be using these tools. I want to be working with a company that does these sorts of things. But the, the more conferences that go to, that I go to, the more value I get out of meeting people, talking to people, making those connections, networking, because the videos, you can watch them online often enough. And that's great. And if you make time to do it, but what you really get out of coming to the conference is actually meeting people, asking questions of the, of the actual presenters. Um, but also meeting people like you who are working on similar sorts of things to you. And it really help you, um, just become inspired and get better at your, at your work. Well, that I think sums up yet another thing that you really didn't touch on specifically, but I'll point it out. Uh, if you come to SpringOne platform, you not only get to hear and see Trisha G speak, you actually will get a chance to chat with and meet Trisha. So if you, again, if you haven't made plans plan to be there, but in the interim, uh, how can folks, uh, follow you, get in touch with you? I, this would be a good time to maybe share your Twitter. Uh, is Trisha underscore G T R I S H A underscore G E E. Um, so that's where I, I've been a bit quiet cause it's been summertime, but that's where I'm usually posting links to stuff from my personal blog to the IntelliJ blog. Um, and what else? And I guess sometimes some code on GitHub and stuff, but yeah, Twitter is probably the best place to find out what I'm up to. Well, with that, we will wrap up the interview and thanks everyone for listening in. Thank you very much, Trisha, for, for carving out some time to speak with us and we'll look forward to seeing you at SpringOne platform. Thanks very much for having me. Well, I hope you enjoyed that interview. I sure did. Hey, and as a bonus for listening this far, if you want to register for SpringOne platform,
28:27the wonderful conference we have coming up October 7th to 10th in my hometown, Austin, Texas, when you go to SpringOne platform.io to register, you can use the code S one P 200 underscore M heckler. That's M H E C K L E R. That's Mark's last name. You can find the discount code. Uh, if you go to pivotal dot IO slash podcast as well, and that'll get you $200 off the registration, uh, fee price, winning admission, however you want to think about it. Well, uh, we've got a several of these coming out. So if you enjoyed this one, you should check out the other ones and, uh, otherwise tune into the regular Pivotal Conversations each week or so, and we'll see you next time. Bye. Bye.