Working in Colorkrew: Breaking Stereotypes
...I’ve always been interested in Japanese culture and admired how disciplined the people are. So, when I started looking for jobs, Japan was at the top of my list. While browsing a job website, I found a company called “Colorkrew”.
At first, I liked Colorkrew because it had a flat hierarchy and a salary that was kinda okay for senior engineers. As I moved to the second, third, and final interviews, I read more about the company’s blogs and achievements. I started liking it even more. The CEO was very open about his schedule, foreigners were treated well, and the company felt more like a community than a typical workplace. It didn’t match the strict, overtime-heavy, seniority-driven image I had of Japanese companies.
Working Remotely From Your Home Country
...Overview
As remote work continues to grow in popularity, more companies are adopting flexible policies to accommodate employees’ varying needs. For many people, especially those from other countries working abroad, the ability to work from their home country for a short period is an invaluable benefit. I recently had the opportunity to experience this firsthand, and I’d like to share my experience, how my company’s policy works, and the benefits of this flexibility for foreign employees.
Being a better team lead
...It can be hard to define what makes a “good” team lead, but you can always strive to be a better one. Since joining Colorkrew, I’ve taken on the role of Team Lead for our Workflow product, managing the team to ensure our work progresses smoothly and that we create the best products for our customers.
Celebrating New Beginnings: October 2024 Graduate Welcome Ceremony
...In Japan, many companies hire new graduates in large groups every April. However, Colorkrew hires throughout the year. This October, we welcomed two talented new graduates to our team.
One joined as an engineer, and the other joined the business team, working in product operations. One graduated from a university overseas, and the other graduated from a university in Japan.
Bloom Filter 101
...What data structure would you use to determine whether an entity is in a given dataset with speed? Many would answer “Hashtable” without hesitation. Hashtable performs well when accessing an entity among a group of entities: the average time complexity of its read operations is constant. Nevertheless, using Hashtables can be rather costly when dealing with large datasets. Hashtables need to keep track of every entity in the dataset, resulting in a linear space complexity.
Deciding to Grow
...Moving to Japan
The first time I came to Japan, I was a tourist. I spent 1 week here during my final year of college.
The second time I came to Japan, I was moving here, starting a new job and a different way of life.
In the 7 years between, I worked as a software engineer across many American cities and companies.
A Brief Introduction to Pagination
...For many software engineers, endpoints for retrieving a list of entities are probably their favorite to implement–all they need to do is build an SQL statement that grabs all the available items, along with some other minor tasks. It’s all fun and games until the number of entities in the database becomes a bottleneck, where each GET request returns tens of thousands of items. You start to see server-side logs bombarded with error messages highlighted in red. Your dear users, previously satisfied with your application, begin to complain about the increasingly lackluster performance. Your product manager is on the brink of losing it and taking out their frustration on you. What?! You say you want to prevent all this from happening? Pagination is what you need! It can drastically improve your endpoints’ performance and save your servers from overload. Today, I will define pagination and introduce the most common pagination techniques.
A More Elegant Alternative to Golang's Error-Handling
...Recently, I joined a new project at Colorkrew that uses Golang as its backend language. Almost everyone on the team, including myself, had no experience with Golang, so we had to start from zero. Learning Golang has been a rewarding experience so far. After all, it is one of the most in demand programming languages now. However, writing code in Golang is not all sunshine and roses. Unopinionated as I am, I still have my fair share of complaints, the biggest being the recommended way of error handling in Golang.
Separation of Concerns: Split Your React Components into Containers and Views
...Many frontend engineers probably have experienced the head-scratching moment when their React components become so gigantic that they keep losing their train of thought when navigating through their frontend code. To salvage readability, one of the most common practices is to split up the humongous React components into smaller pieces. Traditionally, they would do this by chopping up the JSX elements. This method can effectively improve the readability of React components whose sole responsibility is to display data. However, on top of displaying data, some React components are also responsible for retrieving data from the backend. The more effective way to make such React components readable is to separate them into Containers and Views. In this article, I will demonstrate how to divide a React component into a Container and a View based on the principle of separation of concerns.
RESTful API 101
...It is almost impossible for a backend engineer to be oblivious to RESTful API in the 21st century, as it is one of the most popular API types. We can mostly attribute its popularity to its scalability, flexibility, and simplicity, all of which are highly sought-after qualities in modern APIs. If you also find these qualities desirable, you should consider building APIs following the RESTful principles. In this article, I will explain what counts as a RESTful API and demonstrate how to design one from scratch.
Introduction to Functional Programming
...The first programming paradigm that most programmers in the 21st century learn is probably Object Oriented Programming (or OOP for short). Object Oriented Programming allows us to transform real-world entities into highly abstract models with descriptive properties and executable methods to simulate their behaviors in the real world. Despite its numerous advantages, such as readability, reusability, and maintainability, it also introduces immense complexity to state management. The difficulty in keeping track of the states of objects has led head-scratching exhausted programmers to churn out error-prone code and cause bugs that would take hours, or even days, to locate and fix. “Is there a way out of this undesirable situation,” you might ask. Here is the good news: a lesser-known yet widely-used programming paradigm called Functional Programming (or FP for short) can help turn the tide around and decrease the number of bugs we cause. In this article, I will explain what Functional Programming is and why it can help us avoid bugs.
OAuth Demystified: A Straightforward OAuth Tutorial
...Incorporating OAuth (short for Open Authorization) into an application might seem somewhat intimidating and disheartening for many entry-level software engineers. After all, they need to spend hours—or even days—implementing a complicated authentication process with the correct configuration, only to realize they have merely completed a tiny feature. Despite all the hard work it entails, OAuth is a safe and efficient way for users to grant websites and applications access to their personal information. Therefore, it is worth the effort to comprehend how OAuth works. In this article, I will break down all the steps involved in the OAuth process to help you kick-start your OAuth journey.
A Step Forward – becoming a software engineer in Japan
...Dear Diary – An opportunity
In October 2022, I embarked on my journey to Japan as a Japanese Language School student with the aim of starting anew in my professional career and evaluating my comfort level for potentially living here for the next decade. At that time, my proficiency in Japanese was limited to JLPT N4 certification, barely allowing me to engage in conversations or read signboards. Nevertheless, I felt optimistic about my upcoming Japanese Language education.
Embracing AI and Ocean Breezes: A Recap of Developer Camp at Enoshima
...
This Developer Camp holds a special place in my heart as it was my inaugural experience attending a developer camp. Set against the picturesque coastline of Enoshima, Japan, this camp combined technical presentations, team activities, and beachside brainstorming sessions.

Day 1: Arrival, Introductions, and Technical Insights:
We arrived at Ofuna station, did a quick grocery trip to stock up. then, we made our way to the accomodation located by the ocean in Enoshima. The first order of business was the introductory presentations. We had two sessions lined up. - 1st presentation allowed each participant to introduce themselves and share their background, fostering a sense of familiarity and camaraderie within the group. - 2nd presentation focused on technical topics, encouraging us to explore innovative ways to enhance our product or delve into any other relevant technical subject.