9oormthon RAID SPRING internal hackathon review: The story of the four Gurmi who created foormee

June 5th, the day before Memorial Day. As people went to the mountains, fields, and sea to take a break during the Stepping Stone holidays, darkness fell on Pangyo earlier than usual. Only Cloud Square, located on the 9th floor of Pangyo PDC, was lit in the dark until almost midnight. 9oormthon RAID SPRING was in full swing there. 

9oormthon RAID SPRING is goorm’s first in-house hackathon. It lasted 24 hours from 10 a.m. on June 5 to 10 a.m. the next day. A total of five teams participated under the theme of ‘Improving cloud services and back office work using generative AI.’

This article is a memory of that day compiled by Jessica and Roah of the ‘Jeil Moro’ team who participated in 9oormthon RAID SPRING, and hackathon operator Snow.

by Jessica, Roah, Snow

There’s an in-house hackathon?!

One leisurely day, the goormee(at goorm, the members are called ‘goormee’) were very excited about an announcement posted on the Slack channel. It was because of the news that Cloud’s first in-house hackathon would be held. I was eagerly waiting for the in-house hackathon to be held, but because it was such a busy time, many people hesitated to participate.

Nevertheless, some were active in participating. Mono, a full-stack developer at IDE SQD, was one of them. In the recruitment announcement on the 9oormthon RAID Slack channel that said, “Looking for someone to participate together,” ilium, in charge of cloud LEVEL service planning and programming content production, and Roa, who is in charge of the infrastructure engineer role in the SRE squad, raised their hands one after another.

Mono was in charge of ChatGPT prompt and backend, Roa was in charge of ChatGPT API and frontend development, and Illium was in charge of service planning. All that remains is one designer. Is it because I am not familiar with hackathons? Designers were not easily recruited. You can’t just keep wasting time. First, we had to decide on a team name and idea.

The obsession with winning becomes the team name and idea

When the three met for the first time, they were filled with anticipation and confidence rather than awkwardness. It wasn’t that difficult to decide on a team name. It is ‘most likely’. The pure Korean word ‘Moro’ refers to atmospheric optical phenomena such as a halo of the sun or a halo of the moon. As the goal was to win, we named it Jeil Moro with ‘Jeil’ meaning ‘the first among many’.

The theme of this hackathon was to improve goorm services and back-office work using generative AI. Several ideas emerged, including a service that answers customer inquiries with generative AI. Among them, the topic we chose was ‘Functional Algorithm Problem Generator’.

It wasn’t a completely new idea. goormDEVTH, Cloud’s coding testing service, has long been a topic discussed as pain points(products/services that continually cause inconvenience to customers), but has not yet been provided.

There was also a business reason for deciding on this idea. Competitive services have an increasing number of functional problems, but goormDEVTH are not yet available. Customer preference for functional problem types was also high, so provision could not be delayed any longer.

Creating functional algorithm problems takes more time than general problems. If this was automated, it would certainly be possible to receive good scores from the judges.

Recruit a designer!

The team name and topic were decided, and all we had to do was gather the last team members. I made suggestions to people around me to hire a designer from time to time, but they all turned me down. One day, just a few days left before the application deadline. Someone shyly raised their hand in a post recruiting designers on a Slack channel. This was Jessica, who works as an education operations manager at EDU Biz Division. Her college major is ‘design’. There was nothing to worry about. Most importantly, it was the moment when the team became a complete ‘team’.

(From left) Jeil Moro Team‘s Jessica, Ilium, Mono, and Roa

Q. I’m curious about your reason for participating!

Illium_ I am in charge of goormLEVEL service planning and programming content production. When I participated in the hackathon, my job had just changed from production to planning, so I wanted to prove my abilities as a planner. The hackathon was that opportunity.

Jessica_ I joined goorm last winter as an education operations manager. I mainly work on communicating with students, but I also became interested in coding education content, so I am also in charge of content development and planning. I participated in the hackathon with the expectation of being able to create something with people I had never worked with before. Above all, I thought it would be an opportunity to think about the pain points and needs felt by goorm internal members while working while creating a back office product.

Mono_ I am doing full-stack development in IDE SQD. These days, I am in charge of more business work than development work. Maintenance and creating a new product are completely different. As I was feeling inadequate, I wanted to test my skills and participated in a hackathon. 

Roa_ I work as an infrastructure engineer at SRE SQD. It may be a little unfamiliar, but SRE SQD is responsible for building, monitoring, and responding to failures for the entire goorm service. I am also in charge of infrastructure automation.

Before joining goorm, I experienced several hackathons at the IT venture startup club. I participated directly as a developer and ran a hackathon myself. I already knew how fun it was to work as a team to create a product in two days without sleep. The topic of utilizing generative AI seemed particularly interesting.

