Welcome!
This website aims to showcase some projects I have worked on
feel free to connect with me on any of the media below or download my CV.
I studied Computer Science at University College London (UCL) and graduated with a First Class Honours, and asides from Computer Science and technology, am interested in Maths, Physics and Philosophy.
I am a native speaker of English and Urdu, with professional fluency in Punjabi and German.
*Certifications issued by HackerRank.
Educational History
Year 1 Average: 74.6%
Year 2 Average: 85.6%
Year 3 Average: 79.7
Maths: A*
Further Maths: A*
Physics: A
Maths: A
Further Maths: A
Physics: A
Philosophy, Ethics & Islam: A
8A*, 4A
Below is an amalgamation of projects I have worked on, both in my own spare time, and as part of my university degree.
Module: ENGF0001: Engineering Challenges 1
Technologies used: Quartus Prime, MIPS Assembly language
Description
We were given an intel FPGA, and were using the Quartus Prime Software with the end goal of simulating our own computer, from scratch. This consisted of building every logical component of a computer from scratch, using the fundamental (AND, NOT and OR) logic gates.
We also came across the MIPS assembly language since our next challenge was to then write some assembly code, which, in a loop runs indefinitely, returning all the square numbers. We use the Mars (MIPS Assembler and Runtime Simulator) IDE to write this code, and then used quartus prime again, to map the outputs of the code to the 7 segment LED displays on the FPGA.
Module COMP0016: Systems Engineering
Technologies used Quite a lot of technologies were used, all starred technologies are the ones that I worked with primarily:
*Framework: Django,
*Programming language: Python,
*Web server: Apache,
*Virtual Machine operating system: Ubuntu 18.04,
Front-End Framework: Bootstrap, *HTML, jQuery, Javascript
*Cloud service: Azure,
Database: Marklogic,
Visuals: chart.js,
Description
As part of this 30-credit module, we were all placed into random groups of three, and then paired up with a firm part of the IXN network run by UCL (https://www.ucl.ac.uk/computer-science/collaborate/ucl-industry-exchange-network-ucl-ixn). My group was paired with the Japanese system integration company, NTT Data.
The project ran in the background, throughout our second year where we were expected to arrange meetings with our clients at NTT Data as required, complete bi-weekly reports and complete several important pieces of work relating to our project such as legal considerations, HCI and design aspects and many prototypes.
Our task was to design an open banking web application, and we were given many strict requirements by our clients, which we had to meet. Since this was a really large project, we had to document almost everything that we did for it on a project website which you should take a look at if you are interested in this project in more detail.
Module COMP0010: Software Engineering
Technologies used Java, Antlr, Docker, jUnit
Description
Our task here was to re-engineer a legacy shell. We were given a very basic, incomplete skeleton code, written in one class, and almost all in one function. We were given a specification describing exactly what was required of the shell, and other than this, we were given some creative freedom as to how we approached the refactoring and programming of the rest shell.
My group and I decided that writing a separate parser using Antlr would be very beneficial and it would allow us to implement some of the missing functionalities (such as globbing), very efficiently. So I learnt Antlr and how to integrate it into Java to be able to parse the input from the user. I then studied a lot about design patterns and decided to implement three main design patterns: the visitor, decorator, and factory pattern. These gave my code structure, and a lot of functional benefits in that they made the rest of the code a lot easier to write and efficient.
I also wrote up some of my own code for additional functions which were not in our provided specification; I looked at the bash shell and the functionality available with it. All of the above is available to read in extensive detail in a full project report, which you should definitely take a look at if you are interested in the project.
Technologies used Bootstrap/HTML&CSS
Description
During my second year at universiy, I was the Treasurer of the Pakistan Society at UCL. My primary role was managing the finances of the society, finding sponsors and other tasks of similar nature. During this, I noticed that our society was doing a lot of communicating through various forms of social media, and thought it prudent to unify everything in a single website, and so I made one using a bootstrap template and some very basic HTML and CSS knowledge.
Since I am no longer part of the Pakistan Society committee, I am unsure as to how the next committee has handled the website and if they have renewed the payment for the domain that I purchased (www.uclpaksoc.com). Regardless, I did put everything on github, so the website should be available on www.uclpaksoc.github.io.
Technologies used Python, Open Weather API, Tweepy API, aws (amazon web services)
Description
To warm up some basic programming skills in the summer we were locked-down with Covid-19; I decided to write a simple python program which uses the Open Weather, and Tweepy (Twitter) API to create a simple bot that tweets the London weather every hour.
To make this a little cooler, I decided to also add functionality to tweet the sunset and sunrise times every day at 01:00 am (UK time), and then also integrated emoji functionality so that the tweet does not look boring.
Finally, to avoid having to keep my local machine on at all times to run the code, I set up a virtual machine using AWS and then pushed the python code over there, to run indefinitely using a screen, and the python scheduling library.
Technologies used Quite a lot of technologies were used, all starred technologies are the ones that I worked with primarily:
*Framework: Django,
*Programming language: Python,
*Web server: Apache,
*Virtual Machine operating system: Ubuntu 18.04,
Front-End Framework: Bootstrap, *HTML, jQuery, Javascript, React
*Cloud service: Amazon Web Service (AWS), EC2,
*Database: PostgreSQL RDS on AWS,
Storage: S3 Buckets on AWS
Description
In early April, when lockdown uncertainties were rife, I was approached by a friend about an idea to create a social mobility organisation for state-school students. The novelty in this particular initiative was that it was to be run completely by students, and not just any students but state-school students who understand the struggles and hurdles that people from non-selective schools have to go through.
This idea resonated with me greatly, as I attended a very poor performing state-school, with very little means of supporting me in my journey to university. I wanted this organisation to be very successful and really flourish, so I took on the role of the web design lead so that I could design a platform for the organisation to take off. Initially, I began with a simple website, in which I used my web design skills and a rudimentary bootstrap template to make it responsive. However, my goal was to make this organisation the best social mobility initiative, and so I needed to make the web platform remarkable and so I onboarded a computer science student to help me with my ambitious endeavour.
I began by migrating the existing website into a fully-fledged Django web application. This was so that I could do more with what we already had; and consequently, I coded in a log-in/sign up portal so that students who visit the website can create their own accounts and have some personalisation to the opportunities they see. Similarly, the executive team of inState could also distinguish between different users of the application and see how it was being used, as well as collect certain data (with adequate permissions of the users of course).
I then spent a couple of weeks coding the main logic of the web app, with the dedicated opportunities portal which was a sophisticated data table, dynamically generating and then showing all the different opportunities that inState was offering. After the Django back-end, and a basic front-end was completed, we migrated our local sqllite3 database to a PostgreSQL database on AWS, as well as setting up file storage "S3 Bucket" on AWS before pushing the whole project onto an EC2 instance (also on AWS).
Finally, I set up an apache2 webserver which, with WSGI deployed the Django web app onto the internet. I configured it to force HTTPS connectivity, and I used LetsEncrypt to give the website a secure SSL certificate. This was sufficient for our launch on the 16/09/2020 however making edits to the website was still very cumbersome so my team and I implemented continuous integration to the git repository that we pushed our work to. This meant that all our changes were deployed automatically as soon as we pushed our work to git. This saved us a lot of manual work and made our overall experience a lot more efficient- especially since we were given a lot edits to do and soon after launch we began migrating our front-end to React.
Feel free to leave me a comment and I will get back to you as soon as possible!
π€‘π€‘π€‘π€‘π€‘π€‘π€‘π€‘π€‘π€‘π€‘π€‘π€‘π€‘π€‘π€‘π€‘π€‘
Congratulations!
I hereby pronounce you chief clown of the entire cosmos, I even warned you fgs.
You are not a clown, you are the entire circus- nay the very concept of comedic public performers.
You really thought in big 2020 I went and learned PHP from scratch, processed a form and configured a whole server just to send an email from my own website to myself...
I mean I get we were in quarantine for a couple months but duuuuuuuuuude, who is even trying to learn PHP these days, not to mention that I have literally plastered about 47 different social media links all over this website so why dont you try to contact me like a normal person? Is it too much effort? Is that really too much to ask for man, Im actually tired. I may be an insomniac but its people like you that make me struggle to sleep at night, I mean its hard enough to accept the futility of this fleeting existing, now I have the added burden of taking care of incompetent people on my fragile injury-prone shoulders (Thanks for the impingement!) Smh. Do better.