Ian Walker

Contact me via LinkedIn or email: iantdwalker@gmail.com

An industrious Senior Software Developer with sixteen years experience in C# and full-stack .NET Framework development built upon a foundation of a first-class honours degree in Computing Informatics. Has a keen eye for detail and a strong test-driven approach to software engineering. Greatly experienced in the architectural design, implementation, testing and deployment of software systems globally, working in teams of varying sizes. Has built cordial and effective relationships with customers in the UK and overseas, whilst increasing knowledge and hands-on experience with many aspects of .NET and other technologies. Always on the lookout for exciting new challenges, the opportunity to engage with a variety of interesting and like-minded people and to connect with cutting edge products and technological developments.


Skills & Technical Experience

Programming Languages & Frameworks
  • Sixteen years experience developing full-stack .NET applications using C#.
  • Sixteen years experience developing Console, Winforms, WPF, WCF (SOAP/REST) and Windows Services with the .NET Framework.
  • One to two years experience developing Web Applications and Web APIs using .NET Core 3.1 and .NET 6.
  • Sixteen years experience designing, querying, profiling and optimizing relational databases and data warehouses using SQL Server and MySQL, utlising Entity Framework (both code and database-first approaches).
  • Three to four years experience with web tech: HTML5, CSS3, Bootstrap 4+, JavaScript, Node.js, Angular 8+ and TypeScript. Currently gaining experience with Vue.js.
  • Two years experience with cloud native tech: AWS, Microsoft Azure & Google Cloud for both professional and personal projects.
  • One to two years experience with cloud-native NoSQL databases (CosmosDB/DynamoDB) for both professional and personal projects.
  • Also experienced with ASP.NET MVC/Core, VB.NET, C++ and Java.
Development Practises & Tools
  • Sixteen years experience and an excellent understanding of object-oriented programming and object-oriented analysis and design principles.
  • Sixteen years experience following test-driven development with MSTest, NUnit and Moq.
  • Sixteen years experience working in agile development teams following scrum and more recently large-scale scrum.
  • Sixteen years experience using Visual Studio and more recently Visual Studio Code.
  • Experienced with many source control repositories such as Git, GitHub, TFS, SVN and Visual SourceSafe.
  • Experienced with AWS CodePipelines, Azure Dev-Ops, TFS and CruiseControl.NET for running CI/CD build and deployment pipelines.
  • Experienced working with both monolithic and microservice architectures.
  • Currently dabbling with Docker; creating and running Docker containers using Docker Desktop and Docker Compose.

Achievements & Certifications

  • Contributed significantly to Salary Finance's successful sale of Work Report to Experian. (May 2022)
  • Microsoft Certified AZ-204: Azure Developer Associate. (April 2021)
  • Lead a Community of Practise in Azure DevOps build pipelines. (2020-2021)
  • Participated in four hackathons at BigHand, team-leading two of them. (2017-2021)
  • Scrum Alliance: Certified Scrum Master. (January 2017)
  • Provided ‘dev buddy’ support to multiple BigHand colleagues. (2016-2021)
  • Presented at many technical showcases, forums and product demonstrations with BigHand. (2015-2021)
  • Travelled to six different countries offering technical support for six different projects while working with BancTec. (2006-2015)

Employment History

Experian

Senior Software Developer

I have joined Experian as a Senior Software Developer as a result of the Work Report product and team acquisition from Salary Finance Labs. Now, as a member of the rapidly expanding Experian verifications family, we are well poised to further Work Report and expand upon its fantastic financial service offerings.

May 2022 - Present

Salary Finance

Senior Full Stack Developer - 5 months

I joined Salary Finance in December 2021 as a senior full-stack developer working within the Salary Finance Lab's Work Report team - a collaboration with Experian to deliver instant verification of employment and income services to lenders on behalf of financial product consumers across the UK. What was once a manual process suffering from complexities such as time delays and accuracy issues, has been revolutionized and fully automated, resulting in instant verification of a consumer's employment and income information via the National Employer Database and wide-reaching data partnerships with UK payroll providers.

In my short time with Salary Finance I have been able to provide a substantial contribution to the Work Report team's successful completion, role out and subsequent sale of both the Work Report product and team to Experian in May 2022.

As a senior developer for the Work Report team I have broadened my technical skill set by utilizing:

  • Microservice Architectures
  • .NET Core 3.1 Web APIs
  • AWS DynamoDB
  • AWS CodePipeline/Build/Deploy
  • Docker
  • MySQL
December 2021 - May 2022

BigHand

Senior Developer - 6.5 years

In June 2015 I joined BigHand as a Senior Developer. During the last six years I've been involved with many exciting and interesting projects across multiple agile scrum teams, designing, implementing, testing and supporting BigHand’s diverse range of workflow applications:

  • BigHand Now
  • BigHand Hub
  • Service Provider Gateway
  • BigHand Insight
  • BigHand JavaScript API
  • Identity Server 4

