Robin Perris

Award winning front-end developer

Who I Am

A quick overview of who I am and what I do

I'm a detail focused software developer specialising in user interface and website development. I obsess over the user experience and as such spend as much time as I can getting to know the workflow of my users so I can create software which works with them rather than against them.

I enjoy working in diverse software development teams using agile methodologies. I'm comfortable working on small 1 or 2 developer projects as well as on larger multi-team software initiatives. I'm experienced in communicating professionally and efficiently with customers, users, project managers, and senior management.

I'm enthusiastic about technology and business. I'm always looking for the very best way to do my job, and as such keep a finger on the pulse of the industry. I like to work with like-minded individuals who are just as driven as I am.

What I Work With

A look at the languages and software I use

Microsoft Windows
General development.
Apple OSX
Mobile and web development.
HTML 5
Semantic markup.
CSS/LESS/SASS
Cross-platform styling.
C#
Desktop and web applications.
ASP.NET MVC
Decoupled front-end development.
JavaScript
Interactive websites and applications.
Photoshop
Mockups, wireframing, and design.
Twitter Bootstrap
Web-based application development.

My Professional Portfolio

The projects I've worked on in my professional career

EMIS Mobile

EMIS Mobile was developed as a stand-alone mobile application which could be used by healthcare staff in the field. Functionality closely mimicked that of the primary EMIS Web clinical system. The application itself was mainly built using JavaScript which interfaced with a thin native mobile frame (Obj-C, Java, C++) which handled device hardware functionality. EMIS Mobile was built around the idea of offline usage which would allow healthcare staff to work against a patient record before later synchronising this data back to the central medical record database using a RESTful web service.

  • + Hybrid mobile development.
  • + Android, iOS, and Windows Mobile.
  • + JavaScript and HTML.
Patient Access

My role in the Patient Access development team saw me working across multiple disciplines to provide high quality web-based functionality to the patients of participating GP practices. My project work saw strict scrutiny from both internal and third party authorities, with financial penalties if requirements or deadlines weren't met. My main responsibility was developing a responsive, accessible front-end using HTML, CSS, and JavaScript. Any features added to the front-end had to work with JavaScript and CSS disabled and meet a minimum of AA compliance with the Web Content Accessibility Guidelines (WCAG) 2.0.

  • + ASP.NET MVC 3, HTML, CSS, and JavaScript.
  • + Agile development process.
  • + Strict accessibility requirements.
EMIS Web

EMIS Web is the market leading GP clinical system. Built on a server/client architecture changes made to this software required a huge amount of consideration for performance, clinical risks, and information governance. As the software directly deals with a patient's clinical data security was of the upmost importance. Enhancements usually involved development across multiple platforms, specifically the server, client, and data API. Changes to object properties had to be fully audited using a bespoke auditing solution, and UI development had to meet Microsoft's User Experience guidelines.

  • + C# Winforms.
  • + Large-scale application development.
  • + Clinical safety and information governance.
EMIS Internal Systems
Screenshot of the EMIS internal web development framework.

As a member of the Product Improvement team at EMIS my responsibilities involved building modern web front-ends as replacements for our outdated internal software. To do this I used Twitter Bootstrap as a base and built up a modern web framework in JavaScript, CSS, and HTML which allowed us to quickly and seamlessly create applications with a consistent look and feel. To integrate this with our older systems I worked closely with our legacy developers to create a modern JSON parser which allowed us to package up obscure data formats in an easily readable format.

  • + JavaScript, JQuery, and JSON.
  • + Bridging of modern and legacy systems.
  • + Instant rollout to 1,000s of users.
EMIS Support Centre

The EMIS Support Centre was developed to run parallel to the existing phone-based support services offered to EMIS customers. Development included a home page with a news feed, a support forum, and a self-help document repository, along with extensive analytics and reporting functionality which was exposed internally to the company directors. The website was built on top of the Telligent Community CMS solution, with extensive modifications made to integrate it with existing EMIS software. Additional functionality was implemented using ASP.NET controls which communicated with MSSQL via an API.

  • + ASP.NET, JavaScript, CSS, and MSSQL
  • + Large-scale customer support.
  • + Integration with sensitive clinical systems.

My Personal Portfolio

The projects I've worked on in my own time

DarkUI

During development of the Crystal Toolset I had to create quite an extensive library of modified controls to work around the small issues associated with the standard .NET control library. Over time the majority of the controls I was using were custom made or modifications built on top of the standard classes. As such I decided to spend some time standardising the look and feel and incorporating the signature 'dark theme' aspect. Due to interest from colleagues I decided to release this as a standalone interface framework for anyone to use. The library offers a range of core controls as well as a Visual Studio style docking library.

  • + Winforms and GDI.
  • + Visual Studio designer integration.
  • + Win32 message filters.
Amethyst

Amethyst was built to work hand-in-hand with the Crystal Toolset. Whilst the latter is a suite of tools used to design and develop multiplayer games, Amethyst is the engine which actually parses that information and creates the gameplay experience. It was built in C# using SFML for graphics and audio and Lidgren for the UDP networking. The application was built using an authoritive server model which allows a central instance to take in and process input from 100s of clients simultaneously. Using a circular buffer of player states I'm able to run simulated gameplay in the past using linear interpolation to smooth out the effects of unreliable connections and packet loss.

  • + OpenGL.
  • + UDP sockets.
  • + Real-time networking.
Crystal Toolset

The spiritual successor to Eclipse Origins. This toolset acts as a development environment for people wanting to make their own multiplayer video games. The application is built in C# using my open-source DarkUI control library for the user interface. Everything is built in to a fully dockable front-end similar to programs like Visual Studio and Photoshop. I make extensive use of persistent state throughout, making sure the application remembers everything as you left it to minimise the amount of user customisation required to build their ideal environment.

  • + C#, .NET, and Visual Studio.
  • + TDI, user controls, and accessibility.
  • + Versioning, undo/redo, and OpenGL.
Crystalshire

Crystalshire is a Massively Multiplayer Online Roleplaying game which was developed using Eclipse Origins. Actively fixing bugs and implementing new systems in a live, always-on environment posed unique challenges which I had to overcome. I extended the existing UI functionality by implementing full runtime generation. Textures containing gradients, shadows, templates, and icons were pulled together and rendered in real time to make up the user interface. This allowed for a Visual Studio style form and control designer to be used, rather than relying on pre-rendered textures.

  • + TCP Sockets, MySQL, Windows API, and DirectX.
  • + International server/client communication.
  • + Graphics design, user experience, and content development.
Crystalshire.com

Crystalshire.com was designed as a fully integrated website and community for the Crystalshire MMORPG. I used MyBB as a base for the forum and built on a bespoke CMS to handle the website pages. To keep the project consistent and fully bridged I created a login server for the game which ran login requests past the account table used by the website. This allowed people to have a single account which accessed both the web-based utilities and the game itself. I also used this as a platform to launch additional functionality such as an automatic updater for the client as well as project-wide bans and usergroups.

  • + PHP, MySQL, Linux, and Apache.
  • + CMS integration and CSS theme development.
  • + Bridging with third party software.
Eclipse Origins

Eclipse Origins was designed as an open-source game development engine written in Visual Basic 6.0. Due to the unique nature of the project a large amount of the underlying systems and technologies were developed from scratch. Whilst the bulk of the work was handled by myself I had a small team who helped out with programming, graphics design, and community management. Points of interest include the custom DirectX user interface engine and the byte-array packet system based on the WinSock API. Eclipse Origins was sold to an American game development company who turned it in to a commercial product and maintain it to this day.

  • + TCP Sockets, MySQL, Windows API, and DirectX.
  • + International server/client communication.
  • + Team leading, project ownership, and presentation.