Chats with Engineers is a series of interviews where we pull engineers working at Mercari aside for a quick chat. In volume 18, software engineer Kensuke Kajiwara (@kajiken) interviews @makazutaka and @codehex, two engineers who joined Mercari as fresh graduates in 2018.
What will they talk about? Keep reading to find out!
From playing around with code to programming professionally
＠kajiken: @makazutaka, @codehex, do you guys have a minute?
@kajiken: Wait, don’t run in the hallway!
@makazutaka: S- Sorry...I’m a new grad, so...
@kajiken: New engineers sure act quickly...
@makazutaka @codehex: Mr. @kajiken, thank you for speaking with us! (bows)
@kajiken: Technically we’re supposed to be standing around chatting, but let’s sit down.
@kajiken: I know you two joined as new graduate engineers. Today, I want to dig deep and find out a lot about you two. Can we start with some self-introductions?
@makazutaka: I’ll start. I’m @makazutaka, a backend engineer on the Customer Reliability Engineering Team. I was born in Osaka, went to a technical college in Nara, went on to a graduate school in Ishikawa, and moved to Tokyo this spring. I joined Mercari in April 2018. Nice to meet you!
@kajiken: I see. Okay, next is @codehex.
@codehex: Right. I’m @codehex, from the Microservices Development Team, which works to migrate the monolith application to microservices. Like @makazutaka, I joined Mercari as a new graduate in April 2018. I’m from Okinawa, and I’m 22 years old.
@makazutaka: Your self-introduction is so short and sweet, it’s almost unfair. (laughs)
@kajiken: What made you two want to become engineers?
@makazutaka: I first thought that I wanted to become an engineer when I was in junior high. All of my friends spent their time playing sports, but I was really into online games. I started getting interested in the inner workings of online games, and fell in love with programming. I went to a technical college instead of a normal high school because I wanted to pursue programming professionally.
@codehex: That’s really ambitious!
@kajiken: What about you, @codehex?
@kajiken: That’s pretty ambitious, too.
@codehex: I guess. (laughs) Maybe @makazutaka and I are pretty similar.
@kajiken: When you first got interested in online games and programming, did you know that you wanted to be an engineer in the future?
@codehex: I wasn’t really thinking about anything like that. I just thought programming was really fun, so I kept doing it. It felt so cool and novel to know that something I made was running on my computer. I started contributing to open-source communities and took in as much information as I could.
@kajiken: What made you want to join Mercari?
@makazutaka: When I was a student, I interned at a number of different companies, and I kept hearing “Mercari’s really awesome” from the engineers around me. (laughs) That was the first time I heard about Mercari. Well, I knew about the app, but I hadn’t thought of it as a place to work before.
@kajiken: What was the deciding factor for you?
@makazutaka: When I thought about my future, Mercari seemed like the company with the most advantages. The company is in its growth period, and most importantly, there are lots of skilled engineers, both new graduate and mid-career. I thought being able to learn from them would give me unique value I wouldn’t be able to find anywhere else.
@kajiken: How about you, @codehex?
@codehex: To be honest, I chose Mercari because it’s the company with the biggest momentum right now. (laughs) But what really made my decision was reading blog entries from babarot, an engineer on the SRE (Site Reliability Engineering) Team. (babarot’s entry about joining Mercari (in Japanese)) There aren’t many companies that evaluate fresh graduates just as well as other employees if they have the skills. I wanted to build my career as an engineer in a work environment like that. After I read the blog, I DMed babarot, and he told me a lot about Mercari.
@kajiken: That’s pretty impressive.
What new grad engineers don’t expect about working at Mercari
@kajiken: It’s been more than a year since you received the offer to join Mercari. Now that you’re here, is it just like what you expected, or were there any surprises?
@codehex: Before I joined, I had this thought that “technology at Mercari must be full of dreams.”
@kajiken: What do you mean?
@codehex: I thought of the technology at Mercari as already being complete. But once I joined, I found out there were actually a lot of issues… I can’t go into too much detail, but I really felt how incomplete it was when writing code. But when you think about it, the technology being incomplete means that there’s a lot of things to do. It’s a really good environment that helps me boost my skills.
@makazutaka: I was surprised that I was working in such a global environment. When I got my offer (April 2017), there were so few non-Japanese engineers I could count them on one hand, but now there are so many global members from all different countries working at Mercari. Being able to work side-by-side with engineers who have worked around the world makes this a really amazing environment.
@codehex: I feel the same way. And there are a lot of global members who speak not only English, but Japanese really well, too. I think it’s pretty cool that we can communicate so easily.
@kajiken: I see. Anything else?
@codehex: Our job is to develop systems, so I thought all we had to do was work with the code. But in reality, we work not only with engineers, but producers and various other teams too. That surprised me. Also, one thing I struggled with was finding the right way to communicate with people. I’m pretty bad at mixing online and offline communication, so it took a lot of effort to get used to.
@kajiken: Which is easier, online or offline?
@codehex: Offline for me. I’m not good at conveying the right feelings and nuances in text… And I have a bad habit of saying things without context, so I’ve been trying to speak as clearly and concretely as possible. For example, if I’m making feature A, and I say “X didn’t work,” I used to think that everyone would understand what happened. But it turns out there are many ways to interpret vague sentences like that, and not everyone will interpret it the same way. So now I’m trying to convey what I mean in more detail, like “I’m having trouble with X in feature A. I need Y to fix it.” If you speak too abstractly, you rely too much on intuition, which results in misunderstandings. I had a lot of trouble with that when I first joined.
@kajiken: When there’s a wide range of people involved in the project, talking about things the way you would when talking to another engineer no longer works. Communicating with people who have different ways of reaching their goals is a really good experience.
@codehex: Yeah… I learned that the hard way.
Engineers working on equal footing regardless of career experience
@kajiken: As backend engineers, what have you two worked on?
@makazutaka: I’m on the CRE Team, which works to solve Customer Service (CS) tasks with engineering. I’m working on system development for what we call the “defense” side. Until recently, Mercari has had a lot of projects aimed to increase our “offense”—speeding up development, creating new features, etc. But we need development to boost our reliability and stability, too. As part of that, I’m working on things like the CS management tool.
@codehex: When I first joined Mercari, I was part of the UX (User Experience) Team, and worked mostly on system development related to delivery for the Mercari app. It’s pretty cool that a UX team works on delivery too, isn’t it? As part of that team, I did some surveys, and was able to completely read through the source code for Mercari. After that, I transferred to the Microservices Development Team, and now I’m working on turning listing into a microservice.
@kajiken: Have there been any particularly memorable moments so far?
@makazutaka: Mercari has a culture of doing code reviews, and sometimes it feels like people are almost obsessed with it. The first bit of code I wrote when I joined had around 160 comments on the pull request on GitHub. My second pull request had over 190...
@codehex: What the heck did you do? (laughs)
@makazutaka: It was honestly just lack of skill. (laughs) But I was particularly surprised that in addition to the other backend engineers on my team, I even had engineers from Merpay, another company in the Mercari Group, carefully reviewing my code. The culture of doing code reviews is ingrained in the entire Mercari Group to create an even better service and product. I was both happy and shocked, and it really left a big impression on me.
@kajiken: That’s a really good story. Have there been any particular moments that made you think you made the right choice by joining Mercari?
@makazutaka: There have been a lot, but to give an example, it’s really nice that we can come to work whenever rather than having a set start time.
@codehex: I know, right…?
@makazutaka: I don’t mean this in an “I can sleep in, yay!” sense. The executives told us that even though we’re fresh graduates, they want us to balance freedom and responsibility in tackling our work. We’re given as much consideration as possible in order to boost our output, which leads to high motivation, and makes me think I want to give back by working hard.
@codehex: On a related note, one great thing about Mercari is that there are a lot of “superstar” engineers. It’s just like getting the chance to practice with professional baseball players. This wouldn’t happen at any other company. The discussions are always really high-level; it’s the best environment for a new engineer like me to grow. I know it won’t happen overnight, but it makes me want to work hard and catch up to them quickly.
@makazutaka: I feel the same way. I also like the company’s mission and values. It’s really nice to have clear standards to look to when making decisions—when I’m stuck trying to make a decision, I can ask myself, “is this choice really Go Bold?” As long as it’s a “Go Bold” decision, even fresh graduates can challenge themselves and try new things.
@codehex: The new graduate training is pretty Go Bold itself. As far as I know, most companies have a training period of a few months to a half-year, but Mercari’s is only three weeks, and after it’s over you start working on projects right away. The time between joining the company and starting actual work is really quick.
@makazutaka: And since we’re working on new services, we have lots of opportunities to give our opinions and ideas.
@codehex: We’re not treated like fresh graduates—in a good way. It’s like we’re playing on a level playing field. No one says things like “You’re a new grad, so you can’t do X and Y, right?” They treat us as professional engineers in our own right. My mentor, the engineer @vkgtaro, actually asks for my opinions and why I think what I do. Of course, there are times where they point out mistakes and give advice, but they don’t shoot down my ideas. I feel like we’re speaking on equal footing.
Mercan editor: @kajiken, you’re in charge of onboarding. After hearing all of that, what do you think?
@kajiken: We only hire people who will proactively take in as much knowledge as they can, even if they start working on projects right after joining—I say that with confidence. So we make the training period as short as possible, and let them learn on the job.
A product valued by users
@kajiken: We’re running out of time, so let’s wrap it up. Can you tell us your future visions and goals?
@codehex: I want to create a product in Perl! I also want to contribute to open-source projects through communities. When I was a student, I learned a lot of programming knowledge from open-source projects. I know it sounds like it, but I’m not exaggerating when I say that I am where I am now thanks to the people who published their code online. I want to spread the expertise I have now through open-source projects and help other people learn just like I did.
@kajiken: I like that idea. Trying to create a second @codehex?
@codehex: Something like that. (laughs)
@makazutaka: I started learning programming in order to create new products, so I want to build up enough knowledge and skill to make that happen. I want to make a product valued by users, like Mercari is.
@kajiken: A product valued by users…?
@makazutaka: ...I guess you could say “love”.
@codehex: What do you mean?
@makazutaka: When we write code, we’re picturing the users. What do the users think as they’re using our service? What are they looking for? I think the feeling of wanting to do something for the users is a kind of love.
@codehex: So like...a product valued by users is a product where you can feel the love that went into it?
@makazutaka: Exactly. A product where you can’t feel the love for the users is a product that won’t succeed. This goes for both creating the product and working on an existing product. I think having this viewpoint is really important for engineers.
@kajiken: I like that too! Both of you, never forget the thoughts and visions you talked about today. Thanks for the chat!
@makazutaka @codehex: Thank you very much!
Joined Mercari as a new graduate in April 2018. After working as a backend engineer for Mercari Channel, currently works on CRE (Customer Reliability Engineering). In graduate school, performed research on time series forecasting using hierarchical Bayesian models. Enjoys meditation.
After graduating university, joined Mercari as a new graduate. As a backend engineer in the UX Team, worked on developing a microservice for the offer feature. Currently works on developing a listing microservice as part of the Microservices Development Team. His favorite programming languages are Perl and Go.