The Hidden Mindset and Skills of Japanese 10x Developers
Tags: programming, productivity, devops, career
Published: 2023-05-07 14:29:17

In this post, I reveal the undisclosed information regarding Japanese 10x developers that I had the opportunity to work with during my five-year stint in Tokyo. Furthermore, I share the valuable insights they imparted to me, which helped me improve my productivity to a similar level as theirs.

## Introduction

The software company I used to work for in Tokyo was distinct in two ways. 

Firstly, their engineers were **full-stack developers** who also specialized in specific domains such as backend, frontend, machine learning, security, network, cloud architecture, sound, game, and so on. They worked on specific domains for their projects, but also possessed general knowledge and interest in other software fields. The company believed that limiting engineers by job titles would impede their growth, and having full-stack engineers would be more beneficial for projects.

Secondly, the company had a **purely flat organizational structure**, unlike other software companies that have hierarchical distinctions among junior, middle, senior, and staff roles. The only difference was the CTO, who was a co-founder. Although the company had 400 full-time employees and a few hundreds contract engineers, which caused some disorder and chaos, it generally functioned well.

## How 10x developers are cultivated and discovered

How can a completely flat and somewhat chaotic organization cultivate 10x developers, and how are these exceptional developers identified without a traditional corporate hierarchy?

The full-stack software engineers at this company must survive the development of production-grade, consumer-facing web services across multiple domains, including frontend, backend, and infrastructure. The blurred lines between these domains encourage engineers to understand and seamlessly integrate the entire system flow. This results in most engineers becoming battle-tested and highly skilled after five years of work, and 10x developers typically remain at the company for over ten years.

At the same time, engineers identify 10x developers solely through word-of-mouth and reputation, as many engineers work on multiple projects at once. Respect is earned not through seniority or title but through exceptional results achieved in a shorter time than their peers. In other words, 10x developers make a significant impact on projects in terms of software architecture design, coding quality and quantity, and debugging.

## Traits of Japanese 10x developers

The attributes listed below are commonly associated with Japanese software developers who demonstrate exceptional productivity and proficiency in their work. These traits are not limited to engineers within my previous company, as they are often mentioned in Japanese online forums.

1. **Passionate about coding**: They write 500 to 1000 lines of code per day because they genuinely enjoy coding.
2. **Genuine geeks (Otaku)**: They graduate from technical high schools or colleges and are heavily influenced by the Otaku community. They are introverted and enjoy games, anime, and comics, but dislike traveling long distances.
3. **Proficient in multiple programming languages**: They are skilled in writing code in all kinds of programming languages, including interpreted, compiled, frontend, and backend languages such as Python, JS, Java or Kotlin, Golang, Rust, etc.
4. **Excellent problem solvers**: They excel not only in writing code but also in debugging problems. They are a combination of all kinds of analysts.
5. **Anonymous**: They rarely appear in public and prefer to remain anonymous. Their real names cannot be found on their presentations or blogs, but they are active on Twitter using nicknames.

## Lessons I learned from Japanese 10x developers
I have discovered two basic concepts that describe the effectiveness of 10x developers:
- Concentration
- Knowledge and experience

### Routines for Concentration Enhancement 

1. **Time Limit**: Instead of working all day, it's better to set specific working hours, which is 8 hours for most people. This is because when there is a time limit for a task, concentration is improved. This can be compared to body training, where trainees focus on an exercise for a specific duration, such as an hour, to achieve maximum concentration. **Example**: One Japanese 10x developer arrives at the office on time and leaves on time or early if all scheduled tasks are complete. He also cleaned up his computer state and sorted out his backlogs before leaving the office so that he can straightly start working on his tasks the next day. **Tip**: It's also possible to extend the working time by 10 to 15 minutes to complete one more task, similar to doing a few extra reps during a body workout to achieve maximum results.
2. **Something small, easy, and simple**: Begin with small, easy, and simple tasks rather than heavy and complex ones. This is similar to how one would start a bonfire by burning leaves and papers before adding wood. **Example**: Japanese 10x developers usually begin their day by either addressing minor bugs or checking their Slack app. **Tip**: It's recommended to divide a large task into smaller portions ahead of time.
3. **Quantity measurement**: Quantify the achievement like a game. It is good to set key quantitative metrics to measure achievements. **Example**: Japanese 10x developers kept track of the number of pull requests, closed issues, cost-saving amounts, etc. 
4. **Least Best Practices**:  Aim for results that are not necessarily considered "bad" but may be less effective or efficient. They know avoiding anti-patterns is more crucial than achieving the best solution. For instance, the best code is subjective, contextual, and hard to achieve most of the time, which slows the way of thinking and working; meanwhile, the poor code is self-evident and easy to spot. **Example**: Japanese 10x developers usually receive a few coding suggestions for their pull requests. These suggestions are nice and good to accept, but none of them is a critical problem in terms of algorithm and security. 
5. **No distractions**: Have no distractive tasks for getting straight to work for a day. Have as little stuff to do in the morning as possible such as cooking breakfast and commuting. **Example**: One of the Japanese 10x developers told me he prefers to wake up early and prepare early as fewer meetings and inquiries occur in the morning.

## Knowledge and Experience gains
All lessons below are unsurprising, but many engineers tend to forget them after a while.

1. **Continuous learning**: Keep learning in addition to working hours. Technology is evolving rapidly every day, and learning is inevitable to enhance productivity in the long run. **Example**: When my previous company decided to add a new cloud service provider, a Japanese 10x developer learned the related material and got the provider's cloud certificate within a month. However, he was already an expert in another cloud service and had plenty of projects using that cloud service.
2. **Just write and debug it**: Most software engineers start their careers by writing, testing, and debugging code which requires a few years to get handy with. As their work is approved and respected, they are more involved with high-level technical designs and discussions. But 10x developers never forgot to do the most foundational things: write code and debug it. That is because they innately like pure programming, remember their first motivation when they were young, and hate to get their skills rusty. **Example**: Japanese 10x developers write 500~1000 lines of code almost every day. I was stunned by the number of new features and bug fixes they made through pull requests.
3. **Opportunity seeker**: The fast-paced technological advancements call for project and product managers to plan many new and innovative projects. These projects can be tough for developers, but they offer an opportunity to learn new skills and gain experience. **Example**: Most Japanese 10x developers are nerds and introverted, so they generally avoid talking and discussing with others. But when it comes to new technical challenges and adoptions, they start raising voices and expanding their opinions, especially for cool technologies.

## Conclusions
The 10x developers' traits and skills explained above come from my five-year working experience in Japan. But most essay contents are paraphrased by Chat-GPT, which is probably 1000x more productive than human engineers.

Cheers to 10x developers and the cutting-edge AI technology (^_^*)bbb