Meet the Global LINERs
Engineering
Jongyoun Ahn / iOS Engineering / LINE Plus
Jongyoun joined LINE in 2015 after working as an intern the previous summer. He has been involved with iOS development since he joined LINE, and he has worked on various LINE services, including the LINE Messenger chat rooms and LINE Pay. His current task is developing the photo gallery feature on LINE Messenger for iOS. Let's find out what Jongyoun has learned about being an engineer while working at LINE.
A quick three-line summary
- Jongyoun is in charge of camera feature development for iOS.
- Jongyoun’s LINE STYLE is “‘Good’ is never good enough”
- Jongyoun takes pride in LINE’s engineering culture with aims to surpass LINE engineers!
About work
Q Please give us a brief introduction to what it’s like working on camera feature development.
I’m in charge of developing the parts of the camera app that handle media features, like images and videos, for the iOS version of the LINE Messenger. Simply put, my job is to develop media-related features, like taking pictures with the LINE app camera or applying filters and adding text to videos. It is difficult to make bold improvements every time as the various features are developed in collaboration with other engineers and are intricately linked to each other. What I usually do is add features to the existing screen, such as adding a mosaic feature to the editor or a GIF shooting feature to the camera. However, since the client-side development is directly exposed to users, it is important to track the latest trends. We also work on improving the existing screen in its entirety every year or two and we are responsible for refactoring. Even now, one of my teammates is working on improving our video player, and, not long ago, we changed the camera feature as well as the editor. Also, since we have a two-week release cycle, we are less constrained by our schedule. Certainly, we do respond quickly to features that require immediate releases (for instance, seasonal events or responding to new iOS versions), but for other features, we feel less of a burden about postponing a release until the next version if we’re not satisfied with the quality of an improvement.
Q Do you have any special considerations for features used globally?
The camera feature of LINE Messenger looks the same by default no matter where it is downloaded or used. As this feature affects many users, we put more care into developing it. We also consider differences in the environment and interface for different countries and cultures. As some countries have relatively strict security policies, we sometimes have to customize procedures and features to comply with such policies. Also, some countries offer less stable internet connections and large number of users who rely on low-end mobile phones, so we must pay attention to even the smallest of errors that may arise. As for the planning aspect of features, we receive a lot of help from product planners who are familiar with the details of different countries.
Q What was your most memorable moment at work?
I remember the first time the camera feature was released on LINE Messenger. Previous LINE Messengers had used the default camera provided by Apple and didn't have any features for decorating or editing images or videos. As we began to develop an internal goal of enhancing media-related features for LINE Messenger to keep up on the latest trends, a team was organized to be in charge of gallery feature and I volunteered to join the team because of my interest in the field. I think we had a good time developing it because our team is all engineers who are really interested in this work. As for the camera feature, many issues arose here and there as it was a new feature created from the ground up, but we worked with the product planners and designers to address a range of issues and released the feature within the target period. I still remember the great sense of accomplishment I felt when we released that camera feature we had worked so hard on. The gallery feature still holds a special place in my heart. Since the gallery uses data from the user’s phone, the manageable scope of client-side engineers is extensive , which I find more fun. As it is relatively less affected by the server-side, sometimes the client-side takes the lead in adding new features. Features such as live photo and GIF support were prototyped through the ideas of client-side engineers.
Q Do you collaborate much with other departments or overseas entities?
In the early stages of development, we work closely with other teams, like product planning and design departments. While in the development stage, we communicate with a wide range of engineers, including those in overseas entities. We discuss and carry out tasks on a regular basis to ensure that all of us are developing first-rate features in our fields of expertise. The development process is usually carried out individually, but it is still common to make changes based on code reviews from colleagues or engineers from overseas entities. Although the features that I am currently developing are only being worked on by LINE Plus, because they involve coding within the overall LINE framework, it is necessary for other teams to provide feedback on how those changes affect other features. So, no matter where you do your coding, everything gets reviewed by everyone, and the engineers in each country share their opinions. Because engineers usually focus intensively on a single feature, it is difficult to get a sense of the big picture, so I find it immensely helpful to review each other’s work for any possible issues.
Challenges and failures
Q Everyone faces some challenges and setbacks at work. Please tell us about a failure you experienced.
I had a problem with a project I was assigned during my first year at LINE, developing a feature that allowed companies to upload videos to their Official Accounts. I was really excited because it was the first time for me to play a key role in an important feature. But the mistake I made was simply thinking, “All I need to do is develop a feature that inserts videos.” We found a lot of QA (Quality Assurance) issues during testing right after release. And because the code was large, the range of impact was greater than anticipated, affecting features that we never expected. The QA staff and our team members went through a lot of trouble because of me at the time (haha). Thankfully, our team members pinpointed the issues and made the needed debugging, but at the time I was on the verge of a meltdown. If I were to take a look at that code again, I’m certain that I could identify the errors, but I don't know why I couldn't back then. (Laughs) Today, this feature is still in use and runs fine, although it uses code that was refactored and reworked by another LINER (haha). I think all engineers have code that they wish they could just forget.
Q How about experiences that you were able to learn from?
Not long ago, I happened to be reading the code for a service that my colleague was developing. I find that when I read code from outside the company or open-source code, I often end up thinking, “Why was this code written this way? It would have been better if it was written another way.” engineerBecause I only work on code within LINE, I often overlook how great our internal coding is. When I read external code, it reminds me how well-written our internal coding is and how much I can learn from it. I believe I am already in the process of growing naturally from the feedback I get from our amazingly talented engineers and by doing my job. It’s such a positive environment, it naturally helps you grow as a engineer. Like that experience I described about failing with the video feature, when I went back and looked again at the code I once wrote, I could see clearly how much I’ve grown since then.
What do you need for success?
Q What kind of competencies do you believe you need to perform your work well?
To sum it up into three things, I believe that you need to be good at communicating and collaborating, at reading and writing code, and at thinking and contemplating over details. First, I believe that communication is the most fundamental competency because everything we develop requires communicating with others in related areas. Plus, I should be able to express my opinions clearly and directly about the feature that I’m working on. LINE has an environment that offers many opportunities for engineers who actively express their opinions, with a very “horizontal” culture. If you work on the projects you are interested in, it will help with both personal growth and service quality. In addition, it’s important to be able to accept the opinions of the people you’re working with. When I communicate frequently with others, I often easily find unexpected bugs and issues. Therefore, I believe that we need to communicate well in order to work well and improve. Next is coding ability, both writing and reading. In collaborating with other engineers, there is a culture of code review, reading and giving feedback. That’s why it is important for other engineers to have the capability to write their code in an easily readable manner, and it is also important for them to be able to read and rapidly understand and learn other people's code. As the saying goes among engineers, language is only a tool, and I believe that it is very helpful for a person’s development to be capable of clearly understanding code written in other languages. Last, but not least, people need to be able to think and contemplate over details. I believe that a habit of deep thinking, looking to add a degree of completeness to any feature being developed, is an important part of growing into a better engineer. When the basic code to a piece of software is written, the feature may run fine, but it is still important to continue refining the code, such as adding a little animation to it. When it comes to the LINE STYLE, I particularly like “Perfect Details” and I constantly check people’s feedback at the App Store to look for ways to provide users with a slightly better experience and improve usability.
Special experiences at LINE
Q Have you had any particular surprises or memorable moments at LINE?
I really believe that LINE offers the ideal culture and environment for me to grow as a engineer. This is an environment where, when you suggest ways to develop in a field that interests you, you get the opportunity to work on that. It is also an environment that allows engineers to focus on creating their own features without being burdened by a lot of extraneous paperwork, like other companies. It is also a significant advantage to have so many talented engineers around you, and being a part of a culture of talented engineers helping each other contributes greatly toward individual growth. Each engineer has a different style, so you can learn so much just from reading the code of other LINERs. Everyone here is eager to get better, which makes for an atmosphere where people quickly learn to apply new technologies. Swift conversion would be a good example. If you are a engineer, you already know that the larger the code base, the harder it is to change the existing code. I thought LINE would also be slow to convert from Objective-C to Swift. Contrary to my expectations, though, a majority of LINERs were on board to use Swift, and over 70%, have made the switch to Swift so far. Whenever new features are announced at Apple's WWDC, the Early Bird TF works hard to rapidly apply them and stay ahead of the trends.
Q Is there anything about the culture of LINE that you’d like people to know?
In terms of the day-to-day, what I like the best is that I am free to shape my working hours. For instance, I find it difficult to concentrate in the morning, so I spend my mornings exercising and usually arrive at work around 11 am or noon. I work for a while, have lunch, and then really dive into my work. I particularly like that I don't have to explain myself or change to fit others’ way of working. As for an especially positive experience, what comes to mind is the time I went to the WWDC, an event that any iOS engineer would love to attend. It is an awfully expensive event, but the company paid all the expenses, like the event ticket, airfare, and accommodations, so I had nothing to worry about and could just enjoy the event. Each booth with “lab” in its name had the engineers who had helped create each feature, allowing me to get their opinions on any of my questions. It was amazing to be able to share my thoughts with leading engineers in the fields I’m most interested in.
Wrap-up
Q Do you have any goals you really want to achieve?
Although we work together every day, I am always awed by my colleagues’ abilities. I ask myself if the new junior engineers will look at me the same way, and I feel that I am not there yet. I would like to keep getting better to the point where new LINERS look at me the way I see my colleagues.
Q Please leave a last thought for engineers who are interested in joining LINE.
I think few companies in Korea can handle large-scale mobile services like LINE can. Because our app has such a wide range of users all over the world, there are many things that need to be considered for the client-side development. That also means that the abilities of my colleagues is vast and extensive. The fact that a single, incorrect line of code of mine could cause a great deal of problems for our users creates a sense of tension and responsibility, but also a determination to keep getting better. If you want a job that will help you grow together with good people, come join us at LINE! We will be waiting for you!