Hi, I am Martin, but I go by Visgean on the internet. I am a software engineer at Dexter energy, an energy forecasting company in Amsterdam. I am interested in renewables, deep learning, weather and software development.
Contact me
- Matrix: @visgean:matrix.org
- Telegram: @martinsothercat
- Email: visgean@gmail.com
Check my code:
Commercial open source:
- django-session-log - logging module I made for AgFunder
- Seeder - internal CMS and website for 🇨🇿 National Library
Hobby projects
- qr-wifi - small Go utility to share wifi password in QR code on Ubuntu
- grid - Vue.JS app to explore what camera and lens I used.
- Monzo transaction map + integration to Google calendar
- toggl2webcal - add Toggl entries to google calendar
- exif2pandas - collecting information on my photos
- pdfs-rename - automatically renaming pdfs based on metadata or content
- photos2geojson - creating html map from my photos
- fakturuj_pyco - invoicing tool
- Ethernal - Ethereum blockchain explorer
- urljects - improved Django routing - archived project
- fakesudo - super old tool to poison bash sudo
- debatetime - time keeping application for debating tournaments, released for web, android and windows phone. Hundreds of people have used it in the last 7 years. Example photo here.
University
I graduated with honours degree in Computer science from University of Edinburgh. You can see some of my photos from that time here.
Final year project - Deep RL
My final year project was to learn walk-like behaviour on simulated dog-like robot with end to end deep reinforcement learning.
Read my final year project report here (received an A). Or watch some funny videos of learned behaviour below:
- Walking on a mesh - somewhat surprisingly adding uneven terrain improved learning performance. My theory is that the uneven surface filters undersired movement that the agent exhibits initially.
- Walking on flat surface - demonstrating that even small networks learned to perform forward motion. Before working on this project I have mostly studied image recognition where the networks can be gigantic. Therefore it was quite surprising for me to find that smaller networks even outperformed the larger ones.
- Stepping over obstacles
- Swing-like motion - here the agent learned to receive the reward without moving forward. This is an example of classic problem with RL where the the reward does not capture intended behaviour properly.
- Agent that learned to walk around obstacles, again I did not set up the environment properly and the agent learned to simply walk around the obstacles. I am quite happy about these results as it shows that the agent is responding to the environment.
Machine learning for weather prediction
For our Machine Learning Practical course we tried out various deep learning techniques to predict weather. We used Weather Bench dataset that made it very easy to evaluate our results and also included pre-processing of the data. Read the report.
Skills
- Python, Django (10 years), Django REST, Numpy, SciPy, Pandas, Scikit-learn
- Frontend: Vue.js
- Machine learning: Tensorflow, Keras, PyTorch, OpenAI Gym, Reinforcement learning
- Databases: PostgreSQL ♥, Redis, MySQL, MongoDB, SQL and caching optimizations
- Deployment: Ubuntu, Debian, docker, nginx, gunicorn, uwsgi, caching, cloudflare, Systemd
- Kotlin - Android development
- Haskell (beginner level)
- Bitcoin, Ethereum - implemented a prototype of mining pool for Ethereum