I have also been responsible for implementing key features for the BigHand Hub such as:

  • Obfuscation of client assemblies
  • iManage Integration
  • Device Detection

While working with BigHand I've been fortunate enough to expand my experience in both front-end and back-end technologies. The front-end tech stack includes .NET Framework WPF desktop applications written in C# and XAML utilising MVVM, Unity, Prism and CEF-Sharp to ASP.NET Core and Angular web applications written in TypeScript. The back-end tech stack consists of .NET Framework Web Services (WCF/TCP) interacting with SQL Server databases via Entity Framework.

I've also been involved in organizing and implementing dev-ops improvements and practises to the product build pipelines as part of a Community of Practise.

BigHand Development Team
A Challenging BigHand Project - 'BigHand Insight'

BigHand Insight is a business intelligence and data warehousing project utilizing Microsoft Power BI for reporting dashboards on the front-end. Microsoft provides plenty of tools and products to help enable such a project, such as SSIS (SQL Server Integration Services), SSAS (SQL Server Analysis Services) and SSRS (SQL Server Reporting Services) or Power BI for the reports. However, the Insight project is required to support the free, but limited, SQL Server Express edition. Therefore some of these tools, such as SSIS, are not available to utilize as part of the Insight solution because they do not support SQL Server Express. This means that elements of the Insight project have had bespoke customisations written in place of using established packages such as SSIS, which has resulted in both complex development and deployment support challenges.

In business intelligence projects, SSIS is primarily used to automate the Extract, Transform and Load (ETL) process which migrates historical audit data from source database systems into a single data warehouse that is then used to build useful insights in the form of reports and dashboards etc. Without the ability to utilize SSIS for the ETL process we had to think outside of the box and plan, implement and test our own bespoke ETL process in C#.

Some of the customisations written for the Insight project include:

  • A bespoke ETL process responsible for extracting data from source databases, transforming it into the expected structure and loading it into the data warehouse.
  • A thread-polling synchronisation process for the ETL process.
  • A caching layer that holds a certain number of table records in memory before performing lookups in the database.
  • Additional resilience in the caching layer to be more robust to error cases such as record lookup failures.
  • SQL views to tansform complex data into more presentable structures for Power BI reporting.
June 2015 - December 2021

BancTec Ltd.

Junior Developer -> Lead Developer - 9 years

After graduating from university I joined BancTec Ltd. as a Junior Developer. Over the course of the next 8 years I progressed into Mid-Level and Senior Developer roles before becoming a Lead Developer in 2011. While working at BancTec I was responsible for:

  • Co-leading both in-house and off-shore .NET and Java CenterVision development teams.
  • Designing, implementing and testing the range of BancTec CenterVision applications.
  • Researching, prototyping and implementing CenterVision features, change requests, bug fixes and proof of concepts.
  • Frequently travelling to a variety of customer sites globally in support of bespoke CenterVision projects such as: Post Danmark in Copenhagen, Public Works and Government Services Canada in Toronto, ScanOptics in Connecticut, UWV in Amsterdam and DBS in Singapore. Involved in design sessions, bug fixing, deployment assistance and production support.
  • Working closely with Post Danmark on initial proof of concept sessions resulting in the first signed CenterVision deal for BancTec.
  • Engaging in ongoing collaborations with BancTec's CenterVision QA team in Montreal, Canada.
  • Taking lead ownership on other development projects:
    • Designing, implementing and testing a CenterVision system-to-system 'Promotion Tool'.
    • Integrating FxCop as a coding standards/code quality tool and defining custom code quality rules.
    • Creating SQL Server 2005 SSIS packages for Microsoft Visual SourceSafe (VSS) source control database backup procedures.
    • Creating CruiseControl.NET build scripts and configured CI, nightly and release builds.
    • Source code migration from a legacy VSS repository to a Team Foundation Server (TFS) repository.
A Challenging BancTec Project - 'STDP' · DBS, Singapore

The 'STDP' project for the DBS bank in Singapore was one of the most challenging projects I faced during my time with BancTec. STDP stands for 'Straight-Through Document Processing' and was the bank's bespoke end-to-end implementation of the CenterVision platform. The STDP project made full use of BancTec's technology, both hardware (IntelliScan XDS industrial paper scanners) and software (CenterVision) with the intention of reducing both the processing times and human-intervention required for two of their main streams of work:

  • Returned mail envelope processing
  • Giro cheque processing

In my role I operated as the Technical Lead for all phases of the project from requirements analysis through to design, implementation, testing and on-site roll-out of the completed system to various DBS sites located across Singapore (UAT, DR and production data centres). I liaised daily with BancTec's technical partner in Singapore, DTS, as well as the DBS project managers and operations end-users.

