Programming Languages JavaScript TypeScript C# Swift
Frameworks Angular .NET Core (Razor Pages, MVC, Web API) UIKit & SwiftUI
Database Technologies MS SQL MySQL SQLite PostgreSQL
Workflows Git Cloud Hosting (Azure, AWS) Continous Integration Agile Code Reviews
Process and Behaviours Mentoring Automated Testing (Jasmine, MSTest) Dependency Injection
Collaborative Tools Azure DevOps Atlassian (JIRA, Bitbucket, Bamboo, Confluence) Trello Slack
Previously I have also worked with Android development (Java) and PHP-based web development, and have also used a number of other languages and frameworks for prototyping or personal projects, including Vue.js, Ionic & Xamarin.
I am continually looking out for and trying out new technologies, following development newsletters and taking online courses, and have set myself the target to learn a new programming language or framework each quarter.
Angular
I have developed modern web applications using the latest versions of Angular. These skills are also transferable to other front-end frameworks.
Angular TypeScript RxJS NgRx State Management SCSS
.NET Core
I have experience in producing and maintaining ASP.NET MVC websites and Web API back-ends using Entity Framework and SQL Server databases.
ASP.NET MVC ASP.NET Web API Entity Framework SQL Server
Front-end Web
I have developed and contributed to a large number of web-based projects, with involvement in both the back-end and the front-end.
HTML5 JavaScript CSS3 SASS jQuery Bootstrap
Software Engineer, BBC, Newcastle upon Tyne
September 2022 - Present
Working as part of the audience data teams to develop data collection and analytics capabilities. Part of the BBC's new North East Tech Hub.
“The BBC's world-class online products (iPlayer, News, Sport, Sounds, Bitesize and many others) reach millions of audience members every week and our audience data teams enable us to analyse, reason, personalise and engage with our audience. Understanding our audience is crucial to our ambitions to making a tailored BBC for everyone.”
Software Engineer, Waters Corporation, Newcastle upon Tyne
February 2020 - August 2022
Part of the core development team for CONFIRM Sequence, an innovative new tool to help scientists develop nucleic acid therapeutics
- Creation of an innovative web application using the latest Angular and ASP.NET Core
- Collaborating with other stakeholders including application scientists to overcome complex challenges
- Mentoring and onboarding of apprentices and new developers
- Working in an Agile manner with fast-paced product development whilst maintaining quality in a heavily regulated environment (since accurate results are critical to safety)
- Huge focus on software quality including extensive automated tests across the whole stack
Angular Typescript ASP.NET Core NgRx (State Management) SignalR SCSS
Waters, a global leader in analytical instruments and software, has pioneered chromatography, mass spectrometry, and thermal analysis innovations serving the life, materials, and food sciences for more than 60 years.
Software Developer, NBS, Newcastle upon Tyne
September 2015 - February 2020
Working as part of an Agile software delivery team, predominantly on NBS Chorus, an award-winning innovative software-as-a-service platform using the latest in web technology
- Use of a wide variety of technologies and frameworks, including Angular, Node.js with Express.js, C# with ASP.NET, and Git flow source control
- Working with external collaborators to develop integrations with third party products
- Collaborating with other teams including design and QA
- Mentoring of work experience and graduates through pair programming and code reviews, and working with local schools to promote software development as a career
- Using good practices such as Dependency Injection and unit testing
Angular Typescript GraphQL SCSS ASP.NET MVC ASP.NET Web API Entity Framework SQL Server Front End
NBS is a global leading technology platform that combines the best content and connectivity for anyone involved in the design, supply and construction of the built environment.
Mobile App Developer, Self Employed
October 2014 - September 2015
Creation of mobile applications, predominantly for iOS devices, enabling me to gain a greater insight into the process of developing and releasing a product to customers.
- Planning, designing and building native iOS mobile applications from scratch
- Creation of app assets and marketing material
- Providing support to customers and handling feature requests / suggestions
- Keeping up to date with changes to technologies and platforms
I have several apps currently live on the App Store
Native iOS Development Objective-C Xamarin Forms Ionic
Mobile Platform Developer, AYO Digital, Gateshead
February 2014 - October 2014
iOS mobile app development (products and client projects) in a fast-paced digital agency.
- Responsible for the entire app architecture and development as the sole mobile app developer, working with server-side teams to design, agree on and document web services
- Meeting with clients to discuss requirements and feasibility
- Development of iOS applications for external customers as well as developing and maintaining internal products
- Working with other members of the team including designers and project management to deliver projects to clients in a fast-paced environment
Native iOS Development Objective-C
Web Developer, CT-Web, Durham
September 2012 - August 2013
PHP and front-end web development for a wide variety of clients and projects.
- Development of a wide range of websites for clients using the web technologies, and maintenance of a custom-built in-house PHP CMS
- Integration of bespoke features such as e-commerce stock management, property search, forums, blogs and social media; depending on the client's needs
- Meeting with and providing email and telephone support for clients
- Managing time between multiple ongoing projects, working to agreed requirements and deadlines
PHP MySQL Front End CMS
BSc (Hons) Computer and Network Technology (First Class), Northumbria University
September 2009 - June 2012
A highly dynamic course with emphasis on relevant practical skills, teamwork and communication exercises, self-management, planning and critical thinking skills.
- Key modules include Web Design (80%), Web Development (90%), Using UNIX (92%), Network Technology 2 (95%), Programming in C/C++ (88%), Network Technology 3 (93%), Ethical Hacking (71%), and OS Network Issues (87%)
- Final project (85%) involved the development of and 25,000-word dissertation on the development of an embedded system web interface for home automation networks
The following are examples of recent projects I have been involved in as part of a wider team / company.
CONFIRM Sequence (Waters)
An innovative new tool to help scientists develop nucleic acid therapeutics. The app performs advanced analysis and presentation of data from scientific instruments.
I have been working on this application, which has recently been released, since the beginning of the project after joining Waters in February 2020.
Landing Page | Press Release | Project Literature
Angular Typescript ASP.NET Core NgRx (State Management) SignalR
NBS Chorus (NBS)
An award-winning innovative software-as-a-service platform using the latest in web technologies. NBS Chorus was awarded the 'Best New BIM Product' award at the BIM show Live held on 25th February 2020.
I worked on NBS Chorus between July 2017 and February 2020 during my time at NBS. My role in the project, as well as developing core features, involved working with external partners to integrate our web app into third party software, and agree on an interface for two-way communication.
Landing Page | News Article | Press Release
Angular Typescript GraphQL PostgreSQL Front End
The following are examples of personal projects which I have worked on in my spare time. Some have been developed as commercial products and others are just for fun and learning new tech.
MyPeaks UK Hills (iOS Application)
First launched on the App Store in 2012, MyPeaks is a 'hill bagging' application useful for hill walkers, featuring lists and a map of the UK's hills and mountains, allowing logging and targeting of hill climbs. At the time of writing the app has an average rating of 4.6 stars and is in the Top 40 paid Navigation apps in the app store charts.
Developed as a native iOS application, initially using an SQLite database and recently updated to use Cloud-Kit enabled Core Data.
App Landing Page | View on the App Store
iOS Development Objective-C Swift UIKit Core Data
World Jigsaw (iOS Application)
Launched in 2015, World Jigsaw is interactive puzzle game in which the user drags movable country shapes into their correct location on a world map.
The free app, which at the time of writing has an average rating of 4.3 stars, uses low-level graphics functionality from the Core Graphics framework to handle the rendering and interaction of shapes. It also features save/resume functionality and scoreboards backed by Core Data.
App Landing Page | View on the App Store
iOS Development Objective-C Core Graphics
Map Challenge (Mobile / Web App)
A geographical map quiz game, in which users are presented with a series of locations on a map and asked to identify them by name.
I have recreated the app several times to gain exposure to a new technology - first as a native iOS application, secondly as a Xamarin Forms application, thirdly using the Ionic framework, and finally the Unity game engine. The Ionic version is linked to below.
Ionic Angular
MyPeaks Ionic (Web App)
A prototype created in order to test the feasibility of using Ionic and Angular to produce a cross-platform version of the MyPeaks iOS application mentioned above. As this is a prototype not all functionality may be implemented or work as expected.
Ultimately I have decided that whilst this is feasible, the native map experience and performance on the iOS platform is superior to the web app alternative, so am sticking to the native application for the time being.
Ionic Angular
Globe Challenge (Web App)
Simple geography quiz web app also using Ionic and Angular. This project involved using freely available data from a wide range of sources including GeoNames, Natural Earth, and Wikipedia, to produce the data driving the app. The Leaflet.js library has been used to create highlightable country outlines for the user to identify from GeoJSON data.
Ionic Angular