This month we bring you another ‘team feature’ article. We’d like to highlight Aiden Zhao, research engineer at Megagon Labs, Mountain View. Aiden’s unconventional journey from China to Megagon Labs showcases the power of passion, perseverance, and continuous learning.
You are now a research engineer, tell us a bit about how you got to Megagon Labs.
I was born in China and came to the US with my parents at the age of 12, speaking very little English. I got my first computer in middle school and liked tinkering with settings. During high school, I decided to try computer programming. I liked it so I took vocational courses in IT and entered robotics competitions. That was a lot of fun but I took a little detour.
My high school assigned me a mentor who suggested I go into Economics and Business rather than computer programming. His logic was that instead of learning to build software for others, I’d learn to lead a business and tell others what software to build for me. I took his advice and went to UC Davis and majored in Economics, but my interest in programming was greater than my desire to run a business. I took advantage of the machine learning courses offered by the Computer Science department and learned modeling through my econometrics and statistics courses. This reignited my passion for computer science, specifically machine learning. Over the next year and a half, I dove deeper by taking upper-division and graduate-level courses in CS. I graduated with a degree in Economics but with strong programming capability and interest.
It was a tough job market after graduation, but I pushed through, and when I did find a job I used programming wherever I could; I even automated a lot of the everyday tasks. Because the job I had wasn’t as advanced as I hoped, I also took time to build a strong collection of projects on GitHub to strengthen my skills and prospects. My experience and portfolio earned me the software engineer position at Megagon Labs. I decided to further my academic knowledge in computer science to advance my career as a software engineer, so I applied and got accepted into Georgia Tech’s Computer Science program. Now I’m a research engineer at Megagon Labs while pursuing a Master’s at Georgia Tech University online. At Georgia Tech, I’ve taken courses that are relevant to my work at Megagon, so the coursework helps me get through my work here easily and vice versa. I will earn my degree in the next few months.
What has your work consisted of during your time as a research engineer at Megagon Labs?
I started working with LLMs through Ditto, a method for finetuning encoder-only models like BERT for classification. Ditto was used for job application phone screen prediction, usually step one of the hiring process. This was done with essentially vanilla PyTorch components.
In a more recent project, I worked on skill extraction by finetuning T5 language models that my colleague and I used to predict skills from work experience descriptions. The T5-based language model understands and processes text from a typical resume. With some finetuning, the T5 model understands descriptive phrases to identify skills in a resume, which is difficult to accomplish with rule-based systems. On the surface, the finetuning process was really simple; the Huggingface library was sufficient for some quick finetuning. However, my colleague and I dove deep into this. I have developed tools to construct base training data and added new features on top of the Huggingface library where we can generate actual training data on the fly. This allows us to skip generating training data beforehand, so we can experiment with different ETL processes for training data preparation without paying the cost of time of actual generation. Due to the nature of the task, we also developed our custom evaluation metrics and loss function for the training.
I’ve also worked on an experimentation platform and saw the need for strengthening our MLOps and DevOps tech stacks in the lab. I’ve helped the team deploy tools to enable CICD, provision databases, and write libraries to store and access important data used in the MLOps lifecycle. In an effort to improve the productivity of data scientists outside of our company, who are building, deploying, publishing, and reusing features across their organizations, we wrote the MLOps article about feature stores. Feature stores are an essential part of the MLOps stack, producing key machine learning artifacts such as model evaluation metrics.
Another role of mine at Megagon Labs is supporting our company’s cloud infrastructure and compute cluster, optimizing resources such as AWS to succeed in our projects. I have used a control tower for managing multiple AWS accounts and streamlining our processes from provisioning to access control. I have also used AWS Identity Center, integrating Google Workspace as an identity provider to manage user access. Finally, with robust VPCs configurations and establishing VPN access policy in the labs, these efforts have significantly contributed to the company’s productivity, security, and efficient IT infrastructure management.
I’m now working on a new project centered around leveraging Large Language Models, such as GPT, Mistral, Llama, etc., for data extraction, and I’m looking forward to continuing with it. Overall, working on LLM projects has significantly contributed to my growth as an engineer, providing valuable insights and skills that are instrumental in tackling complex challenges.
As an engineer and master's student, how do you keep up to date with changes in your field?
I try to get information from Newsfeed, Discord and YouTube channels, Google News, and also conversations I have with colleagues in the office. My Georgia Tech lab also helps. Tech develops so quickly that you have to stay connected to keep up.
Overall, I believe learning fundamentals is essential for remaining relevant and up-to-date. When new systems and tools are introduced, knowing the fundamentals makes it so I can comfortably learn the tool/skill. I’d recommend aspiring engineers focus on fundamentals in their field to be better prepared to learn new skills.
What do you do for fun? What are some of your hobbies?
I have enjoyed playing computer games since I was in middle school. Right now I’m playing a 20-year-old game called Fairyland Online which is also my first online game. Because it has many repetitive elements in it, I figured out how to automate some of the essential ones. Today, I have sophisticated scripts that play the game for me.
To get away from the screen and unplug, I recently started practicing archery. Spring in the bay area is so green that it feels like I’m in a fantasy land.
Written by Aiden Zhao and Megagon Labs.
Follow us on LinkedIn and Twitter to stay up to date with us.