The project was extremely challenging for multiple reasons, including:

  • Constantly changing requirements which pushed the goal posts further back while the project had a limited delivery time frame.
  • Production deployments had to be on-site only - so no remote connections allowed!
  • Production deployments were only allowed between the strict operating window hours of midnight-6am.
  • Requesting production system access was extremely challenging and resulted in a lot of waiting while authorization was pending.
  • Large time-zone differences resulting in limited remote face to face communication.

Therefore, creativity was required to overcome many of the technical challenges faced, such as finding effective ways to time manage, troubleshoot, debug and diagnose production issues all within the bank's tight security restrictions that were in place.

After 'STDP' went live, DBS reported great success as they had observed massive efficiency gains:

  • Returned mail envelope processing: 20,000 envelopes processed in 1.33 hours, down from 773 hours previously.
  • Giro cheque processing: 70,000 forms processed in 4.6 hours, down from 233 hours previously.
September 2006 - June 2015

IBM

University Industrial Placement - 1 year

A one-year industrial placement as a member of the Websphere MQ for z/OS software build team at IBM. Key responsibilities were:

  • Building and packaging Websphere MQ releases and service packs to tape for the z/OS platform.
  • Implementing, modifying and testing build scripts coded in the REXX language.
  • Creating, modifying, testing and executing batch jobs on the MVS OS to start the build process.
  • Writing supporting applications and utilities to ensure that the software was built and packaged both correctly and efficiently.
August 2004 - August 2005

Education

University of Plymouth

First Class Honours Degree
  • BSc (Hons) Computing Informatics
September 2002 - June 2006

Collingwood College & Sixth Form

A Levels
  • Business Studies (B)
  • Geography (C)
  • AVCE - Information and Communications Technology (B)
  • AS - Media Studies (C)
GCSEs
  • Geography (A*)
  • Information Technology (A)
  • English Literature (B)
  • English Language (B)
  • Mathematics (B)
  • Science (Bx2)
  • French (B)
  • Graphic Products (D)
September 1995 - May 2002

Personal Projects

Over the years I've worked on a few different personal development projects in my spare time. These projects have been undertaken due to a desire to get to grips with an area of technology that is new to me or simply because I had a need for the end application (or both!). Below are details of a few of them, ranging from projects I'm currently working on such as Fighting Fantasy Fellowship and Spot New Music, to crude applications that I cobbled together back in my college days. I use GitHub for all projects; a mix of both private and public repositories. Click the project name for a direct link to the currently deployed version (web apps) or the GitHub repo (if public).

Fighting Fantasy Fellowship

HTML 5 · CSS 3 · Bootstrap 5 · Vue.js · Azure Static Web App · .NET 6 Web API App Service · Azure CosmosDB · Azure Key Vault

Work In Progress

A full-stack Azure-based web application that focuses on a personal interest of mine: Fighting Fantasy adventure game books from the 1980s and 1990s! These books were devised and originally written by Steve Jackson and Ian Livingstone (of Games Workshop fame) and have long since become collectors' items. The project consists of a no-SQL data store in CosmosDB that holds information on each book in my collection. A .NET 6 WebApi, deployed as an Azure App Service, allows the data to be retrieved by a Vue.js web front end. The website's purpose will be to showcase my own personal collection of books and provide information on rarity, value, condition etc. as well as provide my own book reviews and other useful information for fans and collectors alike.

Online Resumé & Portfolio

HTML 5 · CSS 3 · Bootstrap 5 · Azure Static Web App

My most recently completed project is this website which I started building in July 2021. Utilizing a modified bootstrap template, putting together this online version of my CV has allowed me to be more creative with the use of space, colour, pictures, links in order to showcase my professional and personal portfolio of work.

Spot New Music

Node.js · Angular 12 · Docker · Google Cloud · Azure Static Web App · Spotify API

Work In Progress

Started in 2019 this is my first attempt at learning Angular, TypeScript, Node.js, Google Cloud, Docker and Azure Static Web Apps with a Function API. It is a single page web application that interacts with the Spotify API in order to deliver artist search functionality and a display of related artists/genres in a meaningful and interactive manner. This project is currently a work in progress and still has many design ideas left to implement. See here for the current version deployed to Azure as a Static Web App. Current features include:

  • Obtains a JWT authentication token from the Spotify API. Originally via a Node.Js back end server API endpoint but now occurs via the Static Web App's embedded Azure Function API built on Node.js.
  • Artist searching via a search field with a filtered/paged results list.
  • Artist selection which displays artist information on an overlay as well as a number of related artists underneath.
  • Select a related artist in order to re-run the query to retrieve their related artists and so on...

