Masahiro
Nakagawa


@repeatedly
Github
Blog

Organization: Treasure Data, Inc.
Location: Tokyo, Japan
Projects: D-lang, Fluentd, MessagePack
Languages: D-lang, Ruby
2013-08-18

Could you give us a brief introduction of yourself, what you do for a living, and what kind of problems you work on?

I'm Masahiro 'Masa' Nakagawa, an engineer at Treasure Data, Inc., a "Big Data as a Service" company. TD is head-quartered in Mountain View, California, but I work out of our Tokyo office, right next to Tokyo station.

At TD, I mainly work on data collection and develop software used by our end users (as opposed to our in-house tools and infrastructure). I also work on our monitoring environment and manage the releases for Fluentd & td-agent.

I find that "removing data handling obstacles faced by users" is an interesting and worthwhile problem to help solve.

Do you have any personal pet projects you can tell us about?

For Open Source Software, I mainly work on the D programming language. I was active as a core committer of the project in the past, but these days I've mainly been writing 3rd party libraries.

I also contribute to technical books from time to time. Most recently, I supervised the translation of the Japanese version of "The D Programming Lanugage" which was released earlier this year.

While I do have a few small projects where I am the project lead, I spend most of my time enhancing the code base of existing projects or writing tools to strengthen them.

What tools (hardware and software) can you not live without?

I always carry around my MacBook Pro, which has all the software I need. It's an essential item for me.

I use an Intuos pen tablet instead of a mouse. The ability to move the cursor based on absolute coordinates is really useful. Several TD engineers also use this setup.

For web services, I'd be in trouble without Twitter since it's now my main avenue for discussing software with others or gathering information about a variety of topics. These days the service rarely goes down (which was not the case in the past) so that's been helpful.

In the future I suspect that the Square credit card reader (which just launched in Japan) might become indispensable.

What languages and frameworks are you using these days?

These days I mainly use Ruby, since much of Treasure Data's products are written in Ruby. Ruby was the first language I used when I started programming, so it's the language I'm most comfortable with after the D language.

I'll familiarize myself with any number of Ruby frameworks as the situation calls (ex: Rails and others for the web). In the past I primarily used Ramaze. These days I use RSpec for tests.

As for the D language, I used vibe.d in writing msgpack-rpc-d. If I had my wish, I think it'd be nice if it were a bit more compact and modular.

Whenever the languages I'm interested in (Haskell, Rust, etc.) get updated, I'll make sure to catch up with all the changes in the code.

Could you tell us how you first got into programming, and how you decided to make this your career? Was there a particular moment when you realized that this was what you wanted to do?

My first time 'programming' was when I took a course on C in college. Of course, I was basically just regurgitating the lecture material so at this stage I didn't really find it interesting. I went on to learn Java and Perl similarly through lectures, but nothing really changed and it didn't cross my mind to even ask myself whether I wanted to become a professional programmer.

I think it was my senior year in college when I started using Twitter and found out that so many talented and prolific programmers my age existed out there. That made me go borrow a Ruby book from a friend and start programming outside of the classroom on my own for the first time. I think this was the moment when programming became "fun" for me!

Later on I started looking for speed and eventually discovered the D language. When I became a committer to the Phobos project, I started to think, "Hey, I might be pretty decent at this programming thing now!"

I've become involved in various OSS projects over the years since then, and here we are today!

What is your most memorable (triumph, catastrophe, etc) hacking/programming experience?

I think it has to be the time I implemented MessagePack for D. At that time, D didn't have many libraries. I started working on this project since I thought that having this kind of serialization library would help overcome some of the obstacles by leveraging inter-language communication. My goal is to provide an easy to use, fast, memory-efficient library, and I've been improving it little by little every time new features are added to the D language.

This library is what allowed me to become a committer to the Phobos project and even get a job! I now work with the creator of the MessagePack project at Treasure Data, so writing this library really changed my life.

How would you describe Japan's Hacker Community?

With respect to the D language (my main language), I'm actually not so familiar with the domestic community since I had been living in the boonies until quite recently.

In general I think we're pretty similar to other communities around the world, with various events being held by hackers and discussions happening on Github and other places online. One distinctive feature that I've sensed from researching the D language and Fluentd, is how often we use Twitter as a discussion medium. It may be because it's easier than making posts on forums in English, but whatever the reason I think it's quite rare for others to ask for software design advice in Twitter.

What are some of the things you feel are unique and wonderful about Japan's Hacker Community?

A very large fraction of us are concentrated in Tokyo, and I suspect that it's rare to have this kind of physical proximity with one another even in the States. While it's true that the Internet has made distance irrelevant for simple communication, it's still much easier to have in depth conversations when we're able to speak in person. The "cost" of having such face to face conversations is quite low here, and I think that might be a unique strength of ours.

Also, since the major cities in Japan are "cities that never sleep," I think we tend to have many discussions and conversations that run deep into the night.

How do you feel about the current level of camraderie and communication between the global Hacker Community and the Japanese Hacker Community?

This might be a given, but I do feel that English language barrier is a big hurdle. I dove into the OSS world head first through Github, so I tend to just let out a battle cry and hit the OK button when submitting issues even with my broken English. But I've seen quite a few people hesitate to do the same (though maybe other non-native English speakers are similarly sheepish to one extent or another).

I suspect that there are quite a few issues out there that have been mentioned on Twitter but haven't actually been fixed in the projects themselves (laughs).

Of course, the more proactive among us are interacting with others regardless of the language, so I think that "when" and "how" we take the initiative is entirely up to ourselves. But it's possible to learn and improve even when staying within the confines oy the Japanese community, so I don't think it's necessarily imperative that everyone reach out.

What can we work on to close this divide?

For the D language (back when I was more active in the language core itself), I used to act as cheerleader for anyone who had been talking about an issue on Twitter and help him submit an issue to the repository himself. I feel that in the end, this is all about just getting our feet wet and getting used to it, so whatever a person's circumstances may be, I think it's important for everyone to be directly involved in the community.

Even with my terrible, horrible English, most everyone has been willing to patiently listen and understand what I'm trying to say, so I personally think it's just a lose lose situation to be shy and timid.

In any case, every programmer has a pet programming language that they are comfortable with, so I think it's possible to communicate using this "language". I think all of us, even native speakers, have had experiences where we couldn't understand something when explained to us through "natural language" (like English or Japanese), but understood right away once we took a look at the actual code.

Do you have any interests outside of programming?

I enjoy all kinds of sports. I travel by bike around Tokyo, and went cycling a few times when I was in the States visiting our HQ earlier this year (I had a great time cycling from San Francisco to Mountain View with a group). I've recently joined a futsal team as well.

Other than that, I watch a movie in the theaters about once a week and check out any manga or anime that seem interesting. In the past I used to draw, but not any more.

I've recently gotten into Settlers of Catan and similar board games, so I think it'd be fun to have inter-company matches.

Is there anything you'd like to say to us Hackers overseas?

Though my main language is Japanese, I've been making an effort to communicate and hold discussions in English in earnest. So if you see me in a Japanese discussion with keywords that you might be interested in, by all means shoot me a message in English!

Who would you like us to interview next?

I feel like I should recommend someone from the D community, so I'll suggest @9rnsr (Kenji Hara, D-language maintainer), the Japanese hacker who has contributed the most to the D language core.

Anything we haven't covered?

I'll be travelling to Bay Area pretty frequently, so I look forward to meting you at meetups and other events. :)

Thanks Masa!