In this episode, I interview John Joe Friedmann, the Senior Software Engineer at Givery. John discusses his role at Givery and his transition to the application infrastructure team. He explains the technical problems he solves, including managing the system that distributes content to different products and ensuring high throughput and low latency. John emphasizes the importance of proactive communication in engineering.
Ryohei Watanabe: So hi. So today, I'm here with John Joe Friedmann. He is the senior software engineer at Givery. Thank you so much for being here, John. Yeah. Happy to be here. So John, can you introduce yourself and tell the audience what you do at Givery?
John Joe Friedmann: Yeah, sure. So as I mentioned, my name is John Joe. I've been at Givery for about two years now. And in my time here, at first, I was working on the track test platform as the sort of lead back-end engineer over there. And after around a year or so, after kind of building up that team, I moved over to form a new application infrastructure team, which we created to help build up a lot of the underlying platforms that track depends on and support all the products.
Ryohei Watanabe: Yeah. So that seems like a very hairy and difficult technical problem that you're solving. Can you explain a little bit about some of the technical problems that you get to solve? As part of the application infrastructure team?
John Joe Friedmann: Yeah. So I think, for example, one of the things that we do on the application for team is manage the system that distributes our content, our challenges to all of the different products. So we need to make sure that this is distributing the products at high throughput, low latency, with the ability to actually produce updates without causing any breaking changes for any of the other services. So it's really important to just understand how all of the products actually use your content. And if anyone's doing anything wrong, we added a lot of permission-based restrictions recently. So ensuring that we could add those restrictions without preventing any of the customers from losing access to content that they were using before, that sort of thing.
Ryohei Watanabe: And as a senior software engineer here, what does your day-to-day look like?
John Joe Friedmann: Yeah. So I mean, I think my day-to-day is pretty comfortable. I work from home most of the time. So I kind of wake up when I'm ready to wake up, clock into work, and then sort of just figure out what my objective for the day is. We usually have our system of just putting in our sign-in message where we'll put what we're going to work on. And a lot of my work is a bit more flexible, I think, than some of the other teams. Because as our infrastructural team, there's kind of a wide range of things that we can work on. And so I'll figure out what the highest priority ones are based off what our current missions are. And after I plan out where I want to be by the end of the day, I'll work towards that process. We have our daily stand-up. But actually, my meetings are generally really light. So I'm able to focus on these tasks and make sure that I'm getting a fair amount of contribution done.
Ryohei Watanabe: Cool. Can you speak about the overall culture here at Givery? In your own words, what is it like here?
John Joe Friedmann: Yeah. I think Givery is probably the nicest place I've worked, for sure. I mean, everyone is very... It's not just a matter of being pleasant in interactions. I think that's kind of the bare minimum that any company should have. But I think that there is just a very inherent kindness and understanding and empathy that all the members have. So there's never been any situation I've been in where it's felt like I'm being blamed for anything. Even when problems arise, it's just focusing on solving the problem. And when people make mistakes, they're not berated for the mistakes. There's much more focus on just preventing the mistakes from occurring. And so I feel very comfortable to speak up about like, okay, this doesn't look like it's going to be released at the time we thought it was going to be released. And the business is just like, okay. Or when I need to kind of change the requirements, because the original requirements weren't necessarily like what we needed, they have been super understanding in working with me to change those requirements or contact the customers about any related things there. So yeah, it's very nice.
Ryohei Watanabe: Is there a specific aspect of Givery's culture that's important to you?
John Joe Friedmann: So I think one of the, at least for me, every time I'm kind of working on my evaluation doc and looking through all of our principles and what I want to focus on myself, I think a big one of these is what we call unlearning. And the idea is just like, we want to not just focus on like, what we've been doing that's been successful, but focus on just like, how we can how we can change our systems to make improvements, right? Like, even if something's been working, doesn't mean it'll keep working. And you always have to keep questioning if the way you're doing something is the right way. And yeah, I found that there's been a lot of like, openness to changing our, you know, like, internal, like, structuring of things, or, you know, pivoting on like, previous decisions of like, how like, permission should work, or how we should, you know, be like, managing our content, things like that. So, you know, I really like, appreciate that openness and willingness to question what we've been doing and adapt to like, what we should be doing.
Ryohei Watanabe: Yeah, I think, to me, it sounds like a super like, adaptable organization, and also an organization that I think values like personal growth of their engineers, and even just as the system as a whole. Yeah. Is there like, some soft skills and technical skills that you've got to develop while working here at Givery?
John Joe Friedmann: Yeah. Yeah, I think I've been able to develop a lot of like, leadership skills. Um, you know, like previously, you know, in my former company experience, you know, I was always just like, a member of a team, you know, I was given work to do, I completed my tasks, that was, you know, the general process, you know, sometimes I'd be maybe given like, a project to be in charge of, and, you know, see that to the finish. But there was always just this era of like, other people would handle a lot of other things. This is like my, like, space, work within that space, do my job. But here, since coming to Givery, I've come to rethink a lot of like, my role as an engineer. And so I've kind of shifted more towards, like, coming up with what the work should be changing, like the business direction. And, you know, anywhere that I think that it's not moving the right way, shifting priorities around where I think we could deliver value, like quickest, and, you know, building things that aren't necessarily being asked for, but are like technically feasible. I think there's a rare, like, place of an engineer that they are the ones that actually understand the entire system. And they can actually make a lot of, like, really crucial suggestions that the business isn't aware of, because they don't understand, like, how all the, like, inner workings are. So, you know, I've tried to, you know, contribute a lot more on the, like, business side. And, you know, like, determining what features we should be developing, how we should be developing them, and what these priorities are. So yeah, since going to Givery, I've really, like, come to understand, like, the, just, I think, the general, like, product side, and, like, the product vision a lot more.
Ryohei Watanabe: Sure. So when I hear you talk about your past role as, I guess, like, what I would say maybe a passive IC might be the problem. And then now you're actively improving the business, and you're coming up with the ideas to undertake the business in the direction that you think is best, from your knowledge as an engineer. Yeah. I guess, what is important for you to do this job well, now that this is, like, the new job of, I guess, actively thinking of the new ways to make the business better? Have you learned about, I guess, what skills you need to succeed as this kind of engineer that you are now? I guess this might be a very complex question. Sorry. Could you maybe rephrase the question? I guess, what skills do you need as somebody that's actively improving the business, as opposed to an IC in your past role?
John Joe Friedmann: Okay. Yeah. I think the biggest skill is just, it's not just, like, communication, but proactive communication. I think that's probably, yeah, by far the biggest thing that I've found I've needed to develop. It's not just speaking when spoken to, but speaking out, like, whenever, you know, any situation is noticed, and letting my opinion be heard. Sure. Even if I'm not, like, asked a question. Mm-hmm. And, you know, I think that productivity is something that you're not really, like, taught to do as an engineer a lot of times. You know, the general focus of engineers is always just, like, get your tasks done by the end of the sprint, right? Sure. That's sort of, like, how you're taught to work originally, but, you know, every time I've spoken out and suggested change, and, you know, mentioned that, hey, this doesn't work right, or, like, there's this, like, you know, major issue that we've been having that, like, no one's noticed up until now, or even just, like, we have this system, but it's not sustainable in the long term. I think we should, like, focus on fixing this instead of developing new features. Like, that's always been really well, like, received by the company, and it's encouraged me to kind of, like, keep speaking out and keep, like, asserting my opinion on things. So, yeah, I think I've been able to develop that, like, proactive communication a lot better.
Ryohei Watanabe: Wow. That's awesome. Yeah. Can you give me a sense of, I think, give and give has a value here at Givery. So, I've talked to quite a few teammates here, and I think I have my own idea of what that give and give means, but I was wondering what you think of what that value is.
John Joe Friedmann: Yeah. I mean, I think ultimately, you know, the idea of give and give is just, you know, it's giving to, you know, the simple definition is, you know, it's, like, giving your customers, giving to your, like, you know, your teammates. I think also, you know, there's kind of, like, it's not stated, but giving to yourself, too. Like, I think it's just really important to not focus on, like, selfish motivations, but what is best for everyone. But I think, like, what's best for yourself can be kind of, like, included in that, too. But, you know, like, you have to just think of removing, like, your immediate, like, wants from the situation, and more just, like, if I think on, you know, like, my day-to-day process, and I think, like, okay, like, how should this feature be developed? And I can think that, okay, well, the easiest way to do it is just like this. And, you know, that would get the thing done, no one would, like, notice there's a problem. But, you know, instead of thinking that way, I think, okay, well, what are my options? What do these options mean for, like, the customers? Like, are they able to use the product better? What does this mean for my teammates? How is it going to be, like, working with this code base when I make these changes? And then also just, like, you know, how is it going to be for myself? Like, you know, when I look back on what I've done, am I going to be proud of this work? Am I going to feel, like, good about what I've done here? And, you know, just by trying to focus on those, like, less selfish motivations of just, like, trying to get the easiest thing done and more on, like, what's best for the long term, yeah, that's kind of, like, what give and give means to me, I would say.
Ryohei Watanabe: So, I imagine if this is the thought process that a lot of the engineers are going through, it actually is a wonderful place to work if everybody is thinking about everyone else's, I guess, not needs, but, like, ease of working within, like, let's say, for example, a code base, right? What do you think contributes to this kind of, like, team dynamic at Givery?
John Joe Friedmann: I mean, it's, I think just a really big part of it is, like, the management being very, like, pleasant to work with. You know, when you have management that feels like it's, everything's, like, top down, it's really hard to sort of, like, build up those natural, comfortable interactions. You know, I think another part is just, like, in the hiring process, you can't focus on just hiring people that have, like, hard skills that you need. Like, those, you know, those personalities, those culture fits, that's really important. That's always, like, a part of our hiring process. So, you know, we've managed to really, like, assemble a lot of people who have, you know, similar core values and are willing to just kind of work in this environment where, you know, everyone's, like, trying to do what's best for, you know, each other.
Ryohei Watanabe: Wow. I kind of wanted to switch gears here just a little bit. Yeah. To talk about the, I guess, international atmosphere that's on the engineering team. And I know that there are some Japanese teams as well, because you have Japanese customers. Can you speak about, kind of, the relationship between the Japanese teams and the English-speaking engineering teams?
John Joe Friedmann: Yeah. I mean, so, actually, I think probably I have been kind of one of those go-between people a lot. But, you know, so, I guess, you know, going into it a little more, like, we do have definitely, you know, the English-focused, like, engineering side more. And then, you know, on the Japanese side, we have, like, all of the business, the CS, and then also several of the, you know, engineers who have been here since, like, you know, the early days of the company who built a lot of our core systems and mostly work on our, like, platform side. So, you know, with these different, you know, language-speaking people, it's really important that everyone is patient in communication. And I think that's been, you know, something I've noticed a lot where, like, people will do their best to communicate to the other in, you know, like, easy to understand, like, English or Japanese. We use a lot of, like, internal translation tools. And then we also have members who are, you know, bilingual to a degree and, you know, like, semi-self-included where we try to, like, be present in, you know, some of these, like, meetings that will have, like, both parts and, you know, can act as, like, interpreters. And, you know, I think what's been nice about this, like, environment is that, you know, like, my Japanese, for example, is, like, very imperfect. But everyone's always very, like, appreciative of, you know, like, my, you know, attempts to just, like, explain things in Japanese as much as possible. They've been willing to, you know, like, correct my mistakes, work, you know, like, wade through, like, my, like, words. And, you know, I think we also try to do the same thing when, you know, our Japanese-speaking members try to communicate in English. And I think everyone's just very, like, pleasant in those interactions, which, you know, makes it work a lot better. If people were just, you know, cutting off each other or trying to, like, speak over people or not willing to wait for others to respond, then that wouldn't work very well. But I found it works here quite well.
Ryohei Watanabe: And in terms of the international atmosphere just within just the engineering team, what is the atmosphere like there?
John Joe Friedmann: I mean, it's pretty fun because we have lots of, you know, different countries represented. And, you know, we, like, all, you know, tell various things about where we come from. Everyone has a different background. And, you know, it's really fun just working with people from, like, so many different places who all have, like, so many different experiences. You know, like, all of our, like, stand-ups and stuff, we always just kind of, like, talk about, you know, whatever's going on in our lives or, like, whatever interests us for, like, a bit. And, you know, I learn a lot about, you know, what it's like living in, like, the Philippines or England or South Africa. Like, you just hear about all these experiences, and it makes you feel, like, more understanding of just, like, the world as a whole.
Ryohei Watanabe: So far today I've spoken to somebody from the Philippines, from Indonesia, South Africa, and now Seattle in the USA.
John Joe Friedmann: Well, originally Chicago, but yeah.
Ryohei Watanabe: Sure. So just a little bit about, I guess, end-to-end ownership in, I guess, engineering. I know a lot of developers like that. Do you have a lot of oversight or direct? Does it, does your role need or have oversight or direction in terms of doing your work?
John Joe Friedmann: So, I mean, I think I'm sometimes one of the people that's doing, like, the overseeing a little bit because I, you know, even when I'm not, like, directly involved in projects, I still try to, you know, attend, like, meetings and, like, some of the other products, look through, like, design reviews, go to, you know, like, the feature request meetings where, like, the specs are being determined to make sure we're building the right thing. But, you know, on my own side, you know, the work I do, there's definitely, like, a lot of interaction with, like, the designers who are looking at it saying if this UX makes sense or if we need to, like, make changes to things to improve things. There's, you know, QA. There's the business who will try out the product and be like, this isn't what we wanted. And then we, you know, make adjustments there. So, you know, I think everyone's kind of, like, I think it's important for everyone, really, to be a reviewer in a way. You know, even if you're not involved in something, it's still, like, important to speak up if you don't think something makes sense.
Ryohei Watanabe: Mm-hmm. So, I guess hearing about the feature request meetings, the design review meetings, like, if an engineer wanted to go to any of those meetings, I assume that they can, right? Yeah. So, I guess, like, when you're trying to solve, I think, like you said earlier, problems to the business, there's a bunch of different, like, places where they can influence the process, such as, as you said, the feature request meetings, the design review meetings, and I guess I assume also in the application code as well. Is there any other way that engineers can kind of help the business apart from just these meetings?
John Joe Friedmann: Yeah. I mean, like, we, you know, have ways of, like, you know, what I've done several times is, like, created my own feature request. You know, we don't need all the feature requests to come just from the business. Like, engineers can make them themselves. And, you know, I've even, like, like, I personally had, like, worked in the code base, and with one of our permission-related matters, I felt that the way we had our permissions didn't make any sense. So, I just wrote out you know, like, a whole design going over how I thought every single interaction should be in a way that would be, like, logical, consistent, and work across the code base. I proposed this to, you know, the business to make these changes, got their approvals, and then, you know, went about implementing it. So, yeah, we definitely have, like, channels for people to propose any sorts of, like, technical or, you know, even, like, business side changes that they believe are best for, you know, the customer.
Ryohei Watanabe: Oh, wow. That's wonderful. Can you go a little bit further into getting the permissions feature done, or I guess the rewrite done that you did? Were people in management receptive to your idea immediately, or could you go a little bit further into that process?
John Joe Friedmann: Yeah. I mean, so, like, I think what's important is you can't just come up with, like, if you want to actually get something done, you can't just have, like, a vague idea of what needs to be done, because it's really hard to fit something like that into, you know, like, your roadmap. Sure. And so, you know, I spent, you know, a bit of my own time just thinking about how everything should be, and, like, precisely what changes need to be done. So, I could give, like, a very strong estimate of exactly how long it would take, and, you know, demonstrate that we could fit this in within our process without, like, any sort of disruptions to anything else. And, you know, with that in place, and with my own defenses of, like, because everything I'm saying is best for the customer, right? And so, as long as things are best for the customer, the business is always, like, very open to, you know, those sorts of ideas, as long as it's not going to, like, prevent us from releasing other features or something that are also important for the customer. So, you know, if you can fit within that balance, yeah, I found it's real easy to, you know, get them on board.
Ryohei Watanabe: Wow. I guess everybody that I've talked to today talks a lot about the customer focus. Yeah. And is there something that, is this, like, some value that's in the culture? Is it in the Kool-Aid somewhere? Or, like, what is the mechanism through which this kind of, like, importance is upheld to the engineers? Or, yeah.
John Joe Friedmann: Yeah, I mean, so, I think, like, it's definitely one of the core values that, you know, at Givery about caring about, like, the customer, and, you know, even for me personally, like, it's always been just one of the, like, core values I've cared about, even in previous positions. You know, in terms of, like, the mechanisms for ensuring that it's upheld, though, that I think Givery does well, is, you know, like, one of the things we have are these, like, win sessions. And we have these, you know, on, like, a product level. So, like, the track test, for example, will have, like, a win session. And the people that attend the meeting aren't just, like, the engineers. It's not just, like, a demo or anything like that. We have the CS team there, who talks about, like, you know, customers who, like, they talk about, like, the retention rate. You know, like, if customers are leaving because they're unhappy with things. If customers say that they're happy with, like, the fixes they have. Talk about the marketing team and sales who are, like, getting us new customers. And, you know, like, we hear about how the business team is, like, being affected by what we've done on the engineering side. And, you know, like, they will share customer testimonies with us. You know, I've had, like, several situations where there was, like, a major bug that, you know, I worked hard to fix the bug. But then after, like, there was really nice communication from the customer, like, thanking us for that change, that, you know, they send a CS team. The CS team directs to us. And, yeah, there's just, like, this feedback loop that encourages us to care about, you know, making things better for the customers, which, yeah, I really enjoy.
Ryohei Watanabe: That's amazing. I guess, so, as the last question, I wanted to ask, during your software developer career, what have you learned about what it means to be a better software engineer?
John Joe Friedmann: Yeah, I think the biggest thing that I've learned is that, as an engineer, if you want to be doing your best work, you should really care about the product that you're developing. I think that too many people go down the route of just wanting to pursue, like, a high salary, you know, comfortable, like, Google or Amazon or, you know, whatever position. And, you know, I've been in those spots. And the work you do, you don't have any control over the product. You can just immediately get shifted to something that makes the company money that you don't care about, like ads, for example, right? Like, ads, I think it's really hard to find people that are passionate about adding a bunch of ads to a platform. And if you don't care about what you're doing, it's really hard to do your best work on anything. And, you know, it's just kind of like a negative cycle that makes it so that you're working, you're not caring about what you're working on. You're doing lower quality work. You're feeling worse about your role. And even though you're being well compensated, I don't think that's, like, enough to really, like, keep you happy. And instead, if you're working on a product that you care about and you're doing what you want to do, I've found that that really, like, leads to you doing better work and growing a lot more as a person and as an engineer. And I think that's really important.
Ryohei Watanabe: And nothing to add. That was John Joe Friedmann from Givery. He is a senior software engineer. Thank you so much for your time today. Yeah, thank you.