Company Retrospection

posted by donghyun

last updated

8 min read

태그

cover image

I’ve finished my three-year journey at Kakao Enterprise.

Every time I leave a job, I feel more relieved than bittersweet.

Some people describe quitting a job as “graduating,” which I think is not a bad emotional expression. However, I don’t think it’s the right expression. As an employee, the company is just a business partner to me, not an educational institution or a community. We’ve both done our best for mutual benefit, but we part ways when we can no longer pursue that mutual benefit.

That being said, there’s no doubt that I’ve learned a lot at this company. I gained valuable experiences and lessons, and I’ve been able to think more about how to act in similar situations in the future. Here are the lessons I learned.

Team Building

First of all, I was fortunate to join a great team as soon as I entered the company. A good team is one where everyone takes on appropriate roles, and there are one or two Key Players. As a junior developer, I felt lucky to have team members who inspired both jealousy and admiration, as well as role models to learn from and emulate.

I also realized how quickly such an ideal environment can be destroyed by external factors, which made me appreciate the value of such an environment and think about how to maintain it if the time comes again (though I haven’t found the answer yet).

One interesting episode in team building occurred when we were forced to work from home due to COVID-19. One day, some team members gathered during lunch to play board games. It was just a regular board game session, but afterward, in a weird way, I felt like I understood and trusted my teammates more. Even though we had spent much more time having tea together during work hours, nothing seemed to strengthen our relationships as much as that board game session did. Of course, it could be just me, but it at least made me think about which actions are more effective in team building. It also made me question whether tea breaks really help with team building.

Self-Reflection on Abilities

Experiencing burnout from immersing myself in development was also a valuable experience. A desire to prove my abilities to everyone drove me to work day and night, thinking only about code. Although I later realized I had spent too much time on trivial issues, having such an experience helped me understand how to work at an intensity that suits me.

In the end, what I realized through this experience is that I need to rely more on the team members around me and build trust with each other to create synergy. I’m not a great developer myself, and no matter how good I am at something, I can do it more efficiently with support. However, I also realized that I needed to immerse myself alone to come to this realization.

Elixir

Elixir is by far the greatest treasure I’ve gained from this company.

I feel very lucky to have learnt it while I was still a junior developer. Most mainstream languages these days apply multi-paradigms, so it’s hard to come across a language that allows only functional programming. When I tried to learn functional with Kotlin before, I found that object-oriented and functional clashed in my head, and it was hard to get the hang of both. Elixir, which is functional by nature, enforcing immutable data structures and making pattern matching the basis of all code, was a great first step into a functional language because its easy syntax and dynamic typing lowered the initial barrier to entry like Python.

This has narrowed my immediate career path a bit, but I’m sticking with Elixir for now, even if it’s hard. I believe that expertise in a main language that shapes my code design is essential. Of course, I should not neglect studying other languages either, as I’m a pragmatist who believes in using the right tool for the job.

Another important realization I’ve had is that when a team is using a minor language, it’s very much dependent on the technical leader who guided it. If a team is using a minor technology stack, and the technical leader who guided it leaves and the next leader doesn’t take it over properly, it seems to me that there’s a very good chance that the team will soon lose momentum. A team that is gradually losing its understanding of the technology it uses cannot be sustained.

Personal Regrets

As much as I’ve learned, I’ve also had a lot of regrets. These are the things I regret because I think I could have made better choices at the time, or I could have tried harder and done my best.

For example, I couldn’t contribute more to the developer community because I was busy with work. I feel guilty that I only took advantage of open source without giving back. I’ll try to contribute even a little bit from now on and get used to it.

Future Plans

I now feel that I’m at an important juncture on my way from a junior developer to a senior developer. Many people suddenly take on the role of a senior developer without being prepared, but I think I should take advantage of this precious time to consolidate the knowledge I’ve accumulated so far and practice showing off and exposing what I think I’m good at so that others will recognize it.

I’m also preparing to be able to go abroad at any time, which is related to my dream, but I think I should be prepared to go abroad at any time.

Overall

As I close this chapter at Kakao Enterprise, I find myself filled with gratitude and a wealth of experiences that have shaped me both professionally and personally. From understanding the dynamics of effective team building to diving deep into the nuances of Elixir, this journey has been nothing short of transformative.

While I may have left the company, the lessons I’ve learned are invaluable assets that I will carry forward into the next phase of my career. The importance of a supportive team, the need for self-awareness in one’s abilities, and the value of technical expertise in a chosen language—these are the pillars that will guide me in future endeavors.

Moreover, my time here has taught me the critical role of leadership, especially when navigating the complexities of technology stacks that may not be mainstream. It’s a lesson in both the fragility and the potential of teams, reminding me that the right leadership can make or break a project.

As I step into the next chapter, I do so with a sense of anticipation and excitement, eager to apply the wisdom I’ve gained and curious to discover what new challenges and opportunities lie ahead.