Chris Tuncan

Summary

Senior software engineer with 6 years of industry experience. Delivered award winning features, reduced tedium, and increased developer efficiency. Cross disciplinary with experience in Agile management, testing, DevOps, embedded, application, web, and server development. With a passion for making everyone’s lives easier. Recent experience with C/C++, Python, Bash, PHP, SQL, Docker, Android, Linux, and can easily and eagerly learn new technologies as needed.

Employment

Senior Software Engineer

  • Raymarine Ltd.
  • Fareham, UK
  • Jan 2020 -- Present

Oversee architectural design of numerous codebases, ensuring that multiple teams (40+ developers, 10 testers) are coordinated, despite covering multiple time zones, and identifying potentially problematic system interactions.

Maintained healthy and performant git repositories, through training, manual monitoring, and automated systems (such as detecting when feature branches would conflict, rejecting incomplete submodule pushes, or foxtrot merges).

Run a daily meeting with testers to cover bugs that might not be handled well by the scrum meeting, such as legacy bugs or regressions that don’t appear to be linked to active development.

Develop automation for repeatedly requested tasks. Such as taking a screenshot of every screen in every language, exporting assets and settings for UI to tweak, or generating a variety of documents for the release process. (Bash, PHP, SQL, Confluence)

Work directly with OEMs and customers to solve their problems and give priority support.

Maintain multiple customised Android platforms for our hardware, including Android 5, 7, 8, 11. (C++, C, Java)

Encourage professional development of developers and interns through pair programming, sharing articles and talks, and guiding them to their problem’s solutions.

Scrum Master

  • Raymarine Ltd.
  • Fareham, UK
  • Jan 2018 -- Oct 2020

Utilised JIRA to manage sprint planning and run scrums. Then used the various metrics in JIRA to guide retrospectives. As a team we identified key metrics that we wanted to track, and developed visualisations to make them clear and concise.

Tracked reported crashes across multiple test systems, adjusting the raw value to take into account the load of the system under test. A system that isn’t crashing because it’s turned off is not a useful metric!

Tracked bugs raised and resolved over time to identify the accumulation of technical debt. Both within our team, and across the codebase as a whole.

Developed ClearCruise AR, which won the IBEX 2018 Product Innovation Award, SAIL Magazine’s 2019 Pittman Innovation Award, and 2019 NMEA Technology Award.

Software Engineer

  • Raymarine Ltd.
  • Fareham, UK
  • Jun 2017 -- Dec 2019

Worked on a cross platform (Linux/Android) C++ and Qt application to develop new features as part of a agile scrum team. Fixed bugs across all areas of the codebase in an efficient and timely manner. Ensured seamless coordination with UI designers, system architects, and testers through active listening and communication skills.

Created reproducible development environments for building code, which both reduced breakage in the continuous integration system, and reduced new starter setup from a multi-day affair to a single command. Since then we have not had to deal with “but it compiles on my machine”. (Although “It works on my machine is harder to stamp out”)

Maintained a fleet of 5 build machines, using custom monitoring tools to handle common failure cases such as running out of storage, file-system failure, rogue processes from non-sandboxed builds.

Reduced our full product build from 5h to 1h20 by distributing build variants across multiple build machines.

Monitored test systems by connecting them into a single Ethernet network, isolated from each other using VLANs, allowing a single Ethernet cable to connect to all systems simultaneously by changing the VLAN outgoing packets were tagged with. This allowed viewing the load, crash logs, system settings, even the screen. While also allowing us to control the screen, remotely upgrade, and more.

Software Tester

  • Raymarine Ltd.
  • Fareham, UK
  • Jul 2015 -- May 2017

Automated UI testing using the Squish framework by FrogLogic.

These were able to replicate more tedious tests performed by real testers, they also could run against nightly software releases. I implemented a library of abstractions to allow tests to more closely match plain English test specifications. (Python)

Extended Squish to hook into the application’s performance metrics, this allowed to track relative performance rather than just functional pass/fail. This system was able to identify performance regressions, as well as verify optimisations. (C++, Python)

Built a frontend and backend for aggregating performance results. (PHP, SQL, HTML and JS)

Rewrote the integration between Squish and our CI/CD system. This reduced the size of test results on disk, made scheduling tests on test machines more flexible, allowed test machines to be version independent, centralised error reporting. (Bash, PHP, Python, SQL)

Developed simulators for third-party hardware which was often not easily controlled or observed programmatically. This reduced the amount of external state in our automated test systems, reducing false results. We were even able to implement a new NMEA2000 feature in parallel with the third-party hardware, with minimal changes need when the hardware was received. (Python, NMEA2000, TCP/UDP)

At the end of my industrial placement I continued at Raymarine part-time as the technical expert. In this role I focused more on architectural design, pair programming and code reviews for the full time team.

Education

BEng Electrical and Electronic Engineering

  • Southampton University
  • Hampshire, UK
  • Oct 2013 -- Jun 2017

I received the IET Diamond Jubilee Scholarship, and graduated with first class honours.

When I was attending Southampton University they did not offer industry placements. However the faculty was amenable when I approached them about organising my own.

I covered cyber security (offensive and defensive), project life-cycles and management, contract law, semiconductor design, control systems, networks (theory and applied), as well as your standard electrical and electronic basics.