# CS3217 Personal Statement
##### By: Melodies Sim, A0171474A
### [whoami](https://linux.die.net/man/1/whoami)
I am an aspiring software developer and avid problem solver. I am also Year 3 DDP in Computer Science and Math student. I am passionate in coming up with innovative ideas and building solutions. I truly believe that novel ideas will transform our world but also appreciate the value of designing concrete implementation on top of these ideas to make them become a reality.
In my free time, I work on a couple of personal projects (*Check out my github below!*)
[](https://github.com/Happytreat)
### Why do you want to take CS3217?
---
#### Become stronger technically
After taking CS3216 this semester, I've learnt a lot on product driven engineering - how to make user-friendly products that solve a real existing problem. In Sem 2, I wish to take CS3217 to improve on my technical skills, how to use engineering concepts to build secure, optimised and reliable systems. I want to push myself to go beyond just superficial development using libraries, and really challenge my understanding of concepts of the language/native environment.
#### Meet and Learn from Like-Minded Passionate Peers
One of the biggest takeaways I had during CS3216 in Sem 1 was meeting driven, passionate individuals that pushed themselves beyond boundaries. This has really motivated me to push myself further, even when it gets tough and to deliver the best of my abilities. Being in a room full of smart and driven peers also taught me a lot. One of the most valuable lessons I have taken away this sem was that it doesn't matter as much the opportunity you are given, but rather how much effort you put into it and making the most out of that opportunity. If given the chance to join 3217, I'm ready to push myself beyond my comfort zone to learn the most I can out of this class.
### Describe your background and explain why you will make a more deserving candidate than the other applicants.
---
I am experienced in web development as well as have some exposure to Blockchain Development (in Distributed Apps) as described in the following section. I feel that my strongest selling point would be that I am a highly independent and motivated learner. For instance, I am constantly keeping myself updated about new technologies such as Serverless Framework which I have used in a project [UPlan](https://github.com/Happytreat/UPlan2.0). I also actively make sure that I understand the fundamentals and why certain things work the way they do (instead of simply using libraries to accomplish the goals).
#### Blockchain Technologies
I am passionate and have experience with blockchain development and technologies. One of the project I've worked on is [Patronage Collectibles](https://devpost.com/software/patronage-collectibles), a decentralized crowdfunding platform with Harberger crypto-collectibles that won my team and I the Runner Up Prize at the National Blockchain Challenge 2019.
I have also interned in A\*STAR studying the mechanics of ZCash and how zero-knowledge proofs are used to maintain anonymity in the cryptocurrency. Zero-knowledge proof is a technology that allows one to prove he knows a property without revealing what he knows. One application of zk-proof is in digital identities (DID) where we do not want our personal data to be online, yet we still have to prove we own our DID.
#### Web Development - React/Typescript, Express, Node/Serverless stack
In my startup Hodlnaut (which aims to become SEA first crypto bank), I actively contribute to
1. Independently designed and implemented the Know Your Customer System, crucial for any fintech/banking company.
2. Implementing REST APIs in Express-Nodejs stack
3. Maintaining the robustness of the code base for example independently implementing front-end web-pack code splitting using Loadable components.
4. Working with a React-Redux front-end
5. Initiated and implemented UX/UI improvements in the [App site](https://app.hodlnaut.com)
6. Implemented and design the previous landing page
In CS3216 and in my freetime, I have also built several web based projects (view my [Github](https://github.com/Happytreat) for more information).
With my background, I believe I am able to contribute in being a full-stack developer in delivering ideas into a real application.
#### Adaptability to new tech stack
In my free time, I actively learn and join technical meetups to expose myself to new tech stack and design patterns. For example, I am working on a university module planning app using the Serverless Framework (AWS Lambda, Cognito, DynamoDb etc) and have also used React native to build a cryptocurrency price tracker. As an adaptable learner, I am able to use a relevant new tech stack if the product needed it.
### What is the coolest program that you have ever written? Explain (+ attach code snippet or screenshots).
---
The coolest project that I am **working on** now is UPlan, a visual university module planner. UPlan is built using React (going to migrate to Typescript soon), Redux and Serverless Framework (AWS Services such as AWS Lambda, DynamoDb, Cognito, API Gateway).
I feel that UPlan is one of my coolest project now because is an app that my friends and I **really** need. It is also really cool to learn and explore new technologies such as Serverless Framework (and also corresponding testing framework for serverless) and using Drag and Drop through building an app from scratch (that is not simply a tutorial, but a big project that I hope to deploy to NUS populations in the near future).


The app is still **in progress**. Future additional include:
- Integrate with NUS Mods API to autocomplete search of modules when adding (auto-filling of MC, descriptions and prereq).
- Support automatic tagging and generate stats for different module requirements.
- Support Grade calculation + prediction.
[The link to the current product is here](https://uplan.netlify.com). The code can be accessed through the [Github repository](https://github.com/Happytreat/UPlan2.0).