sarsooxyz.hugo/content/dev-engineering/index.md

155 lines
8.7 KiB
Markdown
Raw Normal View History

2022-08-29 17:18:21 +01:00
---
title: "Dev & Engineering"
date: 2021-01-17T22:59:40+00:00
draft: false
aliases:
- /dev
2022-08-29 17:18:21 +01:00
---
2024-10-06 17:44:58 +01:00
[![Gitea](https://img.shields.io/badge/Gitea-34495E?style=for-the-badge&logo=gitea&logoColor=5D9425)](https://git.sarsoo.xyz/sarsoo/-/packages)
[![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)](https://git.sarsoo.xyz/sarsoo/-/packages?q=&type=pypi)
[![Rust](https://img.shields.io/badge/rust-%23000000.svg?style=for-the-badge&logo=rust&logoColor=white)](https://git.sarsoo.xyz/sarsoo/-/packages?q=&type=cargo)
[![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge&logo=docker&logoColor=white)](https://git.sarsoo.xyz/sarsoo/-/packages?q=&type=container)
[![Kubernetes](https://img.shields.io/badge/kubernetes-%23326ce5.svg?style=for-the-badge&logo=kubernetes&logoColor=white)](https://git.sarsoo.xyz/sarsoo/-/packages?q=&type=helm)
2024-07-28 20:54:19 +01:00
2024-07-20 15:36:04 +01:00
{{% image-box-link src="/posts/mixonomer/PlaylistExample.png" href="/posts/mixonomer" title="Mixonomer" caption="Python + React" %}}
2022-09-16 22:55:18 +01:00
2024-07-20 15:36:04 +01:00
{{% image-box-link src="/posts/selector/dashboard.png" href="/posts/selector/" title="Selector" caption="C# + TypeScript + Vue.js" %}}
2022-09-16 22:55:18 +01:00
# [Infrastructure]({{< relref "infra" >}})
2023-05-27 22:32:16 +01:00
I manage my local and cloud infrastructure with __Terraform__ + __Ansible__ + __Docker__. I've found this stack incredibly powerful so I've written a post about my patterns and what I love about it.
{{< figure src="/posts/infra/grafana.png" alt="grafana dashboard" >}}
Basically, Terraform creates and destroys infrastructure, Ansible manages the OS-level stuff and then the services I run use docker compose. I use a _bootstrap_ Ansible role instead of golden images.
[Read More]({{< relref "infra" >}})
2023-05-27 22:32:16 +01:00
2024-07-20 15:36:04 +01:00
{{% image-box-link src="/posts/visual-search/mapSurfaceWithMax2.png" href="/posts/visual-search" title="Visual Search" caption="MATLAB" %}}
{{% image-box-link src="/posts/lpss/hood_m_gram.png" href="/posts/lpss" title="Speech Synthesiser" caption="MATLAB" %}}
{{% image-box-link src="/posts/markov/StateTopology.png" href="/posts/markov" title="Hidden Markov Models" caption="Python + Numpy" %}}
2023-05-27 22:32:16 +01:00
2022-08-29 17:18:21 +01:00
# [Holoportation](/holo)
`C++ [Kinect SDK, OpenCV]`
`C# [Winforms, Unity 3D]`
Holoportation is an area of research exploring the ability to livestream 3D environments over the internet. The technology has many applications for __AR/VR__ experiences like 3D sports and music events or smaller-scale applications like a 3D __Twitch__.
The holograms are captured in the form of a __point cloud__, a cluster of coloured dots that, when presented correctly, can appear like the original object.
{{< figure src="/images/holo-avatar.jpg" >}}
2022-08-29 17:18:21 +01:00
My undergraduate dissertation documented extending the [__LiveScan3D__](https://github.com/MarekKowalski/LiveScan3D) holoportation platform to allow multi-source streaming. The existing capabilities allowed a single scene to be captured in real-time and streamed elsewhere for viewing, multi-source allows multiple independent scenes to be received and composited at the same time (a many-to-one system).
{{< youtube NP0aVjuk5fU >}}
2022-08-29 17:18:21 +01:00
[Read More](/holo)
2022-09-16 22:55:18 +01:00
{{% image-box-link src="/posts/draught/checkers-board.png" href="/posts/draught" title="Draught" caption="Rust + Js" %}}
{{% image-box-link src="/posts/game-of-life/gameoflife1.png" href="/posts/game-of-life" title="Game of Life" caption="Rust + Js" %}}
2022-08-29 17:18:21 +01:00
# [Mixonomer](/mixonomer)
`Python [Flask]`
`JavaScript [React]`
Mixonomer is a web app for creating smart playlists for __Spotify__. These playlists watch other playlists to use them as sources of tracks. These tracks are filtered and sorted before updating a __Spotify__ playlist.
Updates are run multiple times a day or on-demand. Additionally, __Last.fm__ integration provides listening statistics for your playlists.
2022-09-20 17:08:19 +01:00
{{< figure src="/posts/mixonomer/cloud-structure-3.png" alt="cloud structure" >}}
2022-08-29 17:18:21 +01:00
The project began as an exercise in recreating the functionality of [__Paul Lameres__](https://twitter.com/plamere) [__Smarter Playlists__](http://playlistmachinery.com/) app. This tool had become a really important part of my daily listening habits as a way of combining my smaller sub-genre playlists into larger mixes.
The app has a __Python__ back-end written in __Flask__. The front-end was built using a __Node + Webpack + React__ stack.
The system is now deployed with a fully serverless architecture.
[Read More](/mixonomer)
[Try It Out](https://mixonomer.sarsoo.xyz/)
2024-07-28 20:54:19 +01:00
[![GitHub](https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge&logo=github&logoColor=white)](https://github.com/Sarsoo/Mixonomer)
2022-08-29 17:18:21 +01:00
2022-09-16 22:55:18 +01:00
---
2022-08-29 17:18:21 +01:00
# [Selector](/selector)
`.NET [ASP.NET, Redis, Docker]`
`TypeScript [Vue]`
A __Spotify__ listening agent which watches what you listen to and presents related data and information in a live dashboard. __Spotify__ presents some interesting track data that isnt visible in the official clients such as its beats-per-minute, key signature and a musical descriptor.
2022-09-20 17:08:19 +01:00
{{< figure src="/posts/selector/dashboard.png" alt="dashboard" >}}
2022-08-29 17:18:21 +01:00
[Read More](/selector)
[Try It Out](https://selector.sarsoo.xyz/)
2024-07-28 20:54:19 +01:00
[![GitHub](https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge&logo=github&logoColor=white)](https://github.com/Sarsoo/Selector)
2022-08-29 17:18:21 +01:00
2022-09-16 22:55:18 +01:00
---
# [Listening Engineering](/posts/listening-analysis)
2022-08-29 17:18:21 +01:00
`Python [scikit-learn, Jupyter]`
__Spotify__ and __Last.fm__ are two powerful platforms for music data and consumption.
I wanted to explore what insights could be found in my 3 years of __Last.fm__ scrobbles when augmented with __Spotify__ data. Ideally, I also wanted to be able to apply the intelligence to the __Mixonomer__ playlist pipeline.
__Spotify__ provides audio features for the tracks on its platform. These features describe a number of qualities for the tracks including how much energy it has and how vocal it is. I investigated whether the set of audio features for my larger genre playlists could be used to classify tracks by genre.
2022-09-16 22:55:18 +01:00
[Read More](/posts/listening-analysis)
---
2022-08-29 17:18:21 +01:00
# Signal Processing
Throughout my studies I found myself particularly interested in the signal processing and AI modules, these have included:
- Computer Vision and Pattern Recognition
- Visual Search Report
- Robotics
- ROS Labs
- Speech & Audio Processing & Recognition
- Linear Predictive Speech Synthesiser
- Hidden Markov Model Training
- Image Processing & Deep Learning
- CNN Training Coursework
- AI & AI Programming
- Shallow MLP Coursework
[Posts](/posts)
2024-07-28 20:54:19 +01:00
[![GitHub](https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge&logo=github&logoColor=white)](https://github.com/Sarsoo?tab=repositories&q=coursework)
2022-08-29 17:18:21 +01:00
2022-09-16 22:55:18 +01:00
---
2024-07-20 15:36:04 +01:00
<!--- 2016 for coding, 2018 for Linux --->
2024-07-28 20:54:19 +01:00
I've been coding for 8 years and I now work as a software engineer in fintech. Day-to-day this is in [__C#__](/holo/) and [__TypeScript__](/mixonomer) but I also like working with [__Python__](/mixonomer) and [__Rust__](https://github.com/Sarsoo?tab=repositories&q=&type=&language=rust&sort=). I keep all of my projects on [![GitHub](https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge&logo=github&logoColor=white)](http://github.com/sarsoo).
2022-08-29 17:18:21 +01:00
Alongside development I also enjoy working on infrastructure, I have 5 years experience using __Linux__ and managing networks. I have experience working with cloud technologies from [__virtual machines__](/holo), [__web server PaaS__](/mixonomer) and [__serverless functions__](/mixonomer) to [__NoSQL__](/mixonomer), Big Data SQL and [__pub/sub messaging__](/mixonomer). Much of this experience was gained during my [__Mixonomer__](/mixonomer) project and during my __Disney__ internship. As part of my [dissertation](/holo#research), I used a global cluster of virtual machines as an environment to measure and experiment with holographic video QoS over long distances.
At university, I was particularly interested in the software side of the field including modules in __programming__, __signal processing__ and __AI__. I also took a set of modules in __semiconductors__ and __nanoscience__.
[Posts](/posts)
2022-09-16 22:55:18 +01:00
---
2022-08-29 17:18:21 +01:00
# Awards
Throughout my time at university, I earned multiple awards for academic achievement
- ___Deans List for Academic Achievement___ (2018)
- Awarded for overall academic performance as part of my international exchange program with the [__California State University, Los Angeles__](https://www.calstatela.edu/)
- ___Lumentum Award___ (2020)
- Awarded for achieving the __highest mark__ in my third year __Semiconductors & Optoelectronics__ module
- ___Atkins Best Oral Presentation 2nd Prize___ (2021)
- Awarded for giving second best oral presentation for ___multi-disciplinary design project___. Project involved designing a fully renewable ship and depot to repair sub-sea fibre optic cables.