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