intro to uoft cs
so cs people at uoft use this thing called markus for grading their assignments, i am a computer engineering student so this is actually not in my deparment; nevertheless, i had a lot of fun working for them both from an open source (OS) perspective and educational one.
i also worked at the same time in another team for one of the residences at uoft called chestnut, iāll introduce both to u but i was only paid by chestnut and not by the CS department. I think that this is important to clarify because if u do a background check on me uāll see that this role is not called āswe internā but called āengineering programming ambassadorā (EPA) instead, the swe intern was for the markus role exclusively.
Also, for context, I pretty much swallowed the EPA role into this SWE role because the EPA part is not really relevant for my career trajectory (for now) but definitely animates a variety of soft-skills I gained along the way which we can strongly benefit from.
With that out of the way, letās talk a little about both Chestnut and CS!
intro to chestnut
ok first off, chestnut is NOT THE NUT, like NOT the actual food; its a residence at UofT, eish?
yeah i lived there for 2 years, in both my first and second year; during my second year i was working as something called an EPA (Engineering Programming Ambassador), super fancy way of saying āguy who does event planning with some other people who do the same thingā.
little did i know that iāll get to code things in this experience and also get rights to call it a swe internship; teehee big time.
what i did
so as i said, this role was mostly event planning and being SoCiAL, i wanted to push myself a little and ended up overdoing that this time, i love being social but not to the degree of being fake; that degree is kinda needed in roles like this where literally everything is just smiling at people who are walking by and completely ignoring ur existence, anyway, letās talk software: iām half full-stack swe and half embedded swe so i coded a website for chestnut to use, there wasnāt any embedded use-cases here but if there were then trust me iād have tried something there too.
the website i made was a qr code generator, iāll explain how it works here; the rest of the time in this internship was spent being social, which is actually not that bad of a thing ;)
iām kinda happy that my supervisor was very lenient (yes lovely person) and they called me a swe at the end of this internship, omg, upgrade? nah downgrade cuz it means being less social ;0;0;0
rng
its not rng (random number generation) alone but there are many ways in which we can make a unique url for use in shortening; we also need to consider ip configurations and dns for redirecting properly and seeing how that would work in these contexts but WHO CARES iām not gonna bore u this much; i can if u want, contact me and i can yap abt this for days
so using some model i programmed in python, i was able to get hold of this generator that could make proper aliases for url usage that are unique and also relevant to this use case in a direct way.
url
i fortunately already has access to a 4 letter url, the legal limit for a url is 3 letters so i was pretty close ;)
qr code
used javascript qr code genrator and did some magic so that it could be a version 1 qr code and be as simple as possible, peewoop
lifetime
allowed users to implement lifetime and other techniques to make sure that the character space for keeping v1 qr codes are not completely used up (which would suck)
security
BRO I GOT HACKED
new update
fixed it using some complicated things i never knew of until this internship and it seemed to work so pushed it and gave the residence access to it once again
UI fixes
made it look better cuz my supervisor said some things and i just made it insanely nicer then
official handover
gave it to them and they used it in some posters i could see around the residence hall and it felt kinda nice to have them use it for this
why it matters
this lowkey wasnāt even a swe internship but i managed to make it one and get my supervisor to agree for me branding it as one (yay), shows importance of doing what u love regarldess and finding some usecase where what u love can be implemented.