Need ‘evidence’

As new team members joined, we had time to reexamine our ideas. Since we work in different businesses and do different things, the level of understanding of ‘ideas’ was bound to be different. There was a need to clearly understand ‘idea’ and ‘business’ from the members who would implement the idea.

As I was concretizing the idea, I became more concerned about why this service was needed and how the UI should be provided. At that time, Jessica suggested, “Then, shall we take a survey?” The idea was that if we could understand customer needs and improve our understanding of the service, we could provide a basis for planning and find clues to UI design.

The work proceeded smoothly. Jessica drafted the survey, and Ilium provided additional comments based on his experience working as an algorithmic content creator. The survey was individually requested from the algorithm study community and team members’ colleagues (developers). About 50 people took the time to respond. Below are the survey results.

Figure_ Algorithm problem type preference survey results

The survey results were not significantly different from expectations. No, our thoughts were exactly right. 81% of respondents preferred functional problems. The reason was that there was no need to consider input and output, and one could focus only on logic (problem solving). Some said that they were familiar with it because they had solved a lot of functional problems when preparing for the coding test.

The survey strengthened my belief in the ‘idea’. It was a great help in determining the direction of development and UI design by being able to understand what customers were having difficulty with and what they wanted.

It is not easy for all team members to participate with one mind and will when each person has their own work to do. This is especially true if you implement an idea that is not well-regarded or understood. The biggest thing we gained from the survey was that we gained confidence in the idea.

9oormthon RAID SPRING Curtain Rises

June 5th at 10 am. Cloud’s long-awaited first hackathon has come to an end. A total of five teams participated. After a brief event introduction, each team’s base camp was decided. The walk to base camp was light. There was no feeling of nervousness. This was because I had prepared more thoroughly in advance than anyone else.

Without anyone telling us to do anything, we each started doing our jobs. Jessica was in charge of UI design, Mono was in charge of ChatGPT prompt and backend, and Roa was in charge of frontend development and ChatGPT API integration development. Illium prepared the presentation materials because all planning was completed. Presentation was also very important for winning.

The design went smoothly. This was thanks to the use of GDS(Goorm Design System). GDS is a type of template that pre-designs each component used in the Figma UI in a cloud style. You can design the UI by placing each component. You can design services quickly while maintaining the design unity of goorm services.

There were no major difficulties in development. We decided early on to use ChatGPT as generative AI. Since it can be embedded in the goormLEVEL service in the future, we decided to use goorm’s technology stack as is. As a development tool, we used goormIDE, goorm’s cloud-based integrated development environment. I usually develop cloud services using goormIDE (it is not mandatory), and goorm’s technology stack (React, Node JS) is also provided as a basic stack by goormIDE, so I need to spend time building my own development environment. There was no. Except for ChatGPT, there is nothing new to learn.

9oormthon RAID SPRING scene

Conquer the prompt

If I were to pick one thing that was the most difficult, it would be none other than the ‘prompt.’ The dictionary meaning of prompt is to instruct and remind people of lines or actions in a play. In generative AI such as ChatGPT, a prompt is an input value that explains to the AI ​​in natural language what to do and outputs the desired result. Since the quality of ChatGPT answers varies greatly depending on the prompt, the implementation of this idea depended on the prompt.

ChatGPT was given the role of ‘algorithm content creator’ and tasks according to the role were defined as a system. I sent the code to ChatGPT and created a prompt to output the results by dividing them into a functional problem and input code. Content variable names and fingerprint conventions were learned, and functional code templates were also learned. Because the right result comes only when the request is clear, the prompt was modified again and again. The prompt was literally a race against time.

Figure_ foormee’s learning process created by the Jeil Moro team

Functional algorithm problem creator ‘Purmi’

After much effort, we were able to complete the functional algorithm problem creator. It was also named ‘Foormee’. In Foormee, foo is the name of any variable or function name. It is a compound word combining ‘foo’ and ‘goormee’, which refers to cloud members.

Foormee creates a variety of functional content by giving one set of code. It was designed so that the UI is friendly to creators and can be easily embedded in goorm services. If Foormee is built into goormDEVTH in the future, coding test takers will be able to decide on their preferred problem type.

Purmi demonstration video

For example, if you ask Foormee to convert the following code into a functional form, Foormee will create a functional problem (Part A) and an input code (Part B). Candidates look at functional problems (Part A) and solve them. If it took about 20 minutes to convert a general algorithm problem into a functional form, Foormee took about 1 minute.

