James Sherlock

iOS Developer • Telford, England

I'm a 23 year old developer with nearly 6 years professional experience in Swift/iOS development. I've also worked on projects using PHP and JavaScript, and I am keen to learn more about Android development and Kotlin.

Currently building Sky News and Sky Sports for over 10 million users monthly with a focus on scalability, observability and testability.


Experience

Principal Mobile Engineer

Sky UK

More on my position at Sky will come soon!

July 2021 - Current

Project Lead iOS Developer

Sky UK

For over a year now I've worked as a lead mobile developer covering an internal project, switching between two different video playback providers in three of our biggest products at Sky.

  • Clear and regular communication with internal and external stakeholders
  • Defined release strategy taking into account deadlines, platform limitations and global events
  • Chaired meetings and team social events to ensure everybody is working well together and understands our progress and the project's goals
  • Worked with third parties and strategic partners to guarantee a seamless migration by maintaining documentation and good levels of communication
  • Balanced commerical and technical objectives to ensure we could release iteratively while maintaining the quality of the product and codebase
  • Defined the solution for a technical requirement which required collaboration with multiple teams, focussing on simplifying the existing estate and building in flexibility for future enhancements
  • Established and maintained contracts with internal teams to support asynchronous development and testing
January 2020 - July 2021

iOS Developer

Sky UK
  • Delivered a stability and performance release which substantially reduced the crash rate and improved the load time of key journeys
  • Driven application observability using MetricKit and Firebase events in order to enable data-driven decision making and improving the app experience
  • Owning the technical roadmap and architecture strategy for the Sky News iOS codebase
  • Implemented an automation strategy for Sky News iOS using Snapshot Testing to reduce release times and prevent against regressions to app quality
  • Designed the solution for and implemented a new "JavaScript bridge" introducing native iOS experiences from within a HTML web page
  • Collaborated with third party advertising providers to ensure we could deliver our users the best possible experience while maintaining business requirements
  • Worked with other mobile teams to develop and implement a modern componentised architecture in a new application supporting future progression into a cross-platform product
August 2015 - January 2020

Junior Consulting Developer

Znaptag

After having my open-source contributions acknowledged by a member of their team, I was offered a summer placement at Znaptag though this was later extended to over a year.

My role required me to take Adobe Flash animations and convert them to HTML5 animated advertisements using a custom JavaScript library.

June 2014 - August 2015

Skills

Programming Languages
iOS
  • Dependency Management (CocoaPods and Swift Package Manager)
  • Building Modular and Modern Architectures
  • AutoLayout (Storyboard/XIBs or Handwritten Constraints)
  • Core Data and UIKit
  • Automation Testing (Unit, UI, Snapshot and Visual Regression Testing)
  • Accessibility Advocate
  • GraphQL, REST, and gRPC APIs using JSON and Protobuf
Other
  • Agile Development & Scrum
  • Git (including GitLab and GitHub)
  • Continuous Integration (GitLab CI, GitHub Actions, Circle CI)
  • Rapid Prototyping
  • Requirements Analysis and Project/Release Planning
  • Collaborating with and integrating SDKs from Third Parties

Portfolio Highlights

Mobile Observability

Sky UK

Having used Firebase for years, the company has been frustrated by the lack of integrations, the speed of performance data, and concerned of the privacy implications. I worked closely with principal engineers across the department in order to strategise an internal system using OpenTelemetry and our own in house platform.

We extended the already open source projects and introduced our own automatic native mobile instrumentation allowing for it to be quickly installed into all of our apps, sending vital information and giving us unprecedented levels of understanding of our apps.

January 2021

Snapshot Testing

Sky UK

Faced with long release times due to extensive manual testing, I set out to help define the team's automation strategy at Sky. I worked closely with our testers and the wider community in order to experiment with Visual Regression Testing (a form of Snapshot Testing) using the aptly named SnapshotTesting library.

Over a couple months I laid down the foundations, and to date we have hundreds of tests generating thousands of images across a wide range of devices. This project, on behalf of Sky, later went on to become a finalist at the European Software Testing Awards in 2019.

Working with one of the core maintainers, I was also able to combine my passion for accessibility with snapshot testing and contributed to AccessibilitySnapshot which enables visual regression testing for VoiceOver.

March 2019

Unfurler

Web Development

Unfurler is a product I created in which parses the contents of HTML emails to extract digital receipts. It then uses Monzo’s REST API in order to add the receipt to the end user’s banking app.

This allows users to see a detailed breakdown of transactions from many merchants including Domino’s, Amazon and Uber. To this date over 100 users have had over 3,000 receipts extracted.

The system requires that users forward (mostly automatically) emails to a unique user email address which is picked up by Mailgun. This is then sent through an entirely custom PHP server which ultimately posts a JSON payload to Monzo’s API.

This project is great as allows me to deliver value to users, stretch my legs outside of being a mobile developer and has led to some interesting conversations with Monzo themselves and Flux who do something similar with physical receipts.

February 2019

GitHawk

Open Source

Having used GitHub for both personal and work purposes I often accrued a lot of notifications that I wanted to read on the go. Ryan Nystrom, who I had collaborated with previously, was working on a personal project to create a new solution for this, which he decided to open source.

Feeling I could add something I started contributing and provided functionality such as image uploading, additional markdown compatibility and support for FLEX for easier debugging on TestFlight beta builds.

July 2017

Education

Sky UK

Level 4 Diplomas • City and Guilds
ICT Professional Competence • Distinction
ICT Professionals (Systems and Principles) • Distinction
2015 - 2017

Telford College of Arts and Technology

Level 3 Diploma • Pearson • Pass
Software Design and Development • Distinction
Event Driven Programming • Pass
Procedural Programming • Pass
Computer Systems • Pass
Digital Graphics • Pass
Extras
IT Essentials 5.0 • Cisco Networking Academy • Pass (86.1%)
Health and Safety in the Workplace • CIEH • Pass (2011)
2013 - 2015

Interests

When I'm not all in on software, the technology part of my brain doesn't entirely switch off! I enjoy playing with hardware, even 'hacking' a tower fan to add HomeKit support using a Raspberry Pi. I also love the occasional competitive game, whether online with Rocket League or stretching the rules of Jenga and Monopoly.

I love a good mix of music, film and TV especially action and crime shows. I love the water, and a life goal is to become SCUBA certified. I'm also learning as much as possible about the Audio Visual space as this is something I'm keen to do more with!