Simon Flack, Developer in Jelenia Góra, Poland
Simon is available for hire
Hire Simon

Simon Flack

Verified Expert  in Engineering

Bio

Simon has 20 years of professional experience as a web developer and has worked for world-leading media, financial, and transport organizations such as the BBC and IG. Over the years, he has used his skills in JavaScript, PHP, and Perl to deliver robust front-end and full-stack applications with a variety of frameworks and libraries. Simon advocates for a strong testing strategy as a key component for maintaining high-quality software and encourages consistency and best practices.

Portfolio

OnTrack Retail
Sass, Less, Git, Bash, MongoDB, Jest, Docker, XState, Redux, Webpack...
IG
Subversion (SVN), Raphaël, Handlebars, jQuery, JavaScript, Regular Expressions...
BBC
Sass, Less, Behat, PHPUnit, Jasmine, Zend Framework, PHP, jQuery, Backbone.js...

Experience

  • Linux - 20 years
  • HTML5 - 12 years
  • Perl - 10 years
  • JavaScript - 10 years
  • Node.js - 7 years
  • React - 7 years
  • Jest - 4 years
  • PHP - 4 years

Availability

Part-time

Preferred Environment

Firefox, Chrome, Visual Studio Code (VS Code), Git, Linux, HTML, XState, Bash, TypeScript, Express.js

The most amazing...

...challenge was reverse-engineering software to extract data from the BBC Domesday Project, a historic census from 1986, stored on laserdisc in a custom format

Work Experience

Senior Front-end Developer

2015 - 2021
OnTrack Retail
  • Developed a responsive retail ticket sales platform for a company operating five of the UK's railway network franchises.
  • Created responsive web applications for customers to apply for compensation for delayed journeys according to the national delay repay scheme.
  • Designed and built a MongoDB-backed API to quickly and efficiently querying train timetables and validate customer-entered journeys.
  • Created a self-service ticket refunds feature for customers.
  • Extracted core functionality from the existing app so that it could be re-used to quickly bootstrap new products and services that talk to our APIs.
  • Improved developer tooling, simplifying repetitive tasks and speeding up Travis build times.
  • Mentored junior developers and helped to share domain knowledge.
Technologies: Sass, Less, Git, Bash, MongoDB, Jest, Docker, XState, Redux, Webpack, TypeScript, AngularJS, React, Node.js, Test-driven Development (TDD), API Design, JavaScript, Express.js, Redis, Regular Expressions, Webpack 4, Gulp, NGINX, Visual Studio Code (VS Code), Chrome, HTML, SQL, CSS, Debugging, MySQLdb, Handlebars, Accessibility, HTML5, Architecture, Web Development, REST, Google Analytics, Integration, Braintree SDK, PayPal, Web Scraping, Next.js, UI Testing, Algorithms, Full-stack, MySQL, Webpack 3, SSH, Webpack 2, APIs, Capacitor, Mobile Apps

Senior Front-end Developer

2014 - 2015
IG
  • Conducted telephone screening and in-person technical interviews for the position of junior and senior developers.
  • Developed a UI for investors to interactively filter thousands of markets using fundamentals and other criteria.
  • Refactored custom server-rendered pages to share front-end templates.
  • Initiated weekly tech meetups for other team members to share interesting tech news and innovative processes.
  • Worked with iOS and Android teams to fix issues in embedded web views.
Technologies: Subversion (SVN), Raphaël, Handlebars, jQuery, JavaScript, Regular Expressions, Gulp, Chrome, HTML, Node.js, CSS, Debugging, Bash, HTML5, Web Development, Integration, Algorithms, Grunt, SSH, Capacitor, Mobile Apps

Front-end Developer

2010 - 2014
BBC
  • Developed the front end for custom CMS document repository and filtering.
  • Implemented instant and scheduled publishing interfaces according to design.
  • Translated business requirements into BDD tests and built monitoring tools to highlight failing tests.
  • Supported legacy CMS platform and created migration tools for the new platform.
  • Created a visual "segments editor" for media publishers to generate thumbnails and short clips as part of a media publishing pipeline.
  • Built a schedule builder to create timetables and assign program metadata to multiple live streams as part of the London 2012 Olympics programming.
  • Created and maintained plugins for a custom publishing workflow.
  • Built a multi-file upload component capable of handling very large media files, supporting resumes, and reporting back transcode status.
