Owen Feik

Projects Experience Education Skills About

Realm View is a website which provides tools to create and host battlemaps for RPG games like dungeons and dragons.

It allows users to upload and manage a library of media, use it in scenes and present those scenes to players.

Realm View is made up of several components

  • A collection of web pages written in a custom HTML templating language and compiled with a Python script.
  • A backend server written in Rust, using warp, which provides the API and runs game servers for live sessions using WebSockets.
  • A frontend client, also written in Rust, which communicates using a hand-rolled event system in order to sync game state with the server.

It is currently under active development. A pre-alpha version is up here. The source code is available on GitHub.

architrice is a command line app in the form of a Python package for syncing decklists for the card game Magic: the Gathering from online deckbuilding websites to local files in a variety of file formats for use with their respective MtG clients.

architrice is written in Python and is available for download from PyPi. The source code is available on GitHub.

chsheet is an in-browser tool for creating and using highly flexible character sheets for roleplaying games like Dungeons and Dragons. It allows users to create and arrange various node types in order to track information about their character in a personalised and powerful way, storing character sheets on the server and accessing them from anywhere.

chsheet is written in plain JS, HTML and CSS. It is hosted at chsheet.com using a Node.js server running in a Docker container on a VPS. The source code is available on GitHub.

owen-bot

owen-bot is a Discord bot developed for use by friends which provides a wide variety of features including

  • Vote-kicks from voice channels
  • MtG card searching
  • DnD campaign management and notifications
  • Dice rolling and statistics
  • XKCD comic recall

owen-bot is written in Python, using the discord.py library. It is hosted on an AWS EC2 instance using Docker. The source code is available on GitHub.

Spells

Spells is a Python app which provides a CLI character sheet for the roleplaying game Dungeons and Dragons.

Spells allows users to track their characters' levels, spell slots and hit points, among other things. It provides search facilities for a local library of spells. It supports taking and managing notes and rolling dice.

The source code for Spells is available on GitHub.

and more...

To see everything that I'm publicly working on, you can check out my GitHub profile.

Conserve It

Software Developer, 2023 - Present

Developer of control and optimisation software for large-scale HVACR systems such as for datacentres, deployed on custom hardware. My primary responsibilities have included:

  • Design and implementation of control and optimisation strategies, including machine learning, for heating and cooling plant equipment, using Java on the Niagara framework.
  • Development and maintenance of a JNI compatibility layer for third party software in C++, providing robust system management and IO integration for embedded Linux devices.
  • Build automation, continuous integration and software packaging using Docker, Jenkins and Debian tools to manage multi-architecture builds and software publishing.
  • Linux kernel module programming in C for a low-latency BACnet MSTP serial protocol driver.
Seen Technology

General Technical Assistant, 2019 - 2022

A digital signage firm which used embedded android display devices with a central content management platform for media delivery. During my time there I worked on:

  • The content management platform, a LAMP stack web application. Including both maintenance and greenfield development such as the addition of a public API, XML ingestion configuration tool and integration with other services.
  • Development of assorted applets for installations in client stores, such as wayfinding software and interior design visualisation projects.
  • Creation of internal tools for dispatch of job details to technicians, as well as various other applets and workflow scripts in a CRM system.
  • Operated 3D printing hardware including FDM, SLA and specialised Massivit Large format machines. Undertook design and modelling work for the files printed on these machines.
  • Assembled and tested various electronics.
Melbourne University

2020 - 2022

Bachelor of Science majoring in Computing and Software Systems. WAM 80.

Melbourne High School

2016 - 2019

VCE studies, taking Algorithmics, Mathematics, Literature, History, Physics and Extended Investigation.

Programming Languages

I've worked with many programming languages, whether professionally, as part of my education, or out of personal interest. These include

  • Java, for controls applications, web services and internal tools at Conserve It.
  • C for Linux kernel module development and toy projects.
  • C++ for a JNI support framework.
  • Python, for build and utility scripts and larger personal projects.
  • Rust, my main language for new projects and for internal tools.
  • JavaScript, HTML, CSS as required for web-based projects.
  • PHP, the primary language at Seen Technology.

I routinely try out new languages as I need them for an application or just because I enjoy trying out different programming paradigms. I feel comfortable slipping into a new language as needed. Other languages that I've touched on include Haskell and Common Lisp.

Dev Tools

Having used Linux as a daily driver for several years, including to deploy applications, I'm comfortable with many common development and Dev Ops utilies including

  • Docker, for development environments, build automation at work and for deployments of personal projects.
  • SQL databases, extensively for personal projects and backing web applications.
  • AWS and Microsoft Azure, which I've used to host personal and university projects.
  • Ubuntu, which I've used as a daily driver for development work, Debian for embeddded hardware at Conserve It, CentOS/RHEL for deployments at Seen technology, and Arch Linux my main distribution for personal use.
Contact

I can be emailed at [email protected].

If you have a question about or have found an issue with one of my projects, feel free to open a GitHub issue on the relevant repository.

Personal

In my spare time, I enjoy working on personal software projects, running, reading novels (largely science fiction) and playing tabletop or online games with friends.

MHS Robotics

Melbourne High School Robotics offers a program in robotics, initially LEGO robots programmed with Python, graduating to open robots where robots are assembled from a variety of individually sourced motors, sensors and 3D printed chassis. Students are guided in building robots and developing software for them, eventually participating in competitions.

Having participated in the club during high school, I was part of the administration and mentoring group for the club from 2020 through 2024.

For this role I mentored students in robotics concepts, assisted them in developing their physical and software designs and helped out with the administration of the club.

NCSS Challenge

The NCSS challenge helps students to learn programming in Python while providing access to volunteer mentors to aid students in learning. I Mentored students in the challenge in 2020 and semester one 2021.