DEAN TURPIN – turpin.dev


Senior software engineer with 23 years of commercial experience. Motivated self-learner; advocate of modern C++, Linux, knowledge sharing and Agile.

  • Languages: C++17/20, STL, Bash, Python
  • Config control: Git, Subversion, SourceSafe
  • Build/CI: GitLab CI, Jenkins, Visual Studio, GNU Make, CMake, Google Test
  • OS: Linux, Windows 10, Unix (Solaris), VxWorks
  • Virtualisation: WSL 2, VMware, VirtualBox, Docker, Google Cloud, AWS
  • Networking: TCP/UDP, OSI, Wireshark
  • Design: Parallelism, algorithms, data structures, unit testing, Doxygen
  • Graphics: JUCE, MFC
  • Misc: Agile, Jira, Tracy Profiler, Wireshark, clang-format, Raspberry Pi, Blender

Employment

REDACTED1 – Senior Software Engineer (2019-present)

Senior C++ developer on the next generation of networked, high-bandwidth, embedded-Linux media servers. Also responsible for the design, implementation, documentation and automated testing of the external API.

Currently adding new interpolation modes to the existing OpenGL shaders and also involved with the development and remote installation of a full-stack orchestration system (MySQL, Python, Node.js).

REDACTED2 – Senior Software Engineer (2002-2019)

Design and implementation of distributed, C++ signal processing applications, deployed across a network of multi-core embedded Linux and Windows machines. Required time-sensitive TCP/UDP communication and tight coupling with FFT firmware over PCIe. Source code was managed in Subversion and Jenkins was used for build and test. Software architect on a legacy system upgrade to the latest digital receiver. Responsibilities include system and network design, software development, requirements analysis, integration management and ownership of the external interface.

Scripting and networking

Deployed applications to allow non-technical managers read-only access to live systems, offering insights into the products they manage but ordinarily have little visibility. Proposed and demonstrated a technique to allow remote debugging and deployment of air-gapped systems using standard IT hardware. Used Puppet to automate a lengthy manual installation procedure. Proactive in highlighting opportunities for autotest in legacy systems.

Customer-facing demonstrations

Go-to engineer for live trial support. Conscious of the need for diplomacy in customer-facing scenarios. Implemented and demonstrated a multi-lingual Windows-based training tool and received a formal award for my contribution to the successful end-user demonstration in REDACTED3. Completed installation of software in REDACTED4 in difficult working conditions and under close customer scrutiny. Deployed software on ship, requiring problem solving and redesign in hostile environments.

Knowledge sharing

Proposed and facilitated a mini research programme for graduates. Potential topics for investigation were captured in a Jira sandbox project, enabling new starters to manage their own work whilst also providing exposure to the tools and Agile process. Regularly acted as an informal mentor, distributing weekly summaries with relevant articles and software puzzles. First to use the company wiki as an online logbook in 2009.

Exploring languages and developing people

Actively promoted alternative languages and successfully demonstrated the use of JavaScript where it previously hadn’t been employed. Encouraged consideration of other programming paradigms to foster deeper reasoning about software. Keen to identify and encourage skills in graduates that are poor or absent in the established workforce.

REDACTED5 – Software Engineer (2000-2002)

Coding and integration of large concurrent VxWorks-based systems, kernel configuration, built-in test and on-site software installation.

REDACTED6 – Graduate Software Engineer (1998-2000)

Design of lab networks and configuration of VxWorks kernel. Small-scale coding, senior engineer support, command line scripting.

C++ experience and side-projects

Whilst C++20 is now readily available, commercially I develop using C++17, so I maintain various side-projects on GitLab to explore C++ features that can’t be exploited at work. These projects cover topics such as audio processing, crypto currency trading strategies, and currently a Python analysis tool using the Companies House API.

I’m also an advocate of ad-hoc scripting to complement rapid development of ideas, and I believe a solid foundation in a ubiquitous language such as Bash is advantageous in CI and cloud computing.

See links.turpin.dev.

Education and interests

  • Education: Computer Science BSc. 2:2 from REDACTED7
  • Interests: Cycling, guitar, 3D design
  • Language: English (native), French (provenance), Gujarati (extended family)

Current toolchain

  • Visual Studio 2019 16.9.3
  • Windows 10.0.19042
  • Ubuntu Groovy 20.10
  • WSL 2
  • C++20
  • gcc 11
  • clang 12
  • Python 3.9.4
  • Bash 5.0.17
  • Tracy Profiler 0.7.3
  • ZeroMQ 4.2.1
  • JUCE 5.4.3
  • Wireshark 3.4.3
  • Blender 2.92.0
  • CMake 3.16.3
  • Google Test 1.10.0