← Home

Experience

Dec 2023 - Present   ·   Monash University, Casual Research Officer -> Senior Technical Officer

ABOUT THE PROJECT

In December 2023, I started developing an Auslan spell generation package for Monash University's Department of Human Centred Computing. The package translates text prompts into interactive 3D animations, engaging the user and enhancing the learning experience. As this project is an npm package, it can be integrated into any website. We are still in the process of alpha testing; thus I cannot include a live demo on this website; however, I am optimistic this should change shortly, so bookmark this website if you are interested :)

By default, the package includes UI controls (that can be hidden using the API) which allow users to interact with the 3D models. The hands can also be programmatically controlled through the API, providing granular control over the animations. Additionally, all styles can be overridden by developers using the package; for simplicity, there is also the option to only provide a colour theme.

The package was designed to be highly configurable, allowing any developer to make it work for their use case. Additionally, for when configuration fails, the package is highly extendable, meaning if a feature does not exist, you can either fork the repository or make a PR.

Plans for the future include: integrating the package into Sign Bank, supporting more languages, and creating an educational finger spelling web app.

Tech stack:

  • Three.js
  • TypeScript
  • HTML
  • CSS
  • npm
  • Nectar (a research cloud)
  • nginx
  • Linux (Ubuntu)

ABOUT ME

This was my first time creating a package for other developers to use; it forced me to think carefully about how others would use the code, and thus how the API should be designed to accommodate these users. I believe this has experience greatly improved my ability to design software architecture, as well as differentiate between good and bad design. Notably, the package is ~2500 lines of code, this is significantly less than other projects I have completed; however, the effort spent on each line is much greater. I dedicated time to code reviews and analysis to simplify and reduce the code base as less code is better, this is especially true for packages - I'm probably not going to use your package if it increases cold load times. Speaking of code reviews, I also learned a lot about the workflow and development cycle that works well for me - create janky but working iterations of features to get an idea of the problem space, design a more elegant solution, bring the design to life with code, review, and finalise. A specific example of this approach, that I am proud of, is the code for handling animations. I had programmed a simple solution that worked for most cases but had some major issues, this first iteration helped me understand the problem and brainstorm solutions. Eventually, I created a data structure and class that handled the animations perfectly, even allowing me to scrub the animation (similar to a YouTube video) this is especially cool because we are playing and blending multiple animations, so something like mixer.update(seconds) (the usual approach) would not work as the blending would break.

The last thing I will say is that I really enjoyed working on this project as it became clear that my years of study and work have culminated in, if I do say so myself, a rather good programmer.

Skills developed:

  • Project management
  • Time management
  • Self code review
  • Architecture design
  • Repository management (consistent commit msgs, code formatting, PRs, etc)

REFERENCES

Dr. Kalin Stefanov, ARC DECRA Fellow · Supervisor, Chief Investigator
Show email


Nov 2023 - Aug 2024   ·   iLearn Education, Frontend Developer

ABOUT THE PROJECT

Soon after I resigned from my position at Woolworths I began work on the frontend for iLearn Education. iLearn Education currently provides in-person tutoring services; however, they are expanded online to offer courses where students can practice for NAPLAN exams, and scholarship & entry tests. The website allows students to view their results and compare them to other students providing insight into where they might place for the official tests. Additionally, the website posts blogs to inform parents of the actions they can take to maximise their child's chance of success.

Tech stack:

  • Next.js
  • React
  • TypeScript
  • JSX
  • CSS
  • Digital Ocean

ABOUT ME

This project was the first where I designed (alone) the frontend architecture, in the process I made a few technical mistakes that came from an overzealous attempt to apply programming principles & patterns (dependency injection, factories, etc.). Technically, the code is more extendable; however, we refactored more than we added new features making the abstractions hindrance. I think my main takeaway from this experience is: that premature optimisation will (mostly) be a hindrance, it is better to solve the problem in the most simple way, and only add abstractions when a clear need arises.

