Cathal O'Callaghan

3rd year Computer Science & IT NUIG



Hi I'm Cathal, a passionate CS student who loves to apply my knowledge to convert abstract real world problems into programming based solutions.

I enjoy writing the underlying infrastructure code that users never see but constantly rely on for projects such as Req and Fellowship Wrapup (both of which came first place in their competitions). I mostly use go, python or javascript depending on what's the best tool for the job but am always open to learning new languages if needed.

Jump straight to my:

Languages

Technologies/tools

Git Linux Travis CI i3wm

Experience


MLH Fellowship Intern (remote)

📅 June - August 2020
  • As part of the innagural class of the MLH Fellowship I contributed full time to a range of open source projects under the guidance of a software engineer.
  • Gave technical support on issue boards and delivered general quality of life improvements to click (325,000 repositories dependant) and beego (used most notably by Huawei enterprise cloud).
  • Pair programmed regularly with other students to reproduce bugs and research specifications before adding new features
  • Implemented and documented custom logging format functionality on beego. This was an important addition in the major 2.0 release

Projects


Req

🎉 Awarded best overall group project 🎉
Req is a real life based betting app made to enable anyone to bet on anything. With geolocation being an integral part of the app bets can be locked to users within certain areas which incentivizes people to go out and get some fresh air.

  • My role: Project Lead/Backend Infrastructure/Frontend UI
  • Developed between January and April 2020
My contribution:
  • Fully functioning email service
  • Dockerized and deployed to AWS
  • CI testing of all API endpoints with Travis CI
  • Acted as scrum master for our weekly sprints
  • Automation of tedious tasks with golang scripts
  • Complete user authentication/management system
  • Used existing data for analytic graphs on user profiles

🎉 Awarded best showcase/portfolio project 🎉

A summary showcase of all your contributions made as a graduating gift from the MLH Fellowship! I came up with the project idea and worked on the backend. My team of 4 students made this project during the MLH halfway hackathon

Backend uses a golang web server powered by gmux and utilises the GitHub graphQL API for fetching data. Frontend uses nextjs for rendering and vercel for hosting. Service is currently hosted on Google Cloud Platform

Howdoi Discord Bot



A discord bot interface for the popular howdoi python cli tool that serves instant coding answers via the command line. This project was made for the initial MLH Fellowship hackathon.

Powered by Flask on the backend for handing queries and hosted on Heroku. Uses some light regex for parsing of queries before passing it onto howdoi. The bot can be invited to any discord


Scrapes current articles from a dozens of topics off of multiple websites for later data analysis.

A chrome/firefox extension designed to manage online browsing workspaces. Create snapshots of all active tabs to save for later viewing. One of my favourite projects as it solved a real life problem of keeping track of browsing sessions that I wanted to come back to at a later date. Utilizes chrome's sync storage to sync the saved snapshots across all chrome browsers a user is signed in to

A program to parse and provide search functions for a global database file on airports. I am using the data from OpenFlights which has over 10,000 entries. Each entry has 14 data points that range from name and ICAO code to it's exact coordinates.

I took this on as my end of year C project to strengthen my knowledge of memory allocation, use of structures and apply my work to some real world data to do something interesting.

Built my first flutter app as a means of keeping track of things such as who's hosting on the college server and the status of one of my scraping scripts from my phone. Golang API used to compile and serve the information
⭐ Read my guide on how to make this on the NUIG Compsoc wiki page! ⭐
⭐ Or on Dev.to if the compsoc page is innacessable ⭐

I combined Google's Tesseract OCR alongside python to make a script that is capable of highscores of thousands compared to my own which is around 12.

This is a nice little i3blocks indicator script to help you monitor the current build state of a github repository.

I did analysis of the userbase of the popular exam related website studyclix.ie. I compiled the stats of all the users and compared them to the average student based on official SEC (State Examinations Commision) data. This was my first data science related project and I thoroughly enjoyed working through it.

In the pipeline

A chrome extension made to enable you to play your favourite songs on youtube at any BPM you desire. Youtube's default playback rate options (1.25x, 1.5x etc) work horribly with music and therefore being able to change the actual BPM of the music is much better. This extension uses the Spotify Web API to gather information such as BPM and other data points about a particular song and with that information it then enables altering of BPM.
Graph your friends network on Steam! The goal of this project is to determine the degrees of seperation between any two users on Steam.

"Six degrees of separation is the idea that all people are six, or fewer, social connections away from each other. Also known as the 6 Handshakes rule. As a result, a chain of "a friend of a friend" statements can be made to connect any two people in a maximum of six steps. "