2025-1-30

One Japanese dives into nwHacks, one of the largest hackathons in Western Canada

Recently, I participated solo in the hackathon nwHacks held in Canada.

It turned out to be, without a doubt, the best experience of my life, so I decided to transcribe everything I experienced, felt, and thought. I hope this account serves as a useful reference for anyone interested in or planning to participate in an international hackathon.

What is nwHacks?

nwHacks is one of the largest student hackathons in Western Canada. It is organized and run by nwPlus, a student organization composed of aspiring programmers and designers centered around the University of British Columbia (UBC). A distinctive feature is that it is an in-person hackathon.

In the nwHacks I attended in January 2025, there were about 734 hackers participating. In the 2024 event, there were 734 hackers, so it seems that the participation typically hovers just under 800. Participation is open to current students or those who graduated within the past year.

participants

Similar to hackathons in Japan, teams build a product over two days and ultimately present it to a panel of judges through presentations and demos. Specifically, you have a 24-hour development window-from 12:00 on Saturday to 12:00 on Sunday. This means that you need to complete your ideathon phase by Saturday morning. During the hackathon, booths provided by sponsor companies allow you to utilize resources the offer and even engage in Q&A sessions for potential internships. There was also technical support provided by mentors, so if you got stuck technically, you could ask for help. However, given the high number of participants, it sometimes felt like there weren't quite enough mentors.

Right from the start, it was clear that this was an event open to everyone regardless of year, major, or programming skill level. Various workshops were held, offering opportunities to learn the basics of git, APIs, React, and even how to use design tools like Figma. Unfortunately, since these were in-person events and I was scheduled to arrive in Canada just the day before the hackathon, I couldn't attend them.😢

Reasons and Background fo Deciding to Participate

First and foremost, I love the intense energy of hackathons and have participated in many of them. Among the challenges I wanted to tackle while still a student was the idea of joining an international hackathon. While researching international hackathons with a friend, we discovered nwHacks. About a year before the event, we decided to apply to nwHacks. I prepared by participating in hackathons in Japan as practice and by studying English. Although various circumstances meant that my friend ultimately could not participate, I am extremely grateful to him for giving me the opportunity to have this once-in-a-lifetime experience.

Additionally, I have a strong desire to work with international engineers in the future, and I saw this as a great opportunity to gain real team development experience with overseas engineers.

