In this interview, we sat down with Sikhapol Saijit (“Sam”), a client-side iOS engineer who joined LINE Fukuoka in 2017 to learn more about creating user-friendly services.
Tell me about your career before joining LINE Fukuoka
I’m from Thailand and studied computer engineering at university in Bangkok. I’ve worked in software development ever since. My first job was working for a financial data platform company that provides investors with real time analytics and data. I worked on a couple of projects using C++ on Windows Server, and created internal system tools for monitoring and reporting using C#. This gave me a chance to learn more about web programming.
At around that time, smartphones were becoming more popular, and I was really interested in learning more about them. I took an online course from Stanford and bought a book to study iOS development. After studying for a while, I applied for a job at a start-up in Bangkok that was developing a project management platform for the web and smartphones.
In that role, I worked mainly with Objective-C and the Core Data and UIKit frameworks. The company had around 20-30 employees, and there were only three on my team. I worked on various tasks, such as bug fixing, UI design, and even feature implementation. It was a great initial experience to learn more about iOS development.
How did you come to move to Japan?
I had visited Japan a couple of times before, but it was a business trip to Japan in 2015 that convinced me that I wanted to live in Japan one day. I was surprised by how even big cities were clean and safe. The food is delicious, and I’ve always had an interest in Japanese pop culture, so I decided I wanted to live here. I initially tried looking for jobs, but found it really difficult without Japanese language skills. One day, a colleague showed me a job description written in English for a position at LINE Fukuoka. It mentioned that no Japanese was needed and that they would even support my Japanese-language learning. I was really impressed.
LINE is widely used in Thailand, and I thought it would be a great opportunity to work on a service that was so widely used and that I was very familiar with.
Did you join the client side team directly?
Yes. When I joined, LINE Fukuoka had three main iOS projects: LINE Shop, LINE Fortune, and the soon to be released LINE Creators Studio. There were five members on the iOS team when I joined, and as the app was due to be released in the coming months, I was tasked with bug fixing, implementing small features, and reviewing others’ code.
After the product was released, engineers were allocated to other projects, so my team shrank to just three people. It was then that I had the opportunity to work on larger features like image processing, drawing over images, cropping, erasing etc. I managed to really broaden my skill set.
What exactly is LINE Creators Studio?
LINE Creators Studio is an app that lets any user create their own stickers to use on LINE without needing to use a computer or complicated editing software. For example, users can just use their finger to trace their own face, their child, or their pet in a photo and crop out the background. It’s really easy to use!
What kind of tech did you use to achieve that functionality?
We used an algorithm called GrabCut (which is part of the OpenCV framework) to make editing out photo backgrounds quick and easy. It’s a simple and lightweight way of enabling users to quickly separate different areas of a photo for editing. For the project as a whole, we used Swift, Realm for database management, and the Core Graphics framework for image processing.
What kinds of challenges did you face during development?
I developed the eraser feature, and one of the biggest challenges I faced was that photos generated by modern smartphones can be pretty large (over 12 megapixels). This means the app has to be able to handle large files without any lag, since users with older iPhone models would notice a slowdown of the app when using the feature to manipulate big files. To prevent this, we had to ensure that we used Core Graphics as efficiently as possible to assist with image manipulation, and implement a vector graphic algorithm to make things run smoothly.
However, I had never used Core Graphics before. It’s quite a high-level API, but also requires knowledge of low-level APIs (like how the buffer and processes work) to ensure that you can use it effectively. Learning how best to use Core Graphics was a challenge, but also really interesting.
What kind of support do you get when learning new technology?
LINE Fukuoka offers really good support for learning new technology. Firstly, we have access to Safari Books Online - an online platform where you have free access to thousands of tech-related textbooks.
Also, every week we have a department-wide meeting where anyone is free to share something they’ve recently learned with the whole department. For example, the introduction of GrabCut for image processing was the result of a team member presenting the technology along with a prototype during a meeting; we saw its potential and implemented it into the app.
LINE Fukuoka also supports conference participation. You can go to as many conferences as you want in Japan and one conference internationally in a year. Every year we go to try! Swift in Tokyo, and last year I was lucky enough to visit WWDC in San Jose, California. If I hadn’t joined LINE Fukuoka, I don’t think I would ever have had the opportunity to go; it was a great learning experience.
What about support from within your team?
Currently, I’m the most experienced member on my team. I’m working alongside two newer members, so I’ve actually taken on the role of mentoring and supporting them.
What we normally do is break down work into smaller tasks, and I ask them what they would be interested in tackling. I encourage them to try first by themselves, and if they’re stuck or need guidance, I offer my opinion.
We conduct pretty thorough code reviews, and I think that’s one of the best learning tools we have here at LINE Fukuoka.
How does the code review work?
When an engineer has finished updating code or fixing a bug, they submit a pull request, which allows other members of the team to review their code and leave comments. There’s a real focus on making code that not only works but is also readable. Having your code reviewed by others in the team really helps you to improve the way you code. You also learn how other people tackle problems by looking at their code, and often find yourself researching different methods of tackling a problem. I find it to be a really useful system.
Aside from the technical aspects, how do you feel you’ve developed since joining LINE Fukuoka?
As mentioned, I’m now playing the role of mentor in my team. Previously, I didn’t have any leadership experience, so this is an area in which I feel I’ve developed greatly. I mentor my teammates, help them manage their tasks, conduct code reviews, and offer feedback and advice. I’m still adjusting to the role; it can be pretty tricky reviewing other people’s code as you have to adapt your thinking to their point of view, but it’s a rewarding process.
What are your goals going forward?
In terms of work, I want to implement some newer technologies into LINE Creators Studio. Recently I’ve become really interested in machine learning and think it could add value to the app. For example, the stickers that are created in the app are submitted for review before release. I want to use machine learning to check stickers before they’re reviewed to alert makers if the stickers are likely to fail. That way, makers can edit their stickers before submitting them for review.
From a personal standpoint, I’m concentrating on improving my Japanese. I recently took the Japanese Language Proficiency Test (JLPT) N2 exam and am awaiting my results. My goal with Japanese is to be able to enjoy my favorite anime, manga, and video games in Japanese.
That certainly is a motivating goal to have! Thanks for your time, Sam.
There are currently no open positions.