Mp3-Formatter

.NET Framework · C# · Winforms

Before Spotify and other streaming services such as Google Play had a diverse enough online catalogue that made them worth subscribing to, I utilized Google Play's free offering. As a Google Account holder you were able to upload your entire music collection, ripped to MP3, to the Google Play cloud streaming service and access your music anywhere, on any device. At the time this was perfect for me as it was free and I have a huge music collection that consists of many artists and albums, some of which are quite obscure. Even today a few of them are not available to stream on the popular services.

The painful side to this was the upload process. Not only did it take ages (months!) but the MP3s stored on my hard drives were not in a consistent state in terms of both the file names and the MP3 ID3 tags - metadata about the music itself such as the artist, album, even the album artwork. I decided to write a C# Winforms application to speed this process up and enable MP3 files to be batch processed in a uniform way. Features include:

  • Pick a folder of files to process in each run - so could be by artist or album etc.
  • Specify the type of tags included in the MP3 - either ID3 v1 or ID3 v2
  • Set a filename/file number format to apply to each MP3 file
  • Decide if the filename should match the title of the track
  • Manual override of ID3 tags
  • Phrase replacement dictionary
  • A host of other formatting options
  • Logging to an output window

Campus Map Tool & Route Planner

Java · Applet · MySQL · J2ME

In 2006 while in my final year of University I decided to embark on an ambitious final year project (dissertation) and create a suite of tools for the students of the University of Plymouth to help them find their way around campus, locate buildings and access useful contact details for academic members of staff. The project was implemented in Java and consisted of the following components:

  • A Java desktop application that allows an administrator to create a path-finding map of the university
  • A Java web Applet version of the above tool aimed at students wishing to find campus routes
  • A Java web Applet that allows students to search for staff contact details in a MySql database
  • A J2ME mobile application aimed at students combining both of the Applet features above

The Java desktop application is the administrative side of the project. Here a user is able to load an image of the University campus and create a graphical map of the campus that uses Dijkstra's algorithm to find the quickest route from all of the possible pathways between the start and end destinations. Start by placing nodes (blue circles) on university buildings. By placing a node you can input the name of the building. Choice points (yellow circles) can then be placed along all of the pathways and access routes a student may take around campus and are particularly useful when the pathway reaches an intersection or crossroad and the student needs to make a choice about which way to turn. Finally, all of the building nodes and choice points are joined together with a path (red line). When each possible route between buildings has been created the map of the campus will resemble a graph like a neural network. At this point the map is saved and uploaded to a web server where the Applets (and end users) can utilise it to find the quickest routes (in image pixels!).

Once finalised the map information is stored in XML format on the web server for the Applet users to query routes via a read-only version of the UI. A scaled down version is also provided via J2ME for early Java-enabled mobile devices.

Descent & Invasion

Matchware Mediator 7/8

In 2001-2002 I undertook a college qualification in Information and Communications Technology and got to grips with very basic programming concepts for the first time. Using a multimedia package called Matchware Mediator I was able to put together two very basic (and somewhat crude) games. The first is called 'Descent' and was implemented as part of a paired exercise with another classmate of mine. The second game, 'Invasion' was a solo exercise and built upon the foundations I'd learnt from my experiences working on Descent. Both games taught me about the concept of timers, counting variables, loops, animation paths, event triggers and collision detection.

Descent is about using the trusted WSAD keys on the keyboard to move a plane around the sky, picking up as much fuel as you can to score points all the while avoiding the enemies and ensuring that the enemies do not pick up the fuel ahead of you, as both events will deduct points from your score:

Invasion is a point and click shooting game whereby you must shoot the enemies on screen using the mouse cursor and ensure that they do not touch the elderly pensioner who is on her way home. There are multiple levels of increasing difficulty and various bonus objects to attempt to hit along the way. Watch the videos to see some terrible collision detection in action:


Hobbies & Interests

Dodgeball

Since 2016 I have been playing dodgeball in London two-three times a week. I play in recreational leagues although the competition is still fierce! In total, I have played for six different teams across five different leagues and won league titles with each one of them. I've even played at the world's largest dodgeball tournament at Sin City in Las Vegas! I am currently the captain for my current and longest-serving team 'Projectile Dysfunction'. Take a look here at some on-court action!

Music

I casually play the electric and acoustic guitars and enjoy mixing 1990s dance and rave music digitally on my laptop.

Football

I have been playing football in various different moulds since I was young but have been playing regularly on a Sunday night outside of London since 2009. This is usually a 7 or 8 a side game and is very casual, which is great for me now that my speed isn't quite what it used to be! I also support Tottenham Hotspur and am very used to being the butt of the office jokes as a result. Most of my friends and colleagues happen to be Arsenal fans!