Phoenix

  She/Her
  Third-Year Computer Engineering Student at UBC

Hello! I am Phoenix

I'm a software engineering student and I'm passionate about delivering user-friendly software with clean and efficient code. I strive to not only solve technically challenging problems but also to identify the right problems to solve.

Through my journey in becoming a better software engineer, I have gone from learning basic programming through books and coding website, to understanding mathematic reasoning behind algorithms and design concepts and most importantly, to learn by building. I'm fortunate enough to have amazing connections who had shown me unlike academia, there is no one definitive path to a good software engineer. It is instead a process of both exploring technologies and what truly matters to me. I like to attend business and tech related worshops hosted by student clubs to gain perspectives in deciding what project to build.

Besides time spent on professional development, I love to read a good sci-fi novel, check in (virtually now) with friends and go to the gym. As tempting as it is to stay in front of my IDE all the time, I recognize that taking care of myself is key to productivity (and new ideas)!

My Stories with Programming Languages
Python

Python is one of the first programming language I was taught. Notably my dad had procured a basic Python programming book when I was 14 which I forgot mostly about due to lack of use. Now I use it with my design team Unmanned Aircraft System using Django framework and also in my applied machine learning class where we use PyTorch.

Cpp

Ah C++! I'm currently using it in my introduction to algorithm and data structure course. It is definitely the hardest language for me to get used to but I love the efficiency and control. Plus they are great for honing your algorithm and debugging skills. (Thanks seg faults)

C

Funny thing is C is what my first year programming class was taught in but it wasn't until this term where I get the hang of C through learning C++ and the very involved labs at my Basics of Computer Systems course. I will never forget writing a debugger for assembly in C.

JavaScript

The first (actually the first this time!) programming language I ever learned, but haven't gotten very good at it until this term when I learned about ES6+ and React.

HTML

I don't consider this to be a programming language but I do like a good webpage (like this one:p). I learned this along with JavaScript. I do do lots of XML in React tho.

CSS

First picked up with JavaScript, there is still much to learn about the art of user experience and interface design.

Go

A language I looked into at a workshop, will be using it in my upcoming co-op at Zaber!

Java

Java is the first language I became proficient at. I picked up Java first term of second year in my Software Engineering principle course and tackled increasingly challenging tasks and projects. Java's strong type also taught me about object-oriented design principles. This is also the first language where I was introduced concurrency.

X86

Yes x86 logo looks cool but I chose this not only because I learned x86, but also because ARM and Verilog do not have pretty logos! I'm not bad at these low level languages. I just love the software side of computer engineering way more.


Tools and Frameworks I've Worked With
Visual Studio Code

My favourite text editor!

Git

I still remember first learning to use Git in first year at a software development event where I was super baffled. Now I can't live without it (as all software devs feel).

PyTorch

I'm introduced to this library in my applied machine learning class and I love that we have pre-trained models. Check out my Costa's vs Anna's hummingbird classifier!

TensorFlow

The MIT machine learning open class uses TensorFlow. I find that it wasn't hard to pick it up with PyTorch experience but TensorFlow does have better documentation.

React

I regret not learning about this framework sooner! Now I'm writing this site in React because that's how much I love it.

Unix Command

All the command line and SSH into school server in computer science classes pays off.

Docker

I use Docker with my student design team and I love how it speeds up the testing process and helps with dependency management. I'm still a newbie at it but I plan to learn more about it.

Django

This is the first web framework I'm exposed to and it was also through working with the UAS team. I have a project idea coming up and I plan to use Django as my backend.

Firebase

I checked out a project based tutorial combining Firebase and React and proceeded to use it for a slack clone and a hackathon project. Definitely my go to NoSQL database.

Flask

If I want a less complex Python web framework than Django Flask would be my choice. I used it in my women in stem api hackathon project, as well as my ML car classification project where I serve the ML prediction over a simple API.

Google Collab

I love the Linux VM and GPUs for ML model training, thank you Google for the free resources and credits!

Google Cloud

I hosted the backend my first ML webapp here and I'm happy that Google Cloud can handle the big model.

npm

Same story with Git: npm was like magic to me when I first started using it and now I cannot do without it. Props to the open source community! (Would like to contribute in the future)

Postman

Great for API testing!

Netlify

This website is hosted by Netlify!

Selenium

I used Selenium to buil a simple shopping bot and later an image scraping program.

Visual Studio

This was the IDE I used in first year in C programming. Now I just use Valgrind and GDB in Visual Studio and forgo the print statements.

Gradle

I used it for automated building writing Java code. I learned to configure dependencies, build and test procedures with it.

MATLAB

The all powerful tool for mathematicians and engineers that I wish I had the time to use more of. It helped when I was learning linear algebra and I went to a presentation about training ML model with MATLAB.

GDB

Trusted (although dreary) tool for debugging assembly and C languages. I do try to avoid using GDB in C with Valgrind.

Valgrind

Hands down the only thing saving me from core dump errors and memory leaks.

IntelliJ

I used this first term in second year as my IDE for Java. IntelliJ provides smooth integration with Gradle.

JUnit

Favourite for unit testing with Java.

ANTLR

Parsers are amazing! I did several assignments involving ANTLR parser and wrote a parse tree from scratch in one of them!

Quartus

Along with simulation in ModelSim, these two tools carried me through Verilog labs and proficiency tests. Not shown is the Intel FPGA Monitor Program which made debugging ARM assembly possible for me.