Technologies: Sass, Less, Behat, PHPUnit, Jasmine, Zend Framework, PHP, jQuery, Backbone.js, JavaScript, Perl, Regular Expressions, Gulp, Chrome, HTML, CSS, Debugging, Bash, HTML5, Web Development, REST, Integration, UI Testing, Full-stack, Apache2, Behavior-driven Development (BDD), Grunt, SSH, RSync, APIs

Software Engineer

2002 - 2010
BBC
  • Worked with production teams to develop interactive websites using custom tools.
  • Designed and developed a desktop CMS application with an Oracle-backed SOAP server for managing, transforming, and publishing vast repositories of XML content.
  • Developed an FTP interface to simplify bulk import and export of content.
  • Published the organization's first open-source contributions and ported the Document and View framework in wxWidgets to wxPerl.
  • Embedded Internet Explorer for in-editor CSS-based preview and full XSLT preview of the content.
  • Implemented common editor functions such as in-editor find and replace, cross-repository find and replace, and spell-check.
  • Demoed new features on a monthly basis and incorporated user feedback into future releases.
  • Completed a Bayesian analysis of 45,000 articles for categorization in the People's War Archive.
  • Recovered data from Laserdisc in legacy format for the BBC Domesday Reloaded project.
Technologies: OLE, ODBC, Oracle, XSLT, XML, wxWidgets, CSS, HTML, Perl, Regular Expressions, Debugging, MySQLdb, HTML5, Architecture, Web Development, Web Scraping, UI Testing, Full-stack, Apache2, SSH, RSync, APIs

Booking Engine

https://ticket.greatnorthernrail.com
A react-based train ticket eCommerce app for planning journeys, purchasing tickets, and processing refunds. The app is used on five train operators and supports tens of thousands of visitors and several hundred thousand GBP in transactions on a daily basis.

Delay Repay Compensation

https://delayrepay.southeasternrailway.co.uk/
A statically-rendered react app for customers to apply for delay repay compensation after experiencing delays to their journey in excess of 15 minutes. The application is streamlined for returning customers and guides users through the required information. The application logic is modeled with statecharts using XState for improved flexibility, and maintainability.

Darwin

A MongoDB-backed API for querying trains timetables to find details of trains that users traveled on as part of their delay repay claim application. A scheduler pulls the daily timetable XML from Amazon S3 every morning and ingests the data after processing it so that it can be queried quickly and efficiently.

Market Screener

https://www.ig.com/uk/markets-stock-screener?country=GB,US
A tool for investors to create, save, and edit custom filters for investment opportunities. Written with vanilla OO JavaScript, SVG, and custom in-house framework. It was designed to work well on desktops and tablet devices.

FLiP - Factual and Learning Interactive Publisher

A desktop and server application for editing and publishing large repositories of XML. Written in wxPerl, using wxWidgets for the UI, and interfacing with LDAP for authentication and OLE for embedding Internet Explorer. SciTE. Used SOAP and FTP as primary protocols, and supported multiple repository back ends including filesystem and Oracle.

Libraries/APIs

Node.js, React, jQuery, Backbone.js, Handlebars, Raphaël, wxWidgets, ODBC

Tools

Git, Webpack 4, Webpack 3, Webpack, Gulp, Grunt, Webpack 2, Braintree SDK, NGINX, Subversion (SVN), Behat, Google Analytics, Capacitor

Languages

JavaScript, Perl, CSS, HTML, HTML5, TypeScript, Less, Sass, XML, PHP, SQL, Bash, XSLT

Frameworks

Jest, Express.js, Next.js, AngularJS, Chrome, Redux, Zend Framework, Jasmine, PHPUnit

Paradigms

Test-driven Development (TDD), REST, Behavior-driven Development (BDD)

Platforms

Linux, Docker, Apache2, Firefox, Oracle, Visual Studio Code (VS Code)

Storage

MySQL, MySQLdb, MongoDB, Redis

Other

Regular Expressions, Debugging, Full-stack, Web Development, Architecture, Web Scraping, APIs, UI Testing, Algorithms, API Design, RSync, SSH, XState, Accessibility, Integration, PayPal, OLE, Mobile Apps

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring