Arran France

Software Engineer

Surrey, United Kingdom

Profile

A full-stack developer with a broad experience of building products for clients and a strong grasp of computer science fundamentals looking to join an established team of developers.

Languages

C#
Java
Rust
Dart
Python 2/3
JavaScript Node/ES2017
R
HTML/CSS
C

Experience

Spark Development Network

Developer, Remote

2018-Current

I build and design features to specification for clients, incorporating them into the core OSS product when appropriate, or building them as a custom solution when not. Solutions are built to work at scale (millions of records) while maintaining high performance and reliability on both on-premise or cloud infrastructure.

I also act as the lead developer for a strategic partner which requires me to field informal client requests, analyse the requirements, provide an effort estimate, produce a specification, and communicate the requirements with other developers to plan the feature as part of the ongoing product release cycle.

During my time I have introduced developer best practices including code reviews and tools for enforcing code style and static analysis.

  • C#,
  • ASP.NET,
  • SQL,
  • SQL Server,
  • jQuery,
  • IIS,
  • Azure,
  • Windows Server,
  • Requirements Analysis,
  • OSS Community Management,
  • Release Planning,
  • Retainer Management

Bricks and Mortar Studio

Consultant

2016-Current

I am a consultant for non-profits (and their partners) using Rock RMS, an open source CMS/CRM. I perform data migration and write code for client-specific features. Examples include designing the API for a leading giving provider with $1m+ weekly revenue.

  • C#,
  • ASP.NET,
  • SQL,
  • Python3,
  • Pandas,
  • Requirements Analysis,
  • Project Management

Royal Holloway, University of London

Undergraduate Researcher

Summer 2016 / Summer 2017

2016

I produced a web interface (Rust/Angular 1) to queue jobs for ExpoSE.js, a JavaScript symbolic execution engine. I also added multiple modes of serialization to ExpoSE.js and identified and wrote a PR to fix a bug in Samsung’s JavaScript analysis framework.

2017

I added features to ExpoSE.js to help users analyse line coverage and to provide preliminary support for creating new paths when accessing objects. I also performed case studies on popular NPM libraries to identify causes of concretization which helped inform my third year project work on ExpoSE.js.

  • Rust,
  • GDB,
  • Z3,
  • SMT,
  • Angular 1,
  • JavaScript,
  • Node.js,
  • Bash

Spark Development Network

Internship

Summer 2016

I worked on v6 of Rock RMS, a large (1000 KLOC+) C#/ASP.NET open source application for non-profits, including the first iteration of their notification and telemetry system. I also gave a talk at their annual conference on the benefits of open source software and the different roles that users and developers have within that ecosystem.

  • C#,
  • ASP.NET,
  • SQL,
  • Entity Framework 6,
  • SQL Server,
  • HTML5,
  • CSS3,
  • jQuery,
  • Git,
  • Public Speaking

Hope Church

Communications Director

2013-2015

I architected an information strategy for people data. I also modernised internal tools and processes, including a migration to Google Apps and the introduction of a modern CRM.

Projects

Heroes Companion

arranf/Heroes-Companion

I built a Flutter application for Android and iOS to help users identify the optimal talent combinations for the game Heroes of the Storm.

The project combines multiple technologies and paradigms spread over multiple services to power the on-device application. App content updates are provided by a Express/MongoDB backend which also scrapes statistics from the web. Game data is translated using an AWS Lambda function, images are served by S3, and the API is backed by CloudFront.

  • Flutter,
  • Dart,
  • Redux,
  • Java,
  • SQLite,
  • Express,
  • MongoDB,
  • Mongoose,
  • AWS,
  • S3,
  • Puppeteer,
  • Heroku

Jonathan's Movies

arranf/Jonathans-Movies-Client

I built a Vue.js web application to make hosting movie nights among friends easier. The project leverages FeathersJS and web sockets to display selections in real-time to all connected users. The server side also uses machine learning to produce movie recommendations for users using a cosine similarity matrix.

  • Vue,
  • Webpack,
  • Jest,
  • Real-Time,
  • Web Sockets,
  • Machine Learning,
  • OAuth

Education

First Class Software Engineering BSc

Royal Holloway, University of London

2015-2018

Awards

Ede and Ravenscroft Prize - Best First Year in Science Faculty 2016
Driver Prize - Best Student in Computer Science 2016 / 2017
Letter of Commendation 2016 / 2017 / 2018

Final Year Project

I added SMT models of popular array prototype functions to the research tool ExpoSE.js and demonstrated a method of verifying array polyfills which I used to identify a bug in a popular polyfill library.