2 Years of Machine Learning and Data Science
My Tech Portfolio
Over two years ago I started of as a high school student unsure of what to do in life, all I knew was that I'd always been enthusiastic about technology and learning how things work. Back then everything felt so overwhelming, the prospect of spending the next three plus years at Uni (and potentially the rest of my life aha) on something which I barely knew anything about really did frighten me ๐จ.
This article/portfolio is a retrospective on my experience becoming a machine learning engineer/data scientist so far! I hope others who read this feel similarly inspired to when I randomly heard/read about data science for the first time! I want to share some of my experiences so far, the cool things I've built and knowledge gathered.
Through a large portion of my journey as a beginner I documented my learning process with detailed blogs and GitHub repositories which I link throughout this post, if you're interested in seeing more details please check them out!
This post is structured in several sections:
- How I got into data science/machine learning
- The passion projects I've worked on
- Experience working/interning
My Road towards Data Science
Back in 2019 when I was at a Monash open day I randomly came across a student engineering team called Monash DeepNeuron. At the stall one of their founders showed me a small number of AI demos. I was blown away. I kind of knew it existed before but I never even considered the possibility that it was possible for a student with minimal technical knowledge to go about working on something as big as colourising black and white pictures or AI playing video games. Straight after this I researched online as much as I could about how I could get started working on similar projects myself. Watching videos like the Alpha Go documentary inspired me to dig deeper and see whether this was a realistic career to pursue (TLDR ~ I ended up joining and becoming an active member of Monash DeepNeuron as soon as I got into University)!
To try and reassure myself that this was 100% the right path for me, I made it my mission to reach out to as many professional data scientists, machine learning engineers and software engineers as I humanly could. ~2 years later according to LinkedIn I successfully connected with 376 experts in the field! Although I can't say I've talked to every single person, I made a solid attempt every time and got to know a few people pretty well. The discussions I had from early on were invaluable in giving me direction, motivation and several opportunities like internships.
A good month or so after talking to dozens of data scientists I decided to use my newfound knowledge/skills to create an app to detect snake species ๐... Projects, projects and more exciting applications of deep learning awaited me!
Getting Experience working on cool Projects
Right from the beginning I knew I wanted to start working on projects so I could collaborate with others to create interesting solutions which showcase how AI can be used to influence real problems (or at the least small prototypes to display what it would look and feel like). Here's a small overview of some opportunities I'm grateful to be able to have worked on.
Detecting Venomous Snakes ๐
5.4 million people are bitten by snakes every year, with 81-138 million recorded deaths due to snake bites. Maybe an app which would tell you their species and from that whether or not they're venomous would be a useful aid to professional medical examinations? With this in mind I found a dataset of labeled snake images and created machine learning models to classify each images species!
I had a chance to experiment with image scraping (which I didn't end up using here but utilised heavily in many future projects), various techniques to modify/enhance/increase image data and varying types of models and training techniques. At the beginning of this project I had absolutely no idea about how any of these things worked or what to do but slowly testing out different approaches to solving this one problem was incredibly engaging and helped build out my foundations.
I have several blog posts discussion my journey on my first project. If you're interested please feel free to take a read ๐:
Predicting Energy Demand ๐ค
Energy is used daily for phones, computers, washing machines, heaters and a vast array of appliances. I definitely can't imagine what it'd be like without it! Our dependence on electricity makes it critical to accurately predict how much energy we will need to generate on any given day.
At University I worked with a few fellow students to try and model energy usage via temperature data. This was a great opportunity to expand what I knew as "data science/machine learning". At first I thought it was all neural networks but during this project I had a chance to learn how time series forecasting usually works using "classical machine learning" (the old school algorithms, from when things were simpler ๐ฅธ).
I started by learning to clean and structure the data, visualise it and use the insights/knowledge I acquired from my analysis build a model. During the process I realised that in reality, how well you do isn't defined by how smart or complicated your model is, but rather how well you're able to break down the problem and transform your understanding of the domain into code. I had several long discussions about our usage of energy, renewables and more with lecturers and a relative who researches renewable energy at Bloomberg. These helped tremendously to help me interpret the numbers, tables and graphs which I extracted (knowing what to look for, what types of graphs/visualisations/models can be used, whether you're picking up on the right factors, etc).
Here are some links to articles I've written which present the exploratory analysis and modelling in the form of beginner tutorials:
Generating Faces and Comic Characters ๐คก
Straight after I got into Monash University I applied and joined the student engineering AI research team Monash DeepNeuron and pretty soon was selected to work on a research paper in a team of 6 to use Generative Adversarial Networks to transform CT scans into images of peoples face. Up until this point, I'd worked on a small variety of projects but I didn't know about any of the big "subfields" of deep learning, nor had I worked in an actual team to develop anything "realistic". Hence I was super psyched when I found out I'd be able to contribute to a research paper which had real life applications for forensic facial reconstruction.
Since I was new I started by picking up small "tickets" or "issues" off the "kanban board" to work on. These were initially small things like "find and fix this bug" or "test xyz feature out" but eventually the project refactors and features I worked on broadened in scope. I ended up implementing our model training framework and setting it all up to work with a project tracking software called Weights and Biases.
Working on the project was absolutely amazing as I learned an absolute tonne from my team lead and fellow teammates (which were all in their final year graduating before me).
After the project finished up I was eager to learn more about how the model we were using worked and so decided to start my own small project to generate images of comic characters with another friend. During this time I read up and implemented my own GANs from scratch for the problem ๐ค and very soon afterwards ended up running a workshop explaining to other Monash students how GANs can be used to generate images like faces and artwork!
Here are some of the resources I created:
Other Projects
Quick mention that I was fortunate enough to work on several other small personal projects which you can find on my GitHub Profile. Here are a few examples:
- Creating a Racing Car Bot for Jelly Drift Video Game - Video Recording of Progress
- Scraping Huge Amounts of Data of GitHub
- Implementation of Desktop HTTP Rest Dictionary/Anki API within Android App for Language Learning - Note this is a real project which several people I know use ๐ฏ๐ต (I would talk more about it but doesn't involve ML)!
- Japanese Vocabulary Frequency Analysis with Rust and Web Assembly
- Enhanced Dashboard to Allocate to Monash Classes
Internships and Real World Work Experience
Throughout University I've had internships at various small companies so far (here's a small summary of what I can talk about, due to NDAs I can't show any results/discuss in detail what I did though).
I first started working with a small company called Penta Global where I worked on a project to analyse the quality of coffee beans. I extracted data from sensors, went through it and analysed statistics and ended up creating a series of map visualisations which illustrate how various sensor metrics (like heat and density) impact the quality of the coffee as it traveled across the globe.
My second internship was at a data-centric real estate company called Milk Chocolate Property. I worked with their relational databases, APIs and geographic Python libraries to find and filter what particular locations their customers would be likely to want to live in.
Afterwards I interned with the Monash Data Science and AI Platform working on a NLP project to identifying potential patients for medical trials based on their submitted medical health records.
I currently work as a Junior Machine Learning Engineer as part of the AI division of a small search and recommendation company called Systema AI. My day to day work involves analysis of our systems performance in respect to client shop purchases and helping maintain and improve various models and services.
To top it all off, for the bulk of my time at University (until very recently) I was the "Deep Learning Training Team Lead" at a student engineering team Monash DeepNeuron. I led/managed a team of ~6 people creating and demoing at a wide variety of deep learning workshops were I helped teach students how it all works! We together ran workshops and blogs on topics ranging from the foundational basics of "how neural networks work", "how to start a project", to complex applications like "reinforcement learning" and "generative adversarial networks".
Conclusions
Over the last few years I've had a massive amount of fun working on heaps of projects with heaps off different people! I've learnt so much from all of my work. Right from my first project detecting images of snakes to working on generating images of faces and comic characters, teaching other students how deep learning works, creating random applications and scripts to aid in my language learning and person life, and to working at Systema on our smart search and recommendations models.
I hope this both goes to illustrate my progress throughout my data science journey and to motivate anyone who happens upon this that if you just give it a shot you can gain a lot of skills whilst just working on cool projects you enjoy ๐คฉ!