Software development at TenTen
Laura tells her story of coming to Japan and joining TenTen as a developer. She talks about some of the technical challenges she faced, and how the company takes a collaborative approach to development.
In university, Laura studied Business Computing, which was geared towards product management. Though she did a bit of programming in C and PHP in her classes, she didn’t see herself becoming a software engineer. But when she followed a friend’s recommendation to give Ruby a try, she thought “wow, this is actually fun”. This led her to landing a job as a Ruby on Rails developer in Berlin after graduation.
A couple years into her job, she became a bit bored of life in Germany, and wanted to try living somewhere new. She decided on Japan, a place she’d visited as a tourist before. After negotiating with her company to let her continue working remotely, she used the Working Holiday programme to move to Japan.
While working remotely was good in the beginning, as time went on, she saw the downside of it. She said, “I was the only person remote and in a different timezone. It was fine, but I was online with the other people only for three hours of the day. Because the company was not set up for remote, I had to pull a lot of the information. People would forget to tell me things, and I’d often have to wait for someone to come online.”
Wanting to continue her life in Japan, she started to search for jobs locally. While attending a local developer event, she met someone from TenTen, who mentioned they were hiring, so she applied. She said, “I was interviewing at a couple of places. The people at TenTen were nice, the work seemed interesting, and so that’s the one I went with.”
TenTen offers a SmartBeacon that can be installed in vending machines to allow them to go online. They offer both a consumer facing app that lets users do things like collect stamps when they purchase a beverage that can be redeemed for free drinks, and a back-office solution for vending machine operators that helps with operations, like seeing what’s currently in stock in the machine and route planning for refilling.
A lot of the things we’re doing haven’t been done before, haven’t been done in Japan, or have been done in a weird way. So what we do is actually fairly original, and you have to come up with new solutions to make it work. That’s really interesting.
Laura likes the innovative nature of TenTen’s product. She said, “A lot of the things we’re doing haven’t been done before, haven’t been done in Japan, or have been done in a weird way. So what we do is actually fairly original, and you have to come up with new solutions to make it work. That’s really interesting.”
When designing a new feature, she enjoys getting to think about it from a holistic perspective, rather than being restricted to work on a small component. She said, “A very interesting example of this is the prepaid purchase flow, because it touches everything. You start from your mobile phone, which interfaces with the backend to charge money into the app using your credit card. When you get close to a vending machine with one of our beacons in it, a button in the app will light up. You hit it and it will connect with bluetooth, showing a list of all the drinks. Tapping on one will purchase it, and the drink will come out of the machine. Working together with firmware, mobile and server side engineers across a stack that varied is really different from working on yet another webapp.”
Since joining, the company has grown a lot, going from about ten employees to thirty or so. As they’ve grown, they’ve gotten better at product management. She said, “It used to be that everything went directly to the engineers. But now, we have a good product manager, and she does a good job of not letting that happen. As engineers, we’re still pretty self directed though. It’s still up to the engineers how we build things and what makes sense to build, which is nice because you get to give a lot of input, and make a lot of decisions.”
Despite getting larger, TenTen has maintained a fairly flat structure. She said, “I can directly talk to the CEO when I want to ask something. It’s not like you have this chain of hierarchy where you can only talk to your direct manager.”
There’s no strict daily schedule, and people can structure their day in the way that works best for them.
They also give the individual developer a lot of control over their schedule. She said, “We’re not super structured. We have meetings when there are things to be discussed, biweekly sprint plannings, weekly engineering all-hands for sharing updates on the engineering level, and a company wide all-hands once a month to share updates on the company level. Apart from that, there’s no strict daily schedule, and people can structure their day in the way that works best for them.”
The loose structure is great for proactive people, but it can be difficult for those who are more passive. She said, “That we don’t always have super structured processes in place yet is something that can be challenging for some people. Not everything is written down, and so sometimes you need to ask people for help. Also, while everyone is happy to answer questions and share knowledge, we generally do best with people that feel comfortable to think about things on their own and then discuss with others, rather than just waiting for instructions on what to do.”
International developers easily fit into the team because communication is done in English. She said, “The engineering team mostly operates in English. The vast majority of our engineers are not Japanese. We have people from Germany, the Philippines, Sweden, Indonesia, Finland, Australia, the United States, and probably a couple more that I’m forgetting about.”
You’re going to fit in if you actually like talking to people and discussing stuff.
People are quite collaborative, and so you won’t just be stuck endlessly coding by yourself. She said, “You’re going to fit in if you actually like talking to people and discussing stuff. Of course, occasionally you just write a PR, and send it off for review. But before we build bigger stuff, we usually discuss it and write a spec before starting to code. Just because someone has put something in the spec document doesn’t mean it is set in stone, but when you have all these different technologies, it’s important to communicate about the interface.”
She continued, “It’s a good atmosphere, where you can give feedback on anything. Normally people will feel comfortable to discuss and criticise stuff in a productive way, and the other person won’t be offended. Even though discussions can be fairly straightforward, it’s not an aggressive or super competitive environment, where you feel like you have to get defensive. People are friendly to each other.”