While these were my stated reasons (and the aren't lies), I really struggled with whether I should participate alone when my friend couldn't join. Despite studying English enough, I was filled with anxiety about whether I'd be able to communicate effectively and keep up with the technical skills of international engineers. It was honestly quite scary. However, I knew that if backed out now, I would regret it later-and the thought of continuously choosing to run away scared me even more. Ultimately, I decided to go to it. "To overcome myself" became my biggest motivation.

Preparation and Procedures

Long-term Preparation Period

English

Needless to say, English is indispensable as the primary communication tool. One of the main things I did was to enroll in additional speaking classes outside my university curriculum. These classes were offered during the first semester (April to July), and I made good use of that period. However, there was a problem: there were no English classes in the second semester (October to February). So, I negotiated directly with the teacher who had taught during the first semester, and he agreed to hold special classes every week. I am truly grateful. The main focus was on reading many Western books outside of class and sharing their content during the lessons, which greatly improved my vocabulary, listening skills, and quick-thinking in speaking compare to before.

Application

Not everyone can participate; you need to pass a document screening. The application documents had to be submitted between late November and early December. Although I don't remember the exact questions, I recall that they asked things like "Why do you want to participate?" and "What are your expectations from nwHacks?" You also had to submit a résumé summarizing your accademic background, work experience, and past project. For those who have never created an English résumé, I recommend the open-source OpenResume. Once you fill in the required information, it automatically formats the résumé for you.

I received an email stating something like "After reviewing over 1600 applications, we invite you to participate," so I assume the screening ratio was roughly 2:1. Although I don't know the criteria for those who ere rejected, I had clearly indicated in my submission that my English level was B1 on the CERF scale, and I passed the screening. SO, there's no need to worry too much about your English proficiency.

Just Before the Event

Announcement of Application Results

I received the result of my application on January 4th, just two weeks before the hackathon. Until that notification came, I wasn't sure if I would be able to participate, so I couldn't book any flights or accommodations. I wish I had been notified a little earlier...

Accommodation

After receiving the participation confirmation, I started searching for accommodations. I mainly used Airbnb and Booking.com. At that time, I was still half in doubt about whether I would really participate, so I specifically looked for places with "free cancellation."😅 I was also eager to explore the area after the hackathon, so I considered the location of the accommodation carefully.

In the end, I stayed at a place roughly halfway between Vancouver International Airport and UBC, and the location was ideal. In hindsight, when I noticed that the Wi-Fi SSID was "MakeFriend"-suggesting a dorm-like vibe-I sensed the atmosphere and was able to strike up conversations with other guest, which made for great memory.

Flight Tickets

Once you buy a place ticket, you can't cancel it, so I had to make up my mind to participate. I purchased my ticket about a week before departure. Since it was off-season, I managed to get a round-trip ticket for around 160,000 yen. It was a flight with a transit in Korea, but the flight from Korea to Canada was delayed by six hours. Originally, I was supposed to arrive at 15:00 the day before, but I eventually landed at 21:00. with immigration, baggage claim, and all that, I reached the accommodation around 23:00. Fortunately, I was able to sleep immediately and prepare for the hackathon the next day, although I do regret not having a more relaxed schedule.

As an aside, during that six-hour delay at the airport, I was so bored that I tried developing an AI agent using Cline×DeepSeek for the first time, and I though, "This is something I can use in the hackathon!"

Flow and Experiences on the Hackathon Day

Below, I summarize what I did and how I spent my time.

Day1

9:00-11:00

9-11

After 9:00, I was able to enter the venue and proceeded with the registration as soon as I got in. It seems that if you don't register by 11:00, you lose your right to participate, so punctuality is key.

During this time, there is also an opportunity to form teams, but you can also join teams or gather team members via the Discord server that you were invited to beforehand. I managed to find my team on Discord, so I used this time mainly to break the ice with my tem members. Our team consisted of one PM/designer, one front-end engineer, and two back-end engineers (including myself). The details of the product we built are described later in "Outcomes and Results."

There were also booths set up by sponsor companies, including those from various tech companies, government agencies, and even the Canadian military (mainly cybersecurity-related), which was quite interesting. I also saw people gathering information about internships.

Depending on the team's plan, this time can be used for brainstorming or confirming the direction of the project.

11:00-12:00

11-12

At 11:00, the opening ceremony started, featuring greetings from sponsor companies. However, there were so many participants that not everyone could fit into the opening ceremony venue.

12:00-16:00

12-16

The development officially began at 12:00. If your Github repository was created before this time, it would be considered a rule violation. Thanks to our PM, who had clearly summarized our idea, MVP, and the technologies we would use on Notion before the start, it was very clear what needed to be done, and our development efficiency was high. While we made some changes during communication, we were able to proceed without drastically changing the initial design. It was a moment when I truly realized how much the PM contributed to our efficiency. For the database, we decided to use Firestore, so we worked on the basic design, documentaiton, and setting up collections.

At 13:00, two slices of pizza were provided for lunch. Meals throughout the hackathon were free, which was greatly appreciated. meal1

16:00-21:00

16-21

On the back-end side, by this time I had completed implementing the basic APIs that the application would call. In addition, I finished building the API for one of the main (planned) feature-the recommendation function. Unfortunately, du to time constraints, we were not able to implement the recommendation feature in the app. and that API ended up not being used, which was disappointing. But that's just part of the hackathon experience.

The atmosphere of the venue can be sensed from the photo below. Teams worked at their respective tables in an open space. There was another separate space provided as well. It was fun being able to see what other teams were building, and approaching teams who were working on interesting projects to ask questions is one of unique aspects of an in-person hackathon.

venue-atmosphere

Around this time, a Subway-like sandwich was provided for dinner. It was quite spicy and personally very delicious.

I also attended one of the activities called the TechTogether Meetup. In this session, everyone sat in a circle and discussed various topics about software in an open, relaxed manner. Although there were some topics that were difficult to follow in English, we exchanged information on "the most important soft skills" and "methods to keep up with new technologies."

21:00-24:00

21-24

Since most back-end task were finished, I switched to working on the front-end. We were developing with React and TypeScript. Although my experience with React was almost non-existent and I struggled a bit, I really enjoyed watching modules being added to the screen using Mantine, a React UI library.

I also joined a karaoke session briefly during this time (as a listener). It was quite lively. I even noticed some people coding with their editors open while others were singing.

Day2

0:00-9:00

24-33

night-snacks

There was an abundance of late-night snacks, so I never felt hungry throughout the hackathon. Some teams worked through the night without sleeping, while others took proper rest. In our hackathon, including my team, it seemed that more than half of the teams pulled an all-nighter. If needed, there were even nap spaces available for a quick sleep.

At this point, the front-end development was nearly complete. However, we struggled with integrating the Llama API into our product. After much trial and error, thanks to another genius back-end engineer on our team, we finally managed to integrate it successfully.👏

9:00-12:00

33-36

Since the submission deadline was at noon, our team was busy fixing our product, organizing documentation, and preparing for the presentation. With the deadline looming and fatigue from staying up all night (though the atmosphere was still fantastic), I was very frustrated at no being able to keep up with the English discussions. I might have been affected by the exhaustion from the flight and being awake for over 24 hours, which likely reduced my listening ability. To contribute as much as I cloud, I focused on cleaning up the documentation. I don't even remember what I had for breakfast...

12:00-19:00

36-43

We managed to complete our submission, hand lunch, and then attended the judging ceremony. The judging process involved judges visiting each table, giving a 3-minute pitch, and then having a Q&A session. Three different judges visited each team at different times, and the total scores from each judge determined the winners. I was completely exhausted haha.

After the judging, with some time left until the closing ceremony, I walked around the UBC campus. I even went to a beach, which was so magnificent that it alleviated some of my fatigue.

During the closing ceremony, several outstanding projects were announced in front of everyone. The During the closing ceremony, several outstanding projects were announced in front of everyone. The first two projects-a product that Iot-enabled a piano for beginners and a new CLI application-were interesting and of high quality, and they remain memorable. However, after that, I was too exhausted; I actually fell asleep during the closing ceremony and missed the remaining presentations, which was disappointing.

Outcome and Results

The product we built is, conceptually, a platform that facilitates both community building and sharing or items simultaneously. Our basic tech stack comprised FastAPI/Python for the back end and React/TypeScript for the front end. We integrated external APIs such as Llama and Google Vision API to automatically generate descriptions and tag shared items, enhancing the user experience. One feature I personally found interesting, based on our PM's idea, was that the borrower could choose not only money but also alternatives like "having a chat at a café" as compensation to the lender. From a community-building perspective, providing opportunities to interact and meet while sharing items makes a lot of sense.

The details of the product are summarized on Devpost, so if you're interested, please have a look: https://devpost.com/software/borrowhood

Although we did not receive any awards at the hackathon, I feel that the experience itself was the greatest reward.

Reflections: Key Points and Considerations for Participating in nwHacks

I hope my advice, drawn from my personal experience at neHacks, can be helpful not only for nwHacks but also for anyone considering participating in an international hackathon.

  • Plenty of Food - No Need to Worry:</br> I made sure to eat something before to the venue to stave off hunger, but throughout the event, there was never a shortage of food. Although I forced myself to eat avoid spoilage, in reality, you wouldn't need to bring much. There were water dispensers for drinks, and even though there wasn't a convenience store like in Japan, a Starbucks was right across the street for your coffee fix. In short, when it comes to food and drink for a 24-hour event, you really don't need to worry.

  • No Need to Worry About Participating Solo:</br> I participated alone, but there ware many others doing the same, so there's no need to be anxious. Not only during the event, but you can also easily find team members on Discord.

  • Loads of Activities and Workshops:</br> There were plenty of activities beyond just development, which made the event fell extremely engaging. Whether you choose to fully commit to product development or enjoy various activities and workshops, both approaches have their merits. Honestly, you could probably build a great product from home country, so it might be more valuable to immerse yourself in all the diverse activities.

  • Once You Leave at Night, You Can't Re-enter:</br> For security reasons, if you leave the venue after a certain time, the building is locked and you cannot re-enter from outside. Unless There's compelling reason, it's best to avoid leaving the building at night.

Conclusion

I challenged myself by stepping out of my comfort zone more than ever before. Before participating, I was extremely scared and could have made endless excuses like "I don't have money" or "I have a paper coming up," but I chose to challenge myself-and it turned out to be the best experience ever.

While I succeeded in understanding what others said in English and effectively conveying my own thoughts, I also deeply realized how challenging communication in English can be. Nonetheless, my motivation to learn English has never been higher. I am determined to become more fluent so that someday I can work on another exciting project with these team members.