// Marinus
// Swanepoel

About Me

I’m a full stack developer with nearly a decade of experience building applications with React, Ruby on Rails and other web technologies. I started my software development career ten years ago using Wordpress, jQuery and backbone.js. Five years ago I started doing backend development using Ruby on Rails. More recently I started building my own SaaS product using Node.js. I have worked on teams of various sizes, using variations on SCRUM and Agile development processes.

I care about building software with an emphasis on code readability and maintainability. I'm currently on helping make democracy affordable by contributing as a full-time permanent developer at Election Buddy.

Key Skills

  • JavaScript, React, Redux, Node.js, Webpack
  • Ruby On Rails, MVC, Object-Oriented, Design Patterns
  • Jest, Mocha, Rspec, Capybara, Selenium
  • HTML, CSS, SASS, LESS, Bootstrap, TailwindCSS
  • AWS, Linode, Ubuntu, Docker
  • CI/CD, Gitlab-CI, Git

Relevant Experience

  • JavaScript: For ten years I have been building complex user experiences using JavaScript and libraries like jQuery, Backbone.js and React.js.
  • React.js: I have five years experience creating user interfaces with React.js and various state-management tools including Redux.
  • Ruby on Rails: I have used this Object-Oriented MVC framework for the past five years to create RESTful JSON APIs, as well as server side rendered applications.
  • Automated Testing: I have experience writing unit tests in TDD workflows, as well as writing end-to-end tests. The testing and automation tools I have most experience with are Jest, Mocha, Capybara, Selenium and RSpec.
  • Continuous Integration and deployment (CI/CD): I have experience using and configuring CI/CD tools like SemaphoreCI and Gitlab-CI.
  • IaaS/PaaS Products: I have used Amazon S3, EC2 and Linode to configure infrastructure for various applications. For the past eight years I have maintained my own VPS with Linode for personal projects.
  • User Experience Design and Client Requirement Gathering: In all my roles I have been involved in the process of designing solutions to meet business needs. In my most recent role I often interacted with clients to discuss their specific business requirements and to collaboratively design user experiences to achieve business goals.
  • HTML + CSS: All of my roles have included front end development using HTML and CSS. I have used numerous tools to write CSS and style applications. Some of these tools are SASS, LESS, PostCSS, Bootstrap and Tailwind CSS
  • Node.js: Recently I started development of my own SaaS product using Node.js with express.js

Employment & Education

  • Software Developer at Election Buddy Inc.

    May 2020 to present

    Contributing to the cloud-based voting platform that allows member-based organizations to send notice, record the vote, tally the results and share the winners.

  • Software Developer at Two Red Kites

    February 2019 to October 2019

    I worked on numerous projects for smaller businesses and organisations. I regularly communicated with clients to capture their requirements, assess the scope of the work they requested and designed solutions for their specific business needs. A large portion of my work focused on enhancing the look and feel of older applications. I also dealt with maintenance items such as fixing bugs. The majority of my work was focused on erb templates, jQuery and Bootstrap.

    I became very familiar with many ruby gems used for rendering pages server-side such as Formtastic, Cocoon, and Administrate.

  • Developer at Genie Solutions

    February 2019 to December 2019

    I helped build a medical practice management cloud SaaS product using RESTful APIs (built with Ruby on Rails) and a React.js user interface. I worked on the team responsible for the invoicing modules and integrations with third-party services like PowerBi. I became familiar with the nuances of end-to-end testing strategies using Cucumber and Capybara. I learned communication strategies to help me advocate for the adoption of Continuous Deployment and other good development practices. Through the opportunity of brown-bag presentations, I introduced many of my colleagues to design patterns I had learned at my previous workplace.

    I took initiative in identifying technical debt that was significantly slowing development of invoicing modules. I drafted a comprehensive report for the product owner explaining specific problems with the relevant modules. I used static analysis tools to quantitatively support my argument and chartered a strategy to incrementally improve the relevant code in preparation for new features to be added.

  • Software Engineer at everydayhero

    September 2014 to November 2017

    The team at everydayhero was large with many mentors available to teach me about various design patterns and practices to build high quality software. We built Single Page Applications (SPAs) using cutting edge tools such as React.js and Webpack. The backend for these applications were Ruby on Rails applications with a RESTful JSON API. The interfaces we built were used by charity administrators to manage their campaigns.

    We emphasised comprehensive testing and test driven development using unit tests and end-to-end feature tests. This was done using Cucumber and Selenium web-driver as part of our continuous integration (CI) workflow. I also made contributions to the reporting application built with Elixir to deliver reports to charities about their donors and donations.

  • HTML5 Developer at Lixar I.T.

    September 2012 to September 2014

    Developed and styled applications for embedded and mobile platforms using HTML5 and CSS3. Developing new features and providing support for legacy web-applications on a C#.Net platform. In this role I was working on both small and large teams in close communication with project managers and team members.

  • Freelance Web Developer

    August 2013 to October 2013

    Worked on the creation of Flash ad banners. Built a small CMS for in store display with CodeIgniter and MySQL.

  • Web Developer at Victory Arts

    March 2011 to August 2012

    Developed websites and web applications in close communication with clients using new HTML5 APIs, JavaScript (including a large project using backbone.js), PHP, WordPress, and LAMP stack. Worked independently and in collaboration with a team to meet project objectives.

  • Interactive Multimedia Developer Diploma Student at Algonquin College

    September 2009 - May 2011

    Learned the basics of design, digital photography, video production, motion-graphics and web technologies.

  • Web Developer at Canadian Forest Tree Essences

    June 2010 - September 2010

    Set up an stock photography e-commerce site with a custom theme and collaborated with client to create a workflow for uploading images.

  • Bachelor of Fine Arts Student at University of Lethbridge

    September 2004 to May 2008

    The art studied at this faculty focused on conceptual art of the late 20th century. My practice was heavily focused on conceptual art and rigorous processes. Concepts were explored by designing a methodology and process that would then be carried out to completion. In presenting the art the experience and knowledge of viewers was assessed and considered to ensure the concept was conveyed in a meaningful way

    Graduated with distinction.