Skip to main content

Hi! I'm Tahmidul!

I am currently studying Computer Science at Lakehead University, and hoping to graduate in April 2024. My laziness compels me to learn more about automation so that I can do less work. I’m usually occupied trying to automate some of my personal projects, by using various scripting languages. DevOps is also another skill I am trying to master, since it would automate a lot of my work.
You can find some of my projects on Github @tahmidul612.


Personal Projects #

Homelab/Media Server #

I have had a homelab for personal self-hosted applications for the last eight years. Currently I am using Ubuntu Server in Hyper-V on my primary Windows PC to host a number of applications, mostly as Docker containers. My experience with the homelab has allowed me to learn a lot about networking, server management, virtualization, automation, scripting, and more. Two of the most important applications I have running are Immich (for photo and video backup) and Paperless-ngx (for document management). Adding AI into the mix through Ollama and N8N has allowed me to automate a lot of my tasks, and explore a lot of new possibilities.

Tech Used

  • Ubuntu Server
  • Hyper-V
  • Bash
  • Python
  • Docker

 

  • Ollama
  • N8N
  • Portainer
  • Multiple Open Source Projects

Autogenerated Calendar for Free Concerts #

I created a script to scrape the Royal Conservatory of Music’s website for free concerts and events. The script generates a calendar file that can be imported into Google Calendar, making it easy to keep track of upcoming events. The script is written in Python and uses BeautifulSoup for web scraping.

Tech Used

  • Python
  • BeautifulSoup

 

  • Regex
  • Google Calendar API

Application Setup Guides #

I have created a number of setup guides for various applications I use. These guides are written in Markdown and are hosted on Github. They include instructions for setting up Playnite, Plex, PowerShell, and Fish Shell.

Plex Poster Downloader (tpdb) #

This project automates downloading and organizing movie and TV show posters from ThePosterDB for use with Plex. The Python script uses fuzzy matching and the Plex API to correctly match poster sets to media files. It streamlines the process of updating posters, either by placing them directly in the media directory for Plex to use or by organizing them for use with Kometa, a Plex metadata management tool.

Tech Used

  • Python
  • Requests

 

  • PlexAPI
  • TheFuzz


This project is a work in progress.

Inspired by art galleries, this project aims to create wallpapers that evoke the feeling of viewing paintings in a virtual gallery. The main challenge is programmatically generating ornate frames for the artwork. The current approach involves using cloud-based image-to-image AI models like Gemini to generate a full frame from a single corner piece. The generated frame is then validated for correct dimensions before being combined with a gallery wall background and informational text to create the final wallpaper.

A painting in an ornate frame in a museum.
This photo I took at the MET museum is a good example of what I want

Tech Used

  • Python
  • OpenCV

 

  • Gemini Python SDK

University Projects #

COMP4478 - Game Programming #

Our second project for the course was to develop a game using Unity. We chose to make a simple puzzle platformer. My responsibility was to write the code and use unity editor to implement the user interface for the game.

I also played a part in overseeing the collaboration on Github, to merge the PRs and fix any conflicts. Although not a part of our final grade, I implemented a simplified DevOps pipeline using Github Actions and GameCI, with continuous integration and deployment. When we release a new version of the game, I setup a workflow using GameCI to test the project before building the package for Windows and WebGL. The same workflow is used to deploy the WebGL package to Github Pages.

Tech Used

  • Unity
  • C#
  • Github

 

  • GameCI
  • Github Pages
Tahmidul Islam
Author
Tahmidul Islam
I’m a computer science student at Lakehead University. I started coding because it was fun, and it’s still fun to learn about new things every day. Automation is my most recent interest, because I am super lazy and if I can get a computer to my job for me, I will (even if it takes longer than just doing it myself).