About me

For over 8 years I've developed software solutions and websites for clients of all sizes, be it small startups, indie game sutdios or large multinational organisations and corporations.

I hold a Masters of Engineering in Computer Science from University in Manchester, specializing in Web and Distributed Systems, Interactive Systems Design (UX), with extendent interest in Machine Learning, Text Mining, Data on the Web and Component-based Software Deelopment.

I make cool stuff work on servers, browser, mobile devices, desktop environments and even watches. Latelly I've been working a lot on frontent, overlay and bot solutions for Twitch boradcasters (some examples are LachhhAndFriends, Jacklifear, Mosqiil and Avalonstar).

I love working in different programming languages, but at the moment, JavaScript (with NodeJS) is my absolute favourite. In my free time I take on some Open Source projects or dabble in game dev.

Some of my skills

  • JavaScript (NodeJS)
  • SQL / NoSQL
  • API Development
  • DevOps
  • Ruby
  • UX / UI Development
  • Mobile App Development
  • AWS & Heroku
  • HTML / CSS
  • Team managment

Currently learning

  • React + Redux
  • EmberJS
  • GoLang
  • Sound design

When I don't write code, I sometimes play guitar, manage a stream team, organize events, teach people how to do stuff with code, play video games and sometimes even broadcast on Twitch...

Clients

I've been making websites and apps for upwards of 8 years now and I've been lucky enough to work with some awesome companies and people. The following is selection of some of the clients I've worked with over the past few years.

Projects

Here's a list of some cool stuff I made over the years.

Interaction Systems

Twitch

As seen on twitch.tv JavaScript/NodeJS/Electron

Interactive overlays developed for promotion events organised by the Twitch Media Group for their clients.

TwitchPlays seems to be very popular now and companies are starting to utilise it as part of their promotion streams on Twitch. Together with Twitch I worked on developing a system that allows the broadcast admin staff to control the on screen overlay from a desktop application form remote computers. The system allows for configurable voting and chat vote tracking system with interactive timers and on stream voting visualisation, allowing the chat to actually control the flow of the stream and see the results of their participation in real time.

The management app for the broadcast admins is written in JavaScript with NodeJS and Electron. The on stream overlay is powered by my bespoke overlay framework and JavaScript. The cross computer communication between the mutliple application instances and the on stream overlay is acomplished by use of WebSockets.

Team Site

KotS

kots.tv JavaScript/NodeJS/C#

A Twitch streaming team website for Knights of the Stream. The website was developed as single point on information on the team, their schedules, the StreamRPG point of download and a single point of API integrations for multiple services that KotS connects to.

The website is powered by a custom NodeJS CMS to manage the streaming schedule, integrates with Twitch API to list team members who are live, and provide supporting APIs for StreamRPG.

Other than the website frontend and management, the full solution also runs the stream team's Twitch bot used for highlight timestamp tracking, moderation and team hosting (with auto host features). A special feature is also a ZombieAPI written in C# that allows our twitch bot to connect to the StreamRPG and it's backend to check the status on various elements of the RPG and provide that information in Twitch chat.

Project Ruler

BBC

Internal BBC Product JavaScript/NodeJS/AWS DynamoDB

Project Ruler is a application testing and performance metrics platform developed for BBC Sport. It is capable of executing scheduled unit, integration and E2E tests, measuring application performance based on a number of different variables and utilizing the results as a decision making process for build promotion during continuous deployment.

This project was developed internally for BBC Sport team but was built in a way that would allow other teams at BBC to use it as well. It was part of the move towards continuous deployment on the AWS platform. Powered by NodeJS and JavaScript the application was capable of ingesting various test configurations and executing tests on various deployment nodes and environments through the test runner adapters. The results of test execution and performance analysis were stored in AWS DynamoDB document store and linked to a real time update socket allowing the application monitoring dashboards to be updated in real time.

The project was featured at Velocity Conference 2014 in Barcelona, Spain as part of the BBC Engineering Scaling talk.

StreamRPG

LachhhAndFriends/KotS

kots.tv/rpg Adobe Flash/Adobe AIR/AS3

StreamRPG is a streaming companion app for the team members of Knights of the Stream. It comes in two forms as an admin application (for the streamer) and the client application (for the viewers). The application allows the streamer to increase interaction with their community, build a stronger community around a streaming team and at the same time provides a new view of a Twitch profile for the viewers, as an actual character they can level up and customize as they watch more content on Twitch.

The application/mini-game was originally developed by LachhhAndFriends as a small toy game for his stream and viewers where he would give out xp, chests, steam keys and items as rewards to his viewers. It has since grown and it became the play as you watch application for the Knights of the Stream community. From allowing the whole team to use, to integrating it with TwitchPlaysZombidle, the small application has amassed a large user group with over 4000 daily active users.

