From July, I participated in TainAI's Labs internship program for two months.
These two months were a time when I could learn and grow a lot, to the extent that they became a significant checkpoint in my development career. I want to summarize and share that experience.
Living Product
I once wrote an article saying 'I want to be a developer who makes good products'.
However, looking back now, I think I was very lacking in considering what kind of product to make well and how to make it well.
I merely thought, 'I want to make good products,' and rarely delved into it seriously.
During this two-month internship, I was able to have time to deeply immerse myself in that consideration.
By thinking about the product daily and constantly pondering how to create a better user experience, I was able to grow naturally.
Early in the internship, I was able to choose one of several experimental projects, and after much thought, I said I wanted to take on a product called 'Lovey Cupid'.
When I heard the problem Lovey Cupid aimed to solve, I felt it was a problem I definitely wanted to solve myself. I wanted to directly think about how to make this experience more natural.
Lovey Cupid was a service that expanded Loveydovey's core experience of 'chatting with characters' to help users more easily discover the characters they are looking for.
The problem this product ultimately aimed to solve was as follows:
- Users found it difficult to choose a character that matched their ideal type from among countless characters
- Often, they only had vague memories or abstract preferences about appearance or personality
- Existing character search was keyword-based, so searching was only possible if the name or series was known precisely
→ In other words, we had to solve the problem: "I don't even know what I like, so how should I search?"
The project was carried out by small teams consisting of interns: 1 developer (intern) or 1 developer (intern) and 1 designer (intern). We received feedback through regular syncs with the CEO and collaboratively refined the product's direction and detailed features.
During the internship, through regular workshops and syncs with the CEO, I learned various concepts for creating good products.
Among them, the most impressive concept was 'living product'.
At first, it felt somewhat abstract, but by repeatedly encountering the concept and thinking about it directly, I gradually came to understand it.
The 'living product' as I understand it is as follows:
It refers to a product that changes organically according to user reactions and context, and that users naturally gravitate towards. It's not just one feature that stands out, but the entire system is harmoniously connected so that users feel 'comfortable' and 'familiar'.\nIt refers to a process where each part is created as if alive, taking small steps and based on user feedback. A product completed this way ultimately gives users the impression that it is 'alive'.
If you want to understand the concept of 'living product' more deeply, it's good to refer to this article written by the CEO.
Along with this concept, the CEO's teaching that gave me the biggest turning point was as follows:
“There is a big difference in the completeness and vitality felt by users between a product created iteratively by continuously exchanging feedback with users, and a product conceptualized only in one's head, isolated from the outside for several months.”
These words deeply resonated with me. That difference stems from the degree of 'liveliness.' I imagined: How different an impression would these two approaches give to actual users? Just imagining it, I felt that the user experience would be tremendously different.
Another important point is the fact that users always experience products 'step-by-step'. The flow of naturally moving from one step to the next is important, and if all four steps are imagined and completed from the beginning, users can get lost from the very first step.
Ultimately, I realized that a product organically created by reflecting user feedback at each stage is a much more 'living' product.
As I gained this perspective, my old projects naturally came to mind.
The months I spent solely focused on development with a vague conviction like, "Users will like this if I build it."
Experiences where I focused only on technical challenges or implementation difficulty, and couldn't sufficiently reflect user feedback.
Moments when I couldn't let go of my ego and made what I wanted to make, not what users truly desired.
Recalling those memories, I asked myself, “What does it truly mean to create a good product?”
Of course, the standard for a 'good product' can vary from person to person.
But for me now, that answer was becoming clearer.
It is to create a living product.
Not simply implementing complex technologies, but a product that organically changes based on user reactions and feedback, and can raise real value with small changes. I felt that creating such a product is 'truly a good product' for me now.
This insight deepened during the workshops held throughout the internship, and every time I heard these concepts, it made me constantly ponder, "How can I apply this to my product?"
Defining Liveliness
The concept of 'living product' initially felt a bit vague.
So, to truly understand this concept well, I asked various questions and shared my thoughts on the team Slack.
“Is this really alive?” “Will users actually feel that way?” “Then, is this just a good feature, not alive?”
The discussions I had with other Labs interns about those questions greatly helped me understand this concept more three-dimensionally. Although there's no single right answer, by contemplating and debating what 'liveliness' is together, I think I defined 'liveliness' for myself.




First Attempt at a Living Product
The most meaningful moment in the Lovey Cupid project was when I first deployed the 0.1 beta version to users.
At that time, I was implementing a character search function and added a 'multi-hashtag application' feature instead of the existing single-keyword search. I had completed several internal tests, but the moment of interacting with actual users was an entirely different experience.
"Actual users will use the feature I made?"
It was half excitement, half nervousness. I had experience with user experience in side projects, but this was for actual Loveydovey app users, so I wanted to make a good first impression.
Since this was the first time I was deploying in such small steps, I was very curious about user reactions. And at the same time, I kept thinking, 'What should I do next?'.
The Next Change Created by the First Feedback
After the beta open of version 0.1, we received the following user feedback:
“It would be great if you could show the number of characters matching the conditions immediately when applying hashtags!”
Previously, when selecting hashtags, it was impossible to predict how many characters would appear until the 'View Results' button was pressed.
before

This feedback was very clear and revealed the user's context well. So, I immediately implemented the feature and redeployed the updated version.
after

