The open and collaborative environment in S&S CoE has been a key factor in my growth as an AI/ML engineer.
Joining S&S CoE
A big reason for my smooth transition is the team culture. My colleagues in S&S CoE have been extremely friendly and helpful. They welcomed me and made me feel immediately like part of the team since my first day. Guidance from them is forthcoming, and my colleagues are eager to help me get up to speed. The open and collaborative environment in S&S CoE has been a key factor in my growth as an AI/ML engineer.
Additionally, S&S CoE has a strong leadership team. Our Director and Deputy Directors are approachable and have a strong vision for the team. They know what is required of us and have charted a clear path on how we would get there as a team. I was given clear personal goals and an upskilling plan through courses and overseas conference planning. While S&S CoE’s leadership has ambition, they do not put undue pressure on the team. We are given sufficient space and autonomy to manage our work and learning. This is imperative as I have a lot to learn before I can be as technically proficient as the rest of the AI Engineering team.
While we work hard, the team knows how to have fun too! We regularly meet after office hours for fun activities like sports, having a drink or simply hanging out. Recently, we did bouldering (passes sponsored by the company!), went for karaoke and will soon be going for archery tag (which I am organising 😊).
The S&S team having fun with drinks and karaoke! (Photo: Nigel Yeo)
S&S CoE truly feels like a second family to me. This is a strong motivating factor at work which makes coming to the office enjoyable, as work does not feel like a chore. The positive culture and leadership of S&S are two big factors which have made my otherwise daunting transition into AI/ML manageable.
From Materials Engineering to AI/ML Engineering
On the surface, materials engineering and machine learning have little in common. However, there is transferable knowledge from materials engineering which has helped with my transition. The course gave me foundational analytical and mathematical skills which I still use today to help me tackle AI/ML engineering problems. For example, the linear algebra that I learnt is still useful in helping me understand the fundamental math behind deep learning models. I also took a few programming and data science courses which gave me a good foundation in Python coding, data processing and machine learning methodology. Additionally, my prior internships with HTX exposed me to actual AI/ML work, allowing me to truly learn by doing. Collectively, these experiences shaped my thinking and prepared me for a career in AI/ML engineering.
Product Development using Agile Methodologies
During my undergraduate days, I had learnt about Agile and Scrum processes, and their potential to revolutionise development teams. In my interview with S&S CoE, my Deputy Director described how the team was using such Agile process for Product Management. This impressed and excited me, as I relished the opportunity to practice Agile development in my first job. The promise of Agile methodology and Scrum processes turned out to be true. The teamwork and open sharing facilitated by these methodologies have benefitted less experienced engineers like me. Through Scrum, the team developed a systematic workflow, information sharing and strict documentation requirements. All these have helped me immensely, allowing me to gain proficiency faster than expected. I am now part of the InXeption product team, with whom I went through several 2-week sprints and made several useful technical contributions.
What I have achieved so far
Model implementation
My transition to becoming a competent AI/ML engineer is an ongoing journey. Thus far, I have learnt a lot and achieved several personal milestones!
I was assigned to work on the Super Resolution module of the InXeption product. There are two main components to this module, namely, the image quality assessment (IQA) model and the Super Resolution AI model itself. The IQA model would first assess if the images sent to the app would require enhancement, filtering out relevant images to the Super Resolution AI model for processing.
My first task was to benchmark various IQA models for classifying low- and high-resolution images. I evaluated 8 models from the PYIQA toolbox, using a custom-built dataset. I then completed the technical benchmarking, allowing me to select the best performing model for use. Finally, I dockerised the model and served it using Flask API.
Passing a low (Cheng et al., 2018) (left-top)- and high-resolution (Karras et al., 2018) (left-bottom) image into the IQA API using Postman and outputting score and class (Photo: Nigel Yeo)
OpenAPI documentation for the low-resolution IQA module (Photo: Nigel Yeo)
I was also tasked to evaluate and dockerise an open-source Super Resolution model called CodeFormer (Zhou et al., 2022). To do this, I had to read and understand the technical literature, replicate the results and determine the best way to deploy the “more complex” AI model. I have already completed all these tasks and am working on retraining the CodeFormer model. While this will be a challenge, I believe it will allow me to level up as an AI/ML engineer!
Image from TinyFace dataset (Cheng et al., 2018) before (left) and after (right) super resolution with CodeFormer model (Photo: Nigel Yeo)
Cultivating good software development practices
Code functionality and quality are important to ensure the sustainability of the code base. I wrote unit tests for the applications I built and used SonarQube to visualise the code quality reports and coverage of unit tests. My code was also evaluated using pylint to ensure that coding standards were adhered to. The APIs were documented using AppMaps to generate OpenAPI documentations and were tested using Postman. In line with the team’s practices, I also documented my learnings on the Confluence page to reduce the likelihood of others repeating the same mistakes and the learning time needed.
Finally, I deployed the Docker images of all my work on Government Commercial Cloud (GCC) AWS using EC2. Seeing the application that I had developed be finally deployed on cloud was undoubtedly a moment of pride for me.
What the future holds for me in S&S
My short stint at S&S has truly been rewarding, and I am excited to see what else I can achieve with this team. Enabled by extremely supportive supervisors, I have already completed Andrew Ng’s Deep Learning Specialisation on Coursera and the Generative Adversarial Networks Specialisation in my two months here, while I have many other technical courses planned throughout the year. I am also slated to go to two overseas conferences in Hawaii and Paris this year to broaden my horizons and learn about the trends in the AI/ML industry. Prior to this, I had never imagined the possibility of going to an overseas conference within my first year of work!
I look forward to the continued upgrading of my AI/ML technical skills through courses, projects and conferences. The number of projects that S&S CoE is taking on is increasing rapidly, giving us junior engineers many new, exciting avenues to explore. The team is also hiring, and I look forward to learning from our new hires, experienced or otherwise. Empowered by these great opportunities with S&S CoE, I am confident that I will grow to become a competent AI/ML engineer in the future!
Written by Nigel Yeo, Engineer Software, Engineering, S&S CoE. Republished with permission.