While StreamRPG was originally designed to only be used by the Knights of the Stream, we have large plans for it, and soon we’ll be announcing how we plan on expanding on our existing platform.

Tactus

University of Manchester

Deployed at UoM C#/JavaScript/C++/SCCM

Born out of a watercooler chat and a shared love for Star Trek, Tactus is a touch interactive digital signage and information platform I developed for the University of Manchester and the School of Computer Science. The platform was composed of 3 major parts, the AIO touch enabled systems, the custom Tactus Platform software running on Windows Embedded and the Tactus Infrastructure handling the deployment and the application sotre for the platform.

After testing various touch enabled AIO systems and developing the basic prototype of the Tactus software running on one of the selected systems, I developed the full platform and its infrastructure. Once it was ready it was deployed on multiple wall mounted touch AIO system around the School of Computer Science, providing news, school, staff and other useful information to the students.

One of the most interesting challenges was developing the full deployment infrastructure in co-operation with the faculty IT and designing the application store system allowing students to write and deploy their own apps for the platform.

Project MARS/Clipster

BBC

As seeon on BBC Live JavaScript/PHP/BBC Internal Frameworks

Starting with the World Cup 2015, BBC Sport had access to multi angle camera feeds for its sport events. In preparation for the World Cup 2015, we developed the Multi Angle Replay System, building up on the existing BBC Media Player for live streams on the web allowing the viewers to freely change camera feeds on MARS enabled streams.

To be able to push out the full product as fast as possible, we utilized Google Venture’s Design Sprint methodology, allowing us to develop a fully functional feature from scratch in less than a month. Such fast turnaround allowed us to build a number of different version of the final feature and use guerrilla testing by setting up in high traffic areas and showing different versions of the player to various users and taking notes on their experience. This allowed us to define the final optimal version that most users found to be the best.

Having finished the feature early, we developed an expanded version of it, called Clipster, which allowed viewers to search through the archive of over 12000 video clips we had from the World Cup and filter down to the specific one they are looking for in 600ns. They could pick and choose various clips, trim them to their liking, organize them in a time line, add background music and share the final clip with their friends. Some of these features have found their way into the BBC Sports Live platform and the BBC Sports mobile app.

MikeGaming Brand Page

Personal project

mikegaming.tv JavaScript/NodeJS

An in development landing page for my personal Twitch channel. Initially imagined as a single point of information for my Twitch channel, it currently points my various projects and also hosts the API endpoints for my Twitch bots and streaming tools.

The website and the API is powered by a custom NodeJS backend, allowing for easy management and API monitoring.

Project Cardboard

BBC

BBC Internal Project JavaScript/PHP/BBC Internal Frameworks

This was an experimental project ran at BBC, where a group of developers and designers were picked to design a full feature from scratch to finish in only one week. BBC wanted us to look into “cards” and ways of delivering bite sized curated content to the end user.

To develop the full feature in just one week, we used the accelerated Google Venture’s Design Sprint. First we worked with the project managers to acquire all of the requirements for the solution, then we started building the basic functionality and the prototype for the feature while we waited for the designers to provide us with the final designs and assets. Throughout the week we developed a few versions of the feature and integrated it with the existing styling. After showing it to the managers, we had the final version ready for testing.

While working on a feature as part of the design sprint and quick prototyping were a great experience, my favourite part of the project was the final day of real world user testing. We ran a number of tests, some with focus groups trying out the feature and giving the feedback and some other with isolated user sessions with one on one testing and one-way mirror experience monitoring.

Miso Zmiric Portfolio

Personal project

The websie you are seeing this on HTML/JavaScript/Firebase

As a freelancer I get to work on a number of different projects. Some of those are internal enterprise solutions and under a lot of NDAs but some of them I can show off. And this is what this website is for.

Powered by a custom static content generation engine written in JavaScript and a Firebase real-time database, the site hosts the portfolio and some private APIs for my development tools, client access systems and project tracking/management tools.

Fun fact: This website is now in its 80th rewrite/redesign version but is only the 4th version to ever go live. I am probably my own worst client :P

BerzerkPals

Berzerk Studio

Waiting for release JavaScript/MongoDB/PostgreSQL

One of Berzerk Studio’s latest games, Zombidle was developed for web and mobile. As such they use various authentication systems for the game. The authentication system used for web had problems, and so they contracted me to develop a custom authentication solution for them.

I developed a custom NodeJS system that integrates with Berzerk’s save system to minimize the downtime during the migration, and at the same time allows them to unify their authentication on both the web and mobile version of the app. This will be a supporting feature for their transition to unified cloud save feature, allowing players to continue using their save file across platforms. Other than direct integration into the game, I developed a web frontend for users, allowing them to edit their accounts through the web interface, verify email and restore account password (via integration with Mailgun API).

