Internship Experience at Wooting
Tags: internship, showdev, webdev, beginners
Published: 2023-03-04 01:35:50

## Introduction
It’s been almost 2 months now since my internship at Wooting ended, and I just thought I’d write about my experiences as a new developer who happened to get the opportunity to show what they can do and the opportunity to learn and grow. I'd also like to show off what I worked on.

The opportunity was a 3 month long internship where I was able to work with some very amazing people and be heavily involved in a project starting from the analysis stage, to design, and to the actual building of the application. The project is called **Wootomation**, an app that allows people to **create basic macros in a simple and intuitive fashion**. I was largely in charge of the frontend of the application.
 
## Who is Wooting?
[Wooting](https://next.wooting.io/) is a startup company trying to disrupt the gaming keyboard industry and push _analog keyboards_ into the mainstream. Their most recent product (as of this post), **the Wooting 60HE**, has been doing amazingly well, with so much momentum behind it that production has been playing catch-up to orders ever since it officially launched. Now that the holiday season is over, I'm looking forward to seeing them get to the point where they have stock that can ship to people as soon as they order.

I first heard of them back in 2020 when I was looking for a new keyboard. Like any other person looking for a new tech product, I watched reviews and compared to other boards and decided that I liked the ability to adjust the actuation point of my keys, and even back then Wootility was easy to use and didn’t have to always be on like other mainstream brands so that was a plus.

This is a screenshot of the Wootility.
![Screenshot of Wootility](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v09eemni7y0xo56gfvf1.png)

## The Internship!
I have never once thought that a _company newsletter_ would ever benefit me in any way, but the way I found out about Wooting’s open positions was through their email newsletter. Who would’ve thought _2 years later_ I would just happen to actually read the newsletter… **AND also get an internship because of it.**

I checked out their positions and sent an email immediately when I saw they had a junior frontend position and frontend intern position listed. I honestly did not expect to receive a response. 

Like many other inexperienced developers, I have applied for many positions and just never got a response. I will admit that I was super excited seeing the email from Jeroen (co-founder) saying that they would like to talk with me. I was also very nervous and immediately started to prepare myself for it.

At the time, I did not know about what I would be working on, but since I was and am focused on the frontend, I looked into their websites and wrote down a bunch of questions related to frontend work and their websites. I ended up not needing them though, since they had a non-web project in mind hahaha.

I met with Jeroen for a short call just to get to know each other and talk about me. I was nervous, but Jeroen was very friendly and it was fun to talk with him. 

We had planned for another interview afterwards, but that ended up not happening because he was also busy with applicants for the other positions. I was a bit unsure whether or not I got the internship, but in the end it was confirmed and I was sent the rough idea of the project.

I didn’t even have to do a technical interview, since this was meant to be a learning experience (which it really was). I’m confident I showed them my competency through the actual work done on the project though haha.
 
## Doing the Work (remotely)
My first days were a bit of a jumble. Because of Wooting’s size, they don’t really have an on-boarding process like what you’d read about for larger companies.

I just kinda got right into it, but also not really since I had to wait for instructions. I started with learning more about macros. I have made a couple for my mouse here and there, but I am not a macro user. **I didn't even know about AutoHotKey**, which was basically what I needed to turn into a nice user interface.

I then started brainstorming about how I imagine the app to look like, the features required, similar software that users would be familiar with, and of course how users should interact with it. Here’s [a figma link](https://www.figma.com/file/sSi5p2qe9nPn7qVXHLsBbt/Wooting-Macro-App?node-id=0%3A1&t=bTGzbk3rbG3MkAkT-1) to the first drafts I made for the UI, but I’ll be going through a few screenshots below. 

![The final iteration of my 1st draft](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3l9280xk9vh7utqkypa9.png)
My initial design was based on Wooting’s other app, Double Movement. **The goal was to display the required functionality with some kind of simple UI.** I chose to copy the style of the Double Movement app because I wasn’t sure yet if they already had a design in mind for this project. The answer to that by the way, was no and my initial drafts ended up _slightly influencing_ how the application ended up looking like.

![The final iteration of my 3rd draft](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/icg5t3q67egeaxc6l0fi.png)
While I am not specifically a designer, I do like when things look and feel good. With this project, I was able to dip my toes a bit into the design aspect of software development and definitely learned a bunch from Erik, the lead designer at Wooting. You can see that the design went through a lot of changes, and in the following screenshot, what shipped for v1.0 is very different from my drafts. (the more official and final designs are in a different file)

![Screenshot of the UI for v1.0](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g89ettwkz662r766f6d5.png)

The first couple weeks were also spent on planning out the project. I had several meetings alongside Jeroen, Simon (a senior developer), and my partner in crime David about how we should approach this project and the functionality required for a working application. Everything from how data should be structured to researching how other software provide the same functionality.
 
## Struggles
Overall, working on the project was super fun and I did feel like I was learning. Of course, it wasn't easy, and I knew from the start that it would be a challenging project.

Most of my struggles are definitely related to learning on the fly. Using new libraries and packages, dissecting examples to figure out how they work, and then the hours spent figuring out why what I made isn't behaving how the examples do... **Yep**.

I also had some trouble ensuring that the user experience was clean and easy to use, but also encapsulated all of the functionality we wanted to get in. I was definitely carried in this department haha.

I think the last of the notable struggles was **keeping a balance between expectations and the realistic results** that could be produced within a 3 month period. There were many ideas we had at the start, and unfortunately we just weren't able to get them in for v1.0. Of course, they may one day make it in a future update.

But I think David and I did a good job keeping things under control. We managed to ship something after all.

I would say to people in similar situations (going to sound cliche here), just keep things simple and organized, and remember to take a break. The better you are able to break things down into smaller tasks that don’t need a genius’ brain to solve, the easier of a time you’ll have when implementing a certain functionality or when brainstorming.

It also helped to have mentors who would give guidance whenever I asked a question, and gave wonderful feedback to help me correct my mistakes. _Thanks Simon and Jeroen!_

I should mention that I also had an **8 hour time difference** with the Wooting team. It was unfortunate, since I wasn’t really able to attend their general meetings (they were optional for me) or hang out with the team much, but in general due to the independent nature of the work for the project, things went okay (in my opinion haha).
 
## Wootomation
As mentioned before, the app is a simple way for people to create basic macros, with a focus on having a great user experience while also providing useful functionality. Version 1.0 was released in mid January 2023, around when my internship ended.

There were several core values that we wanted the project to revolve around:
- **Fast & Lightweight Software**
- **Strong & Expandable Foundation**
- **Easy to Use**
- **Available to Anyone & Everyone**

You can [read more about Wootomation here](https://github.com/WootingKb/wooting-macros)

The app is a simple desktop application that has a React frontend, connected to a Rust backend with Tauri. This project was the first time I had learned about Tauri (and Electron for that matter), and I definitely will use it for a future project if it makes sense.

This project was also a great stepping stone on transitioning from JavaScript to TypeScript. Still a lot to learn, but I think I have a good handle on the basics now. Feels wrong to go back to something like Python now 😂
 
## Wrapup
Overall, I had a pleasant experience working at Wooting. I was able to work on a cool project that was _actually released_ and is _actively used by people_ (including myself). In fact, as of writing this, there are **over 1500 downloads** for the application, which is honestly still mind blowing.

**The experience was definitely one I’ll never forget.** Unfortunately, the reason why I am not still working at Wooting is due to the timezone difference mentioned earlier. But, I am ever so thankful for the opportunity, and can’t wait to see Wooting continue to grow! Also it was fun to play some Golf with your Friends with the team hahaha.

They even sent me a 60HE as a thanks, and it has been a wonderful keyboard experience. I could really see the improvements in build quality compared to their previous Wooting 2 keyboard.

I did sometimes wish the internship was longer, so that I could’ve eased into it more and got to know the amazing people at Wooting better.

But that was _my first internship experience_, and hopefully this post saves some of my memories of it.