Some of the things I've worked on

More can be found on GitHub

Crispy Musicular

golang
concurrency
spotify

Backing up Spotify playlists

For a long time I have been somewhat worried about losing all of my Spotify playlists. Reading about people losing access to various accounts made me anxious what would happen if all my playlists would one day disappear. For that reason I built this app to regularly back them up. It utilizes Spotify API, Youtube API and Google Drive to preserve and safely backup to a reliable storage medium. Furthermore, with Go channels it also achieves great performance by concurrently processing multiple playlists.

Also by having this data in SQL(ite) database it’s pretty easy to get some cool stats. For example I currently have saved around 4.2k songs which have around 2.5k unique artist combinations of which 1.7k only appear once. For contrast, artist with most appearances is Led Zeppelin with only 20 songs in total.

IMDB Calendar (iCal) generator

typescript
nextjs
firebase
IMDB

Calendars for releases based on IMDB lists

Application that provides iCal that can be added to a supported calendar application which will be automatically and periodically updated. It does this by parsing provided IMDB lists for title (TV or Movies) ID’s which then are linked with TMDB ID’s and then TMDB API is used for getting release or air dates for those titles.

After the initial setup, user is not required to do anything as long as the calendar application automatically syncs/refreshes web-based iCal files. The iCal URL will not change, but the contents will be periodically (every ~24hours) updated. This means that if the new season of TV show is released, it will be added to the calendar. If a new movie or TV show is added to the list, it will be added to the calendar.

theme-sunset.nvim

neovim
lua

Automatically switch themes based on sun altitude

For the longest time I have sworn by dark theme, but every once in a while I found myself struggling to see things during the day with sun shining. I tried dealing with this by increasing my monitor brightness, but it can only do so much. Switching to a light theme instantly solved any legibility issues. Then some time later I thought, why not automate this (and solve the light/dark theme issue once and for all)? So thats what I did.

I initially thought about using some sort of free API to get whether sun has set, but that would have likely required API keys, making API requests every few minutes from the editor and also wouldn’t work offline. While looking for said API I found that science is really cool and it is possible to pretty accurately approximate sun position with math. Since then I have been using this and still smile from time to time when the theme automatically switches.

Fuzzy Barnacle

typescript
graphql
prisma
mobx
apollo
relay

Trying out GraphQL

Remembering TypeScript and trying out GraphQL with various new frontend tools regarding state management. Backend written in TypeScript + NodeJS with Prisma ORM and Apollo GQL server.

Frontend is using React + TypeScript, Chakra UI for basic UI elements and for state management tried out React Context, MobX, Apollo Client, Relay.

shttp

elixir
functional
http

SimpleHTTP in Elixir

Trying out a functional language and implementing a bare HTTP/1.1 server with dynamic routing. At the end, the server could serve a website from a directory (html files, css, js, icons) without any noticeable issues. Routing was also capable enough to implement a simple REST-style API similarly to how it would look in ASP.NET or Express.js.