Definition code (Python)
import sys
input - sys.stdin.readline
n = int(input())
arr = list()
for _ in range(n):
	s, e=map(int, input().split())
	arr.append([s, e])
arr.soft(key=lambda x : (x[1], x[0]))
count = end = 0
for s, e in arr:
	if s > end:
		count += 1
		end = e
Purmi conversion result (Python)
#Part A(Functional Problem)
def solve(n, arr):
	result = 0
	return result

#Part B(Input Code)
import sys
input = sys.stdin.readline

n = int(input())
arr = list()
for _ in range(n):
	s, e=map(int, input().split())
	arr.append([s, e])
print(solve(n, arr))

What the Hackathon Left

June 6, 9 a.m. Now all that remains is the hackathon announcement. Promoter Ilium introduced ‘Foormee’ to the judges and participants. He came up with the idea of ​​a functional algorithm problem creator, defined the problem, and calmly presented how it could be solved. It is often said that words become seeds. Just like the adage(?) about being careful what you say, we won. 

2 days and 1 night. It was not easy to immerse yourself in development for 24 hours a day without resting all night long. We are one, and we completed the ‘marathon’ called a hackathon without even feeling tired toward a common goal. With that, goorm’s first in-house hackathon, 9oormthon RAID SPRING, came to an end. We have all returned to our respective seats, but the ‘passion’ shown by the 20 goormee who participated in the hackathon will be remembered for a long time in all of us. ☁️

Q. What do you remember most?

Illium_ I remember the first time my functional algorithm code was successfully converted. While I was happy, a part of me was worried about how I would make people understand why this was so great. My experience as an algorithm creator and the survey that Jessica helped me with helped me a lot, so I was able to appeal ‘Foormee’ well.

Jessica_ First of all, it is a rare opportunity to communicate with other teams (Division, Squad) and directly experience cloud services that I was previously unfamiliar with. It was. I especially remember planning and designing with Ilium, creating a prototype, and revising the design and functions with feedback from Roa and Mono to improve completeness.

For example, the function to convert to Python, JavaScript, and C++ languages ​​was created as a toggle (On/Off), but it was changed to a check box and the Create button and Initialization button were created. I received feedback about putting it at the bottom. UI and UX have become much more natural in terms of user flow. It inevitably takes time for ChatGPT to convert the code, and we also improved the UX in response to the suggestion to add a progress bar during the front-end development process. It was an experience that made me think again about the meaning of working ‘together.’

Mono_ What was most impressive was that not only our team but all five participating teams completed the race without giving up until the end. I was exhausted and would take a break every now and then, but other people stayed up all night without resting even for a moment. In particular, seeing the results produced after the hackathon being used in work made me think again about the meaning of this hackathon.

ROA_ I remember checking the ‘needs’ of actual users. Personally, when solving algorithm problems, I prefer general problems. So I was very curious about user needs for functional problems. After looking at the results of the survey that Jessica suggested, I found out that my thoughts were wrong.

After confirming user needs for functional algorithm problems, my belief in the idea grew. It was a great help in determining development direction and improving user experience. It seems that the product has become more solid through the process of listening to users’ voices and developing ideas.

Q. Lastly, please leave anything you would like to say.

Illium_ It was my first time thinking so deeply about a ‘topic’. It was ‘goormly’ and it was difficult to find something the customer wanted. I’ve participated in hackathons a few times before, and I used to think that this would work. In this hackathon, I felt that I grew further as a planner in the process of thinking about what customer needs are, why they have these needs, and how to satisfy them.

Jessica_ I participated in this hackathon as a designer, and I was very worried about what would happen if the draft design was delayed and development was delayed. However, I was grateful that the team members thought together and gave their opinions to improve the completeness of the product even though they were tired. Thank you to Mono, Roa, and Ilium.

Mono_ I think it was a good opportunity to learn and grow by working with people I had no contact with. I was able to gain energy to immerse myself more in the field by taking a break from the actual work and engaging in somewhat unfamiliar planning and development. It was also nice to be able to think about products other than the one in charge.

Roa_ Illium, the planner of Jeil Moro, who first proposed and presented this idea, created a cool design that matches the goorm while considering usability. We were able to win thanks to designer Jessica and developer Mono, who did not rest even after completing product development and even refactored the code.

Please wait until the products made by 9oormthon RAID SPRING are serviced in the goorm. Lastly, I would like to thank the operators who stayed up all night together to prepare a great hackathon.

Posted by
snow cho

I'm the DevRel Manager at goorm Inc. I oversee COMMIT and our technical blog. I believe in transforming the development culture, akin to how snow blankets and melts away the world, and strive to improve it. Recently, I've been in the trenches seeking contributors and speakers for our technical blog.