Nigel was looking for his first job after college when he stumbled across a job posting for KOMOJU. The idea of living in Tokyo seemed interesting, so he applied on a whim. He was offered a one-week trial, where he was flown over to Japan. He said, “It was a really nice team. Japan has a bad reputation for its work environment, but it was actually really nice here, and at the time I hadn’t lived anywhere but my hometown, so I was like, okay, I’ll just try something new.”

When Nigel joined, the development team only had four other engineers, and didn’t have a product team. He said, “The CEO was still doing sales directly. If the CEO struck some sort of deal, then one of the developers would just do it. But there was no real direction. Like we weren’t building out our own product with our own vision.”

The size of the engineering team is now 20 people, and the product team even right now is complaining that we don’t have enough developers, so I think it’s going to grow more.

This changed dramatically in the three years since he joined. He said, “We now have a product team, and our own vision for what we want to work on. Like we actually have an idea of what we want to provide and we’re working towards that. The size of the engineering team is now 20 people, and the product team even right now is complaining that we don’t have enough developers, so I think it’s going to grow more.”

With these changes, Nigel’s role has changed too. He said, “I joined as a regular developer, a code monkey basically. Now I have the tech lead role. Although I spend most of my time just doing development, I get roped into meetings sometimes. Basically, when another team is starting something, and they’re thinking about architecture, like where do we put this new code, or how is it going to talk to existing systems, I’m in those meetings and I’ll provide insight. But otherwise I’m just writing software for new features, basically like new features on the payment system.”

Adjusting roles to developers’ strengths and interests like this is something KOMOJU tries to do. Nigel said, “If we notice that somebody has a knack for understanding high level requirements, then we’ll usually bring them in on product calls and they’ll take high-level ideas and turn them into code. But, by default, developers are looking at fairly detailed issues that have fairly specific instructions.”

Because we have a lot of automated testing like that, we can usually just try making a big change and if it passes the tests, then it typically works.

Nigel’s role sometimes sees him making significant architectural changes, and he can do this with confidence because of their automated testing. He said, “We have a lot of test cases, near 100% test coverage. We also have end-to-end tests, which actually hook into third-party e-commerce platforms like Shopify, and then have a bot use the platform all the way through KOMOJU, and then make sure that the order gets fulfilled. Because we have a lot of automated testing like that, we can usually just try making a big change and if it passes the tests, then it typically works.”

Another technique they use when making major changes are feature flags. He said, “When you make a big change, you can use if statements to hide the new code. So we can turn on this new behavior only for this merchant. Our sister company does e-commerce, and so we can use their store as a guinea pig sometimes. That’s a good way to sort of iron out new scary features.”

KOMOJU is good even by Western standards. I don’t feel a whole lot of pressure here. If you’re having trouble with something and you’re not gonna finish it on schedule, nobody’s going to get angry at you for it.

Nigel recommends other international developers join KOMOJU because of the work-life balance. He said, “I think a lot of westerners are interested in Japan, but are scared of Japan’s reputation for poor work-life balance. KOMOJU is good even by Western standards. I don’t feel a whole lot of pressure here. If you’re having trouble with something and you’re not gonna finish it on schedule, nobody’s going to get angry at you for it. It’s just a nice social environment. People are interested in solving problems and not bullying each other.”

Nigel also notes that the service is an interesting challenge due to the availability constraints. He said, “On the technical side, KOMOJU is fun for me because it’s a critical service that requires high availability. Lots of people’s livelihoods depend on our service, and so we try really hard to keep things clean and correct. It’s quite different from other environments I’ve been in, where we just pushed out code and fixed the bugs as they came in.”

Another appealing thing is that it is a profitable business that hasn’t received outside investment. He said, “We are self-sustaining and that does provide like a certain amount of safety. Most of your total compensation is going to be cash, and that could be a plus for some people.”

Open Jobs at KOMOJU