Netskope Taiwan
撰文者/Kloudless Taipei

2019-02-20 Views: 4681

The Wedding Programmer: Open Source + The Big Day with Shirley Lee, Software Engineer

Name: Shirley Lee

Title: Software Engineer


Hobbies: board games and video games

Favorite ice cream flavor: chocolate


Shirley is a Software Engineer on the Developer Experience (DX) team Kloudless Taipei. Previously, she worked at a video game company called Net Publisher as a Full Stack Engineer programming in React and Java.

What is your role at Kloudless?

Generally speaking, my role as a software engineer at Kloudless is to develop new features and maintain the platform. I’m technically a front-end developer on the Developer Experience (DX) team, but in practice, I work on both the front-end and back-end of our stack depending on the project needs. I’ve found this to be quite common in many startups. The Kloudless work environment is very collaborative, and I feel comfortable discussing problems among colleagues. We’re all in the same boat, fighting the same battles!


What projects have you worked on so far at Kloudless?

My favorite project that I’ve worked on so far is the improvement project for the Kloudless developer experience. I was excited for the opportunity to contribute to the Developer Portal  page along with other designs to enhance our user experience. I hope the improvements have a lot of impact.

Another ongoing task that I find fulfilling is writing integration and unit tests. They not only save us time in manual testing, but also immediately detects bugs that are caused by future modifications in the code. This is more intuitive and convenient for other developers on the team.

Currently, I’m working on integrating our older front-end JS library with new front-end technologies like ReactJS and . Once it’s completed, it’ll make open source UI products like the File Explorer and the Meeting Scheduler easier for developers to use.


Speaking of open source, you’re famous for your open source wedding app. Tell me more about it.

When I got married last year, I decided to write my own interactive wedding web app with my (then fiancé, now husband!) as a special and memorable gift for ourselves and our guests. As we were planning, we thought “How can we make this wedding memorable?” Being engineers, what was more appropriate than building our own wedding web app!

At the wedding reception, usually display beautiful wedding photos in a presentation or in a video on a big screen. We wanted to do something similar, and not only display our wedding photos, but also add functionality to make it interactive: guests can leave messages on the web app, and they would appear on the big screen in real-time.

On top of that, we designed a “Quick Questions” multiple-choice Q&A game. My husband and I love all sorts of games, so we wanted to create a fun game for our guests to experience during our wedding. We created questions about us, and the goal was to discover which guests knew us the best. Every participant received a ranking, and the top six winners were awarded prizes. 

Our wedding app was pretty popular, especially amongst our engineering friends. A lot of them wanted to use it themselves, so I’m constantly updating the app and making it better. I want to make it so easy to use that non-engineers can understand the concept, so they can use it for their wedding too. They can easily register by pressing only a few buttons to get what they need and then enter their credit card information at the end. To clarify, I’m not profiting from this app. It is the platform that deploys the project that is collecting payment.

I’m really passionate about working on this for everyone. I’m happy to see that people like my project and can apply it to their lives.


What technologies does it use?

React, Redux-Saga, and WebSockets. WebSockets are the most critical technology, because it’s required for the real-time interactions.


Why is your project open source?

After my wedding, many of our software engineering friends were curious about our work and asked if they could also use the web app that we built. I was really surprised! I shared it on Github so that everyone can use it. It’s good to share good things with good friends!

I wanted to share the concept and pass it on to the community for use. I hope more people can contribute to my project so it gets better and better. 


Are you generally a big supporter of open source projects? Have you contributed to any others or do you follow any?

“Wedding-screen” is my first open source project, but I was an open source user before. Since I’ve benefited from many open source projects, I hope that my contributions can help others and bring them joy.

As a Node.JS and front-end developer, I’ve used a lot of open source UI components (date time picker, drop down list), and JS libraries (ex: React, React-Redux, moment, Socket.IO).

For example, I used a kit that generated Excel files for work requirements, but because it was very old, the author is no longer maintaining it. It was implemented with es5 (a version of JavaScript, full name is ECMAScript 5), and there was a function name that conflicted in the newer es6 version of JavaScript. I ended up forking this project to correct this problem. There was also an issue where you couldn’t use the Chinese tab name. This part was solved by another contributor’s fixes. Thanks again to that person’s selfless contribution!

I also used to follow Node.JS and Deno. Deno was developed by one of the original Node.JS development members (Ryan Dahl), and was supposed to improve the many Node.JS design issues.


Have other people contributed to your project? What is one of the more interesting things that someone tried to contributed that you merged in?

There are currently two contributions. One is a change my README. The other provides some suggestions and fixes for Docker support. I look forward to seeing more contributions in the future, so that I can personally learn and improve from the feedback. And, of course implement all the additional features! I can learn a lot from others’ coding skills in the process of reviewing pull requests.


Are you worried about other people seeing your code? Like the code quality?

Not at all! I encourage any comments from users in the community and they’re welcome to send pull requests at any time! I think the most important and valuable spirit of open source lies in “sharing” and “contributing”, using the power of the community to make things better. I believe this is what every resource provider is happy to see. Also, this is what makes open source such a fascinating thing.


Are you going to add the open source Kloudless File Explorer to your project?

I’m still evaluating the effectiveness of the existing wedding web app, but if there is an opportunity for the File Explorer, I’ll definitely consider it adding it!


What’s next? What are you going to build into it?

I plan to integrate a Heroku deploy button and improve the background management interface. The goal is to promote this resource and make it easy for new members who are non-engineers to set up their own web app. I think that having an interactive wedding site can help create one of the most unique and important memories of our lives.


What do you do for fun outside of your open source project?

My husband and I enjoy developing new apps and playing mobile games on our spare time. I usually play mobile games and frequently switch games due to boredom. I’m currently playing Pokemon Go. My husband and I have a one Pokemon per day quota, so I’ve been playing every day. The Pokemon are usually not around work so I have to catch them around the MRT stations or when I get off the bus. Gotta catch ‘em all!


Read it on Kloudless Blog

快來認識 Netskope Taiwan
SSE Leader
Netskope Taiwan
Today, there's more data and users outside the enterprise than inside, causing the netw...