Ruth Evans

I am a programmer with twelve years experience actively seeking a remote role as a software developer. I work mostly in c++ but am also proficient Python and other scripting languages.
Presently, I am employed as a software developer / build engineer at a start-up company based in Edinburgh.


Skills

Programming Languages & Tools

Main Languages: C++, Python, bash
with experience with boost, wxWidgets, JUCE, and QT libraries

Other languages: C, Lua, C#, Batch, Java, javascript, cocoa

Testing: gtest/gmock, catch2, BullseyeCoverage, OpenCppCoverage

Building/IDEs: Jenkins (CI CD server), Cmake, GNU make, Visual Studio, Xcode, Eclipse

Installer Tools: Inno setup, rpmbuild, pkgbuild, pkgutil, and productbuild

Other Skills: Git, ClearCase, SQL, HTML, CSS, Powershell

Workflow
  • Agile Development - Scrum (PSM1 certified) and Kanban
  • Cross Platform Testing & Debugging Windows, Mac OS X, and Linux (Red Hat)
  • Cross Functional Teams

Experience

Software Developer and DevOps

Krotos

  • Cross-platform development for plug-ins on Windows and Mac OS X in c++ using Visual Studio, XCode and CMake.
  • Contributed to the development and successful release of five new plug-ins released by the company.
  • Debugged plug-ins across a range of plug-in hosts/DAWs
  • Run my teams daily stand up/scrum meetings
  • Managed the automated build system on our on-prem servers using jenkins CI
  • Improved project setup efficiency and made builds repeatable and trustworthy by implementing git submodules
  • Performed code reviews, ensuring compliance with our established standards
  • Created plug-in windows installers using inno setup, and mac installers using pkgbuild and bash
  • Developed tools with the aim of enhancing work efficiency, streamlining tasks, and minimizing the potential for human errors such as:
    • A c++ program that collects metadata from sound files (length, sample rate, description, etc) and outputs the data in a CSV (comma serperated value) file. The GUI allows my collegue to customise what data is collected and get the data needed in seconds. Previously this work would take about two days.
    • A python program with a GUI that allows colleagues to generate plug-in content installers, cross-compatible on windows or mac with auto-generatred pre and post install scripts
    • A chrome browser extension to improve our remote stand up meetings by hiding unncessary buttons, enlarging text, and highlighting a ticket on mouse-over
    • A python script that convert xml files containing file paths from windows to mac style or vice verse, this was previously done manually with a collegue using search and replace on each file.

2017 - Present

Software Engineer

Hewlett Packard Enterprise

  • Worked on linux - RedHat
  • Added new features into existing software using a mix of C, C++ and python.
  • Managed the release of software components along with unit and regression testing and release documentation.
  • Wrote scripts to build and run software using gnu make and bash.
  • Automated builds with Jenkins and clearcase source control.
  • Improved build times by providing pre-built software components avaliable on the internal server in the form of rpm installers to be automatically installed using yum (yellowdog updater modified)
  • Created unit tests using gtest and gmock, checking code coverage using BullseyeCoverage tool.

2012 - 2017

Information Analyst

Hewlett Packard

  • HP Gradiate scheme on the information analyst track. Built software on Linux using makefiles. Debugged software using ddd debugger and fixed simple bugs.

2010 - 2012

Personal Projects

Game mod

Uno Extreme for Tabletop Simulator

A downloadable mod for Tabletop Simulator that allows user to play a variant of the popular card game Uno which includes a card launcher machine that shoots a random amount of cards at a players when they need to press the special Uno button.
This game is a big favourite with my family and so I did extensive research ensure that the card launcher functioned as closely as possible to the real thing.
My script automatically turns the card launcher towards the active player. The player must either play a card from their hand or hit the button on the launcher model. The button triggers a whirring sound and a seemingly random amount of cards is "launched" into the players hand. When a player has no cards in their hand they win and the game ends. The script announces the winner and count up other players scores.
Game models were made in Blender, the sound effects and hit boxes attached in Unity. Scripts were written in lua.
It currently has over 1300 subscribers and 0 bug reports
Mod page on Steam
[Source code]

A screenshot from the tabletop simulator game. A selection of uno game cards are on the table next to a red block that launches the cards on a button press.

Pocket references

Mini-zines tech pocket references

Small and convinient cheat-sheet style pocket references for various technologies. Designed to be printed on a single A4 sheet. Available freely online and have been downloaded over 100 times.

  • Get with git - Help with git source control commands
  • Google-fu guru - Tips for using smart searchs with operators
  • Vim witted - List of commands to control the vim command-line text editor
https://ruthevans.co.uk/pocketzines

Mind mapper

An organisation software program

A work in progress.
There are a lot of mind map making software available but none that I enjoy using.
I am working on my own mind map maker in c++ using the QT library for the GUI. The proposed solution will have simple functionality, perform fast, and have an aesthetically pleasing appearance.

Education

Kingston University

BSc Hons Computer Science

2:1

Programming essentials, System analysis and design, Information and project management, Computer graphics and imaging

2007 - 2010

Brooklands College

A level in Applied ICT: Double award

Programming, Spreadsheets, Databases

2005 - 2007

Interests

My hobbies include photography, playing tabletop or video games, reading sci-fi and fantasy novels, playing the flute, practising martial arts, and book binding