My data science internship at GovTech’s AI Practice!

Eu Shae-Anne
AI Practice GovTech
6 min readAug 9, 2024
Photo of Shae-Anne at GovTech office

Hey everyone! I’m Shae-Anne, a final year Data Science and Economics student at the National University of Singapore (NUS). During my summer break in 2024, I had the opportunity to work as a Data Science Intern with the AI Practice in the Government Technology Office. I was part of a Forward Deployed Team (FDT) that is currently working with the Ministry of Social and Family Development (MSF). I’ve had a great time and am excited to share a bit more about my internship experience here!

A Kokedama planting workshop with my department at MSF!

Why did I choose to do a data science internship at the AI Practice?

I chose this internship as it was a great opportunity for me to interact with larger, more complex datasets and real life data science use cases. In uni, projects are small in scale and only last for one or two semesters. In comparison, GovTech data science projects have a way larger impact and a much longer life cycle. From processing datasets to ensure high quality inputs, to interacting with stakeholders to understand their needs and challenges, the day-to-day job scope of a data scientist goes far beyond just applying techniques and methodologies as I did in school. Doing this internship allowed me to have a much better sense of what data science looks like in the real world.

This was also an opportunity for me to be exposed to the diverse range of data science applications in the public sector. Each FDT is deployed to a different agency and there are regular sharings by the different teams, so I was able to learn more about their interesting work and pick up on some best practices and techniques. I really appreciated the environment that encourages knowledge exchange and cross functional learning here at AI Practice!

Ultimately, data science in the public sector is also grounded in a strong purpose to improve policy making and operations outcomes for the public, and I was keen to work with individuals who shared this common goal.

What did I work on?

My main task during this internship was to build a simulation model to project demand for some of MSF’s key services in the disability sector. The simulation model uses Object-Oriented Programming (OOP) and some probability-based rules, which made it quite different from the typical ML prediction projects I had worked on in school. To allow customisation of the model, I also created a Streamlit dashboard that serves as a user-friendly and interactive frontend for the simulation. I’ll be sharing some insights I gained from working on these tasks!

  1. Working with Object-Oriented Programming (OOP)

Object-Oriented Programming (OOP) is a programming approach based on the idea of modelling data structures as objects. Information regarding an object is stored as attributes and behaviour/interaction between objects is represented using methods. I used OOP as it provides highly customisable data structures and allows information to be stored at a more granular level.

Sample OOP Design (Image Credit: https://nonlineardata.com/object-oriented-programming-oop-in-python)

At the start, this was a pretty daunting task as I had only a little experience with OOP projects. Thankfully, there are lots of resources available online, so I was able to do some desktop research and experimentation before coming up with a model design. I ended up really liking this approach to coding as it’s kind of like creating a mini-game!

I also tried to implement some OOP best practices such as inheritance and abstraction to keep my code concise and tidy. I’m definitely not an expert, so I’m grateful for this learning opportunity and I hope to get better!

2. Experimenting with data structures and algorithms

A data structure. Another data structure. But what makes these two data structures different and what small feature about them divides the data science community? (I hope someone understood this TikTok reference 😁)

Another key takeaway I learnt from this internship was how much of a difference choosing the correct data structure could make to a model’s overall runtime. I had learnt about Big O Notation and time complexity in school, but only grew to appreciate these concepts when trying to design a model which needed to be scalable and run multiple times. My most memorable instance of this was when I was trying to pinpoint why my code was taking so long to run — I ended up changing a DataFrame lookup to a dictionary lookup in a loop and the runtime dropped quite significantly (10 minutes to 15 seconds per run). This motivated me to regularly review my code to check for inefficiencies and opportunities to refactor sections.

3. Maintaining a code repo using Git

This project also helped me realise the value of version control systems like Git! When I was experimenting with new features or elements in the model, it was very reassuring to know that my past progress was saved and I could jump back to previous versions and branches if needed. I also alternated between using my work laptop and personal laptop, so having a system to track updates was really useful for me.

Branching with Git (Image Credit: https://www.atlassian.com/git/tutorials/using-branches)

4. Finding a working style and environment that suits you

I’m extremely grateful that my mentors were very accommodating and supportive, so I was able to figure out a working style and pace that suited me. At the start of the project, I spent some time experimenting with the data available, familiarising myself with the MSF services landscape and creating small mock-ups to test what was feasible. After this initial stage, I drafted a proposal of how I planned to implement and incrementally improve on the model, as well as a timeline of some milestones.

I scheduled regular meetings with my mentors, but my team also sat together at MSF’s Hot Desking area so it was very easy to have a quick discussion if I had any clarifications or updates. I really appreciated this!

Activities outside of work

Another aspect of my internship that I liked was the many intern engagement events organised by the Young Talent Team. My favourite event was Collab X, which was a one day “hackathon” centred around UI & UX methodologies, concepts and best practices. This was a field that was entirely new to me, so I was keen to get some exposure and see what I could learn.

We were split into groups to brainstorm solutions to a UX problem and presented them to a panel of judges. In the end, my team came in third, so it was a very rewarding experience!

The Collab X event!

Overall, I fully enjoyed my time working with the MSF FDT team! It was great to sink my hands into a real world project and I really appreciated the supportive environment that encouraged me to grow and learn. If this sounds like something that interests you, I would highly recommend you to apply to GovTech’s internship programme!

Photobooth pictures from Intern Day 2024

--

--