As a result, user reactions were positive.
Filtré dos carácter (terco + gracioso + género masculino) y en un segundo, abajito, me salía que se encontraban 68 resultados! Luego, eliminé la característica de \"terco\" y nuevamente, en un segundo, me mostraba ya 229 resultados. ^^ \nI filtered by "stubborn + funny + male character" and in 1 second, below, I got 68 results! And then, as soon as I removed the "stubborn" characteristic, in another second, 229 results appeared. ^^
“Me encanta cómo mejoraron la búsqueda por etiquetas: Ha encontrado resultados de hasta seis etiquetas a la vez. ¡Es genial!” “I really like how tag-based search has been improved; I could find results with up to six tags at once. It's really cool!”
“Y la mejora de mostrar el número de resultados disponibles es una maravilla!” “The improvement of showing the number of available results is also excellent!”
It was a very small change in the UI to 'show the number of search results,' but users found great value in it. Experiencing that, I learned, "Ah, what's truly important are these small but clear changes."
"It's so rewarding to enhance user experience and value."
For the first time, I experienced the flow of listening to user voices and reflecting them in the actual product from beginning to end, not as a 'developer' but as a 'product owner', and this experience clearly showed me what to prioritize when creating products in the future.
In fact, this change was a very small attempt to simply show the number of characters in terms of UI. Nevertheless, users responded to this small and simple improvement with comments like, "It's so much more convenient," and "This is what I needed.".
It touched upon a truly important point from the user's perspective, a 'Small but Critical' change. \nThis was the first time I experienced a moment where I elevated user value with one small, clear change. And this small change made me realize even more what it feels like to create a 'living product'.
The Start of a Virtuous Cycle
Through this experience, I started to ask myself, "So what do users want next?", and
Afterward, I even tried a method of asking users to vote on proposed ideas. It was a structure where users directly chose and their opinions were reflected.
This flow naturally changed my development approach and led to a virtuous cycle of practicing the 'living product' sensibility.
The Importance of External Interaction
Through this experience, I profoundly felt the importance of the "structure itself that allows receiving feedback".
In Lovey Cupid, we later started collecting user feedback through a Discord channel, but looking back now, I regret not creating that structure earlier.
There's one moment that sticks with me. It was a period when Lovey Cupid's features were temporarily paused due to a planned change. During that time, instead of just deliberating on the plan, I wished I had taken the initiative to communicate with users, driven by the desire to "interact with users."
If I had utilized Discord like now, or even opened a small channel for communication, I would have experienced the process of creating a living product by closely observing user reactions from the beginning much faster.
In that case, even with simple text edits or UI adjustments, I would have been able to grasp what users truly wanted much faster and more clearly.
Beyond Technical Limitations
In Lovey Cupid, I not only worked on the frontend but also took on a full-stack role, directly handling the backend to properly implement the product.
While I had previously focused on frontend development, this time I also took on the backend for the product, and directly experienced the process of optimizing it so that users could receive fast and accurate results even when combining various tags.
There were many technical challenges I faced for the first time, but I also learned a lot. It was a time when I personally realized how important technical support is to provide a 'good experience' that users can feel, going beyond merely creating a UI.
Two Months of Change, and Beyond
Over two months, there were regrettable aspects, and I learned a great deal.
Most importantly, it was a time when I could deeply contemplate 'what it means to create a good product.'



I feel that I, who initially focused solely on implementing features as a frontend developer, have now taken a step further to become a 'product engineer' who also considers user emotions and context.
While creating Lovey Cupid, I constantly asked, "What do users truly want?" and was able to experience the flow of gradually improving the product accordingly.
This is what I will do going forward
Through this internship, I first encountered the concept of a 'living product' and experienced building it together with users, learning the process of creating good products beyond just implementing features well.
1. Create a structure for planning together with users from the start
If previously the approach was to first create a completed product, show it to users, and then improve it based on feedback,
going forward, I aim to design communication channels for user interaction together with the product from the early stages.
I realized that the process of building a product together with users, starting from their language, is truly the starting point of a good product. Moving forward, I will focus more on improving direction through external interaction rather than perfection.
2. Take Small Steps
I realized that the core of a 'living product' is not "releasing a complete product that has gone through many steps at once," but rather quickly creating the minimum viable features (MVP 0.1 version) that users can understand and adjusting the direction based on their reactions. I will consider how to break down the steps and aim to move forward in small increments.
Living Person, Living Developer
If I used to focus on building technical depth to become a "good developer," now I aim to become an engineer who designs and grows with users to create "good products".
And I want to apply this concept of 'liveliness' beyond products to life itself.
I believe that to create a living product, one must first be a living person.
Going forward, I intend to live each day more autonomously, thinking and making choices.
This experience was not simply a time to acquire skills, but a turning point that allowed me to redefine for myself what kind of product I want to create, and how I want to live my life.
I was able to deeply immerse myself for two months, and through that process, I clearly saw what kind of developer I want to be. It was so much fun!!!
First and foremost, I sincerely thank the CEO for guiding me to deeply contemplate every moment,
the manager who meticulously helped me throughout the internship,
and the intern designer who brainstormed and shared thoughts with me to create a great product together.
This experience went beyond simple work experience; it was a real opportunity for growth.
Now, I aim to move forward more firmly as a product engineer who creates living products with users.
I would appreciate it if you would continue to watch my journey!