I was able to take these learnings to my next role as a Casual Research Officer, which helped me circumnavigate many of the problems I encountered in this project; however, it is worth noting that this project had a greater scope, and thus it was much harder to keep the code clean and organised.

Skills developed:

  • Client communication
  • Requirements gathering
  • Time constrained development
  • SEO
  • UX design
  • Code collaboration (PRs, code review, consistent code formatting, etc)

REFERENCES

Devang Krishna · Client
Show email

Feb 2023 - Oct 2023   ·   Monash University, Software Industry Experience Studio Project (FIT4002)

ABOUT THE PROJECT

FIT4002 is Monash University's Industry Experience unit, essentially, you join a team and then are assigned a project and client. It is up to the team how they want to organise everything - roles, version control, tech stack (to an extent), etc. I ended up choosing a team that was a subset of a larger team from a previous unit, I knew everyone in this team would contribute and work well together. We were assigned a project managed by Jonny Low, the project was a cross-platform mental health triage (prototype) application. The application included roles for admins, nurses, and nurse leaders; each role had different requirements, and thus different features and UI. I won't bore you with a detailed explanation, instead, I recommend watching the demo video here (same as the embedded video), you can also watch a condensed version here; Mr. Low has his own publication of the application here if you would like to read more.

Tech stack:

  • React Native
  • Firebase
  • TypeScript
  • JSX

ABOUT ME

I learned a lot from the team on this project, specifically the other lead developer (who ended up getting dux); I believe this was the first time I recognised the code written by another developer was much better than what I could accomplish (with my current knowledge). I actually use very similar (de) serialisation logic in most of my projects now because it works so well. What I took away from this (other than specific code ideas) is: to read other people's code, especially people who are better at programming than me.

As lead developers, Andre and I were responsible for the codebase, early on we had to deny some PRs because of React mistakes, this was understandable as most had not worked with the framework before; instead of reproaching the team, I suggested we hold a 2-3 hour workshop, in which, I would go over React basics and teach the team how to avoid some of the mistakes we had observed. This workshop worked well, the code noticeably improved, and the team said they found it useful.

Most of my experience has been on solo projects, or on projects where the teams are very siloed, this was the first proper project where I worked with a team of this size. I found the experience of working with other developers to be very enjoyable, it allowed me to focus more on architecture design and implementation rather than specific features. I think I enjoy this more as I find designing architecture allows me to express my understanding in more interesting ways.

Skills developed:

  • Architecture design
  • Teamwork
  • Presenting
  • Leadership
  • Code collaboration (PRs, code review, consistent code formatting, etc)

REFERENCES

Nabeeb Yusuf · Team member
Show email

Feb 2022 - Jan 2023   ·   CosyWrap, Freelance Developer

ABOUT THE JOB

I developed a prototype Site Inspection application for my parents' business (CosyWrap).

Tech stack:

  • React Native
  • Firebase
  • TypeScript
  • JSX

ABOUT ME

This was the first application I had ever built, honestly, I had no idea what I was doing; thus, I was incredibly fortunate to have this opportunity to learn. Through this project I was introduced to, designing UIs, implementing APIs, creating databases, and much more. This experience provided me with the foundation I required to develop and refine these skills over time. I truly don't believe I would be where I am today without this first application.

REFERENCES

Graham Loose · CosyWrap Owner
Show email

Oct 2018 - Nov 2023   ·   Woolworths, Night Filler & Deli Clerk

ABOUT THE JOB

There's really not much to say about this one; I worked for five years stacking shelves and serving in the deli.

ABOUT ME

If there's one thing I learned from this job, it is that I never want to work in a deli again. On a more serious note, this was my first job, so it was very helpful for building my soft skills - communication, teamwork, time management, etc. I worked at Woolworths while studying, this improved my time management and organisational skills - it taught me how to balance a social life (living on campus), with studies, and work, a skill I'm sure I'll be using for the rest of my life.

REFERENCES

Kristian Siviloglou · Fresh Convenience Manager
Show phone number