StJohn Piano
Software Engineer
Newmarket, Suffolk, United Kingdom
Summary
Extensive experience in solving difficult software problems.
Primary skills: Python (9 years), Linux (5 years).
Languages:
English
Experience
Jan 2021 - Present
Solidi (solidi.co)
Head of Engineering
July 2019 - Jan 2021
Solidi (solidi.co)
Software Developer
Accomplishments:
- Implemented support for new cryptocurrencies in the Solidi exchange application: Ethereum (ETH), Ripple (XRP). Exchange website: http://solidi.co
- Designed and implemented secure cold storage solutions for ETH and XRP. Wrote recipes for their use.
- Implemented a tradebot that bought and sold cryptocurrency on other exchanges.
- Implemented SSL-secured RabbitMQ messaging to handle communications between various cryptocurrency clients and the main system.
- Designed and implemented a new version of the Solidi trade engine. It uses Kafka to handle order / trade messaging.
Skills Developed:
- Dealing with large existing codebases.
- Git-fu.
- Hooking systems together with message queues.
- Dealing with the idiosyncrasies of different cryptocurrencies.
- Writing clear recipes & explanations for the internal company wiki.
- NodeJS, Go, Solidity, Windows 10.
28 June 2017 - present
Edgecase (edgecase.net)
Software Engineer
Accomplishments:
- Designed and implemented a toolset that allows a user to securely store Bitcoin offline. See http://edgecase.net/pages/how_to_store_bitcoin
- Designed and implemented Edgecase Datafeed, a secure publishing system. All published articles are digitally signed with GPG and timestamped in the Bitcoin blockchain. Edgecase Datafeed can be viewed at: http://edgecase.net
- Designed and implemented a Bitcoin-based subscription system for Edgecase Datafeed.
Skills Developed:
- Digital signature creation and verification (GPG).
- Offline Bitcoin storage.
- Secure private key creation using any source of entropy.
- Offline address generation.
- Offline transaction construction and signing.
- Reading and processing binary data formats.
- The structure and use of text encodings (ASCII, UTF-8).
- The structure and use of package managers (RPM, Yum).
- Writing clear, readable recipes for users.
24 October 2015 - present
Abacii Ltd (abaciivoice.com)
Project Manager
Accomplishments:
- Managed 17 transcription projects, totalling 336738 transcriptions (transcribed speech data is used to test the accuracy of speech recognition systems).
- Wrote transcription guide for new transcribers, which can be viewed at: http://arkaeologic.pythonanywhere.com/faq/default
- Hired and trained transcribers.
- Wrote software scripts to perform proofreading, spellchecking, and statistical selection for Quality Assurance (QA) testing on transcription projects. QA results across 283258 transcriptions (53480 were not checked): Average raw text accuracy score was 92.1%.
- Wrote software scripts to process large Nuance Recogniser logs and extract data for transcription.
Skills Developed:
- Working knowledge of: Perl, AppleScript.
- Guidance of new transcribers who had to learn the non-intuitive skill of exact transcription of speech.
- Design of Python scripts that could process large amounts of logged data and extract important information.
01 April 2015 - 23 October 2015
Abacii Ltd (abaciivoice.com)
Speech Science Intern
Accomplishments:
- Implemented speech grammar systems in English and Spanish.
- Ported VBA macros for project report generation from Excel 2007 (Windows XP) to Excel 2011 (Mac OS X 10.6.8).
Skills Developed:
- How to design and tune speech recognition GrXML grammars.
- How to install, configure, and use a Nuance Recogniser system in a CentOS VM.
15 April 2014 - 21 March 2015
Journeyman Project: Funded by Jali (jali.co.uk)
Research Engineer
Project Goal: Develop an automated 3D woodworking machine (combination CNC router, spindle moulder, and scanner) with tablet interface. Funding provided by Jali.
Result: Project canceled when true scale of required software research and development became apparent.
Accomplishments:
- Plug&Play Raspberry Pi-based networked camera system. Takes and serves a 1296x972 pixel jpeg file over a local network in ~0.5 seconds. Uses picamera driver and cherrypy webserver. Three of these cameras were installed in the Jali automated furniture painting system.
- Raspberry Pi-based dynamic control of a Baldor motion controller and Omron servomotors.
Skills Developed:
- Construction of electrical and motor systems.
- Embedded systems development (Raspberry Pi, Arduino).
- Detailed knowledge of Linux system configuration, computer networking, web servers, and multi-process software.
- Detailed knowledge of the Atmel ATmega328 chip (used in the Arduino) and the GRBL motion control system (used in many 3D printers).
Jan 2014 - 15 April 2014
Abacii Ltd (abaciivoice.com)
Transcription Manager
Accomplishments:
- Wrote software scripts to extract and sort large amounts of transcription data.
- Analysed speech recognition system outcomes.
- Partitioned and managed work among the transcriber team.
- Transcribed thousands of English & Spanish audio files.
Skills
Backend Development, Bitcoin, Blockchain, Git, Linux