Nicholas Stokoe

Location
Edinburgh, UK
Email
nick.stokoe.cv@noodlefactory.co.uk
Phone
+44 794 131 7425

Senior software engineer. Trained as a physicist to postgraduate level: modelling data acquisition systems for particle physics, at UCL (London) and CERN (Geneva). Subsequently worked in IT on applications, including:

  • Remote monitoring and control of off-grid power-generation systems for mobile telecoms
  • A document capture and business workflow application
  • 3D military simulation & training software
  • An estate-agency sales and marketing website
  • Critical/legacy dev-ops infrastructure, and live refactoring thereof
  • Automated cross-platform, multi-language build and deployment systems

Edinburgh Hacklab co-founder. Science fringe-festival organiser. Social.coop tech admin/organiser. Open-source software contributor, author. Appreciates learning, making, community.

Skills

A cross-section, ranked by current usage, not exhaustive. For historical skill sets, see occupational history.

Computer languages and standards

  • Javascript (heavy)
  • HTML/CSS (heavy)
  • Java (heavy)
  • Groovy (heavy)
  • C / C++ (moderate)
  • Perl (light)
  • Dash, Ksh, Bash, Awk (moderate)
  • SQL (moderate)

Operating Systems Administration

  • Linux (Debian, Ubuntu, CentOS) (heavy)
  • Windows (light)

Applications and frameworks

  • NodeJS tool-chain (heavy)
  • AngularJS (heavy)
  • ReactJS (light)
  • D3.js (moderate)
  • Git (heavy)
  • Emacs (heavy)
  • IntelliJ IDEA (heavy)
  • Ansible (moderate)
  • MySQL/Sqlite3 (moderate)
  • CouchDB (moderate)
  • Ratpack (moderate)
  • Spock/JUnit/Jasmine/CMocka testing (moderate)
  • Apache configuration (moderate)
  • Jenkins (moderate)
  • GNU Make (moderate)
  • VirtualBox/KVM/Docker (light)
  • Netty (light)

Design and development

  • General software design & development, refactoring legacy code (heavy)
  • Web UI design using AngularJS, ReactJS, D3, Bootstrap, HTML5, CSS3 (heavy)
  • Unit/regression testing in Java, Groovy, Javascript, C (heavy)
  • Android app development (moderate)
  • Cross-platform product build and packaging systems (moderate)
  • Linux sysadmin, Ansible-driven system deployment and provisioning (moderate)
  • Java SWT GUI design (light)
  • Embedded C, TCP/IP, Linux & micro-controller programming (moderate)
  • Refactoring/porting legacy C/Java applications (moderate)
  • SQL and database design (moderate)
  • Project management and estimation (light)

Education and Qualifications

  • PhD, Simulation of data flow in the ATLAS level II trigger (unsubmitted) University College, London & CERN, Geneva, 19941997
  • BSc (hons) 2:1 in Physics with Computing University of Southampton, 19881991

References

Available upon request.

Occupational History

2012now

Senior Software EngineerControllis (Edinburgh)

A manufacturer of low-noise DC generators for off-grid telecoms applications, managed via a remote encrypted control & monitoring system. I research & develop tools & processes, and have made significant contributions to the design & implementation of the software. I was technical lead of the project to refactor the remote management application from desktop Java to a RESTful web application served by Java/Groovy. Likewise I have led projects to add subsystems for the embedded C platform, extended its web UI with AngularJS/D3, and web-based production tools for the factory. I instigated the introduction of unit/functional tests, CentOS/Ubuntu deployment automation using Ansible, .rpm/.deb packaging, migrated source control from SVN to Git, and replaced numerous ad-hoc build scripts with Gradle/Make/Git/Jenkins-based build system. (See skills list.)

20012012

Freelance IT consultantNoodle Factory

Short & long term engagements, interleaved. Space precludes an exhaustive list.

19982000

Software EngineerPrimary Image (London)

I worked in the R&D department for this producer of high-performance graphics cards and military training simulation software.

  • C
  • C++
  • OpenGL
  • rendering algorithms
19941997

PhD studentUCL High-Energy Physics Group & CERN (London & Geneva)

I studied trigger/data-acquisition systems, developing hardware and software models for the ATLAS detector design.

  • C/C++
  • DSP assembly
  • Fortran
  • Perl
  • Tcl/Tk
  • Unix
  • particle detector design
  • image processing
  • discrete event simulation