This project brought unique challenges as it required investigation of the existing authentication and save file management systems used by Berzerk, utilising the 2 tier database system with PostgreSQL for relation data mapping for cross platform accounts, and MongoDB for Document based storage of the user profiles and account to save system mapping while optimizing the performance of system and not impacting the game experience.

OverJack

Jacklifear

As seen on twitch.tv/jacklifear JavaScript/NodeJS/Electron

Overjack is a show control and overlay system developed for Jacklifear and his variety of talk shows on Twitch (primarily the Jackass Podcast). It uses Electron and NodeJS to deliver a high performance stream overlay system in a bundled desktop app, allowing the streamer to easily set up an animation rich on stream visual setup while having full control over the scenes, interactive and dynamic elements, all in one simple to use system.

Because Jacklifear is also a self-starter and likes to customize the features of his shows, the Overjack system has been designed from ground up to allow full customisation on his end through 2 approaches. 1st is the show designer feature, which allows the streamer to set up an unlimited amount of overlay presets with customisable widgets for a specific show but also to apply system wide settings, affecting timers, interactive elements, dynamic content on a per show basis. The 2nd is the modular system architecture, meaning that everything is a plugin and the whole system is scriptable. This means that the streamer can write custom plugins, additional features, widgets or components and they get loaded in automatically at runtime.

Overjack is powered by a custom bespoke overlay and show control framework developed specifically for Jacklifear and his broadcasting needs.

TwitchPlaysZombidle

Personal project/Berzerk Studio

As seen on twitch.tv/twitchplayszombidle Python/AS3

TwitchPlaysZombilde was my first real TwitchPlays and Stream First project ever. It is a version of the Berzerk Studio idle game Zombidle with full Twitch chat, Twitch API and KotS/StreamRPG API integration. It runs in 2 modes, as a standalone TwitchPlays game on its own channel or as a break screen game used on any partnered Twitch channel.

I developed the original concept of TwitchPlaysZombidle in one weekend, as a joke for Lachhh from Berzerk Studio. After a few hours of messing about with Python, I made it possible for commands in Twitch in chat to interact with Zombidle. I decided to show it to Lachhh and he loved it so much he showed it to his partners at Berzerk Studio and some people at Twitch. And so in one day it became a full project. Lachhh worked on the full implementation in AS3 with all the full features being built into the full game while I helped him out with some concepts, Twitch ads integration and KotS/StreamRPG integration.

Other than working on development of this project, I was also in charge of setting up and maintaining the streaming server for the project, maintaining the game status, setting up restart scripts, and monitoring app performance.

OpenRCT2

OpenSource Contribution

openrct2.website C/C++/JavaScript/NodeJS

OpenRCT2 is an OpenSource reimplementation of Roller Coaster Tycoon 2 written in C. The project was originally started by a university friend of mine and I helped out with miscellaneous tasks, like build process setup, issues squashing and UI development.

One of my favourite features that I contributed to was Twitch integration, which allowed Twitch streamers to connect the game to their Twitch channel, automatically name guests after followers and viewers and utilize Twitch chat as news in game. This feature saw great success, since a lot of streamers playing the game were naming their guests after followers manually so not having to do this anymore made it possible for them to concentrate on the game more.

Other than the game itself, I worked on various supporting side projects for it, including the master server list and the API for public server listing on web and in the in-game server browser, the first version of the OpenRCT2.website, build servers and experimental cross-platform builds.

M1L3Bot

Personal project/OpenSource

GitHub link available soon JavaScript/NodeJS/Electron

M1L3Bot is an OpenSource project started by a few Twitch mods who knew streamers that were users of AnkhBot (or similar bot) and were looking for a more feature rich bot which worked the same way. We imagined the M1L3Bot as the spiritual successor of AnkhBot with all of its features, upgraded to match the latest features on Twitch and API.

Aside from implementing all of the AnkhBot features, fixing the bugs, redesigning the SFX features, we looked into making the bot super customisable. Since we are developing the whole product in JavaScript and wrapping it in Electron, we decided to implement a scriptable plugin system, allowing streamers or mods who know how to code to extend the bot’s functionality with custom scripts, and contribute back to the project.

The application is currently in development and is being tested by a select group of users. We are planning to release a self-updating app on our website and the full source code on GitHub as soon as it is stable enough to be used by everyone.

TPS.js

Personal project/OpenSource

GitHub link available soon JavaScript/NodeJS

TPS.js is an open source Javascript library for NodeJS (and browser) allowing the developers to easily get their app connected to Twitch PubSub System.

TPS.js is inspired by TMI.js as an opensource library for 3rd party Twitch developers as a result of Twitch announcing their PubSub System/API.

The library will be releases on GitHub and NPM soon, as it's currently being tested by a few select developers.

And quite a few more..... Let's talk!

Contact

Want to get in touch?

Just send me an email

Or if you prefer we can connect on social media