Confessions of a CS3216 Survivor
Wrapping up with my reflections on taking the course
Software Product Engineering for Digital Markets is an undergraduate Computer Science course at the National University of Singapore (NUS).
Presenting our CS3216 final project at
This module was FUN, just as I expected it to be. My journey was filled with so many lessons to learn in so little time, ranging across so many things đ. In this article, I talk about my experiences with different aspects of the module, including the guest lectures, the assignments and the final project.
Enlightening Guest Lectures
Our weekly guest lectures by product designers, startup founders, software engineers and other influential speakers were super insightful and complemented the assignments and projects we were working on pretty well. We learnt about product design, generative AI apps, teamwork, startup funding, software engineering, scaling up and much more :)
4/10 of our guest speakersâ Su Yuen, Umair Ahmed, Lee Li Neng and Stephen Wang
The 3 Assignments before recess week
Assignment 1 â Product Design
For assignment 1, my team designed ClubCo, an app to help student club event organizers, with a focus on catering. This idea came from my friend who is a club president complaining about not having a good enough system to find caterers for her events, and not knowing where to go for help.
I made sure to team up with my prior CS3217 teammate, as we both knew we were interested in UX design from our previous project. Also teamed up with 2 other friends, and one had to drop out. This dropping out did not really affect us much for A1, but could be a much bigger issue that some teams may have to face in later stages.
While most of this assignment was a redo of my previous course CS3240 but squeezed into 2 weeks, I had fun working on the newer stuff like the landing page design and the demo video animation. Irrespective of the grade, I did these more for my personal satisfaction, and that was one of the things I enjoyed about this module: exploring what I really wanted.
Assignment 2 â Innovation Seminar
This assignment was to present a cool AI innovation that has not gained popularity yet, and our team chose [Recast](https://www.letsrecast.ai/), an app to convert online articles into short conversational podcasts.

Now as someone who was always captivated by Prof Damithâs short and simple talks, getting to know his secret sauce for presentations in our CS3216 guest lecture sessions was like finding gold đ. I loved to experiment with the different techniques he taught in my product presentations, writing assignments and even other modules.
Our presentation went well, but later we found out we actually misinterpreted this project a bit. While we thought the main objective was to present our selected innovation as cool, it was equally important to show its limitations. This was a reminder that being critical is more important than defending our selected innovation for A2.
Assignment 3 â Artificial Intelligence App
The myth of recess week
For A3, our team spent a lot of time ideating and proposed 3 ideas on the idea feedback forum but were still confused about what to pick. In fact, our 3rd idea, creating an app that helps you engineer prompts for generating AI images was technically obsolete just the next day with OpenAI launching DALL-E 3, which could create images from very natural prompts.
Then we went back to the 2nd idea we proposed, which was , a salary negotiation coach, but we were only left with 1 week to build it. This week was the most hectic in my CS3216 course, so, no recess week :(
My role in this project was primarily as a front-end engineer and UX designer, and Iâm pretty happy with what we came up with in a week. It was honestly super impressive to converse with AI in Salary Sage, even though we builders knew exactly how it works!
The big deal â Final Project
Proposal
After the external pitching session with over 8 products presented, 2 ideas caught my attention, Project Propel and AI Web Designer. As a self-proclaimed frontend expert who just worked on an AI app assignment, AI Web Designer seemed the best choice. Soon after the class, I rushed to other front-end developers I knew to create a strong team that Yangshun (the presenter for AI Web Designer) simply could not refuse đ. A week later, we were successfully selected for the project, and we called it Artisan!
is an AI-powered app to generate beautiful websites with a single prompt, customize styles as per your liking and export React code with a single button. Experienced frontend developers can also create customized component libraries, use our section templates directly or contribute their own unique designs to the community!
Execution
Okay, we managed to get the coolest idea, but now was the time for the best execution and the most effective sales.
This meant I had to put on the hat of project manager, marketer, external relations manager and backend engineer in addition to my usual roles of UX designer and front-end engineer. Juggling all these roles was tiring (yet fruitful).
Moreover, working on Artisan with Yangshun was a great experience! Learning how senior engineers in my field make decisions and getting PR reviews from him was a learning point in software engineering, apart from the focus on product engineering during the course, plus points for me :)
Marketing for Artisan also meant I had to put myself out there which I wasnât really used to. Plus, our app wasnât so great in its initial stages, but we embraced the quote âIf you are not embarrassed by the first version of your product, youâve launched too lateâ. We talked to our friends, students, profs and reached out to too many online groups to get the word out about our app and gather feedback. This was very useful in refining our app to make it polished enough for STePS.
We also decided to make our lives difficult by organising a portfolio competition with our app. At times, my team would be a bit doubtful about whether our app would be ready for the competition in time. Yet with good prioritization and support from our mentor Yangshun, we made this happen :)
Showcase
âThe harder you work, the luckier you getâ (Winning STePS!)
This year, my goal was to win STePS as it was probably my last chance at it. Of course, my team shared this goal, so no competing priorities đ. While we were considered set up to win STePS as we secured Yangshunâs project (with his track record in mind), that didnât stop us from working hard to do well.
We planned weeks in advance for how our STePS day would go, and what we needed to get there. One thing Iâm super proud of is our shirt design :)
My teammate Jason attracting the crowd to our booth đ
We put in all the work we possibly could for Artisan, and of course, with all the hard work, I think we deserved to win, even with all the obstacles in our way. And even if we didnât, I wouldnât have any regrets as we tried our best. And, after 6 weeks of grinding hard for Artisan, we made it the Best Project for CS3216!
Team Artisan with Uncle Soo!
Just do it
I believed I wouldnât do well for CS3216, because I am not a good marketer, a good public speaker or even as good a developer as the rest of the class. But at the end of the course, I am super happy with the products I have made, whether I score well or not. Looking back, if I go and read my , I see a lot of change in myself. I built apps with great ideas, talked to people to understand what they wanted, created landing pages, crafted pitches, and marketed to literally anyone.
Here to answer your burning questions if youâre looking to take CS3216
-
Is it worth it? Definitely
-
How are the people you work with? Everyone is great and has their unique strengths. Find out if someone has a chance of dropping out before teaming up with them.
-
How is the workload? Too much yet doable if you can focus on it. If you have other priorities, it may be harder to cope.
-
Which one is easier, CS3216 or CS3217? Of course, both are super hard and time-consuming, but I found CS3216 to be more difficult as I had to get out of my comfort zone. CS3217 probably takes up more time but doesnât require doing a lot of things at once, the only focus is on good Software Engineering.
Thank you everyone!
Ending my super long post by thanking everyone in this wonderful class. Thanks for making this the best course I have taken at NUS! â¤ď¸

My portfolio generated using 