Software engineer with a talent for solving complex problems, producing intuitive user-interfaces and working in heterogeneous environments. Twenty years professional experience with a multitude of languages and environments and a non-dogmatic results-focussed approach to languages and tools. Currently mostly developing in Java & Javascript but using clojure and python for personal projects. Strong interest in machine learning. Have spent considerable amount of personal time developing competence in deep learning in particular (including completing Andrew Ng deep learning courses and Udacity deep learning nanodegree). Presented on deep learning at Qcon London 2018 and Devoxx UK 2018.
Core Competences
Computing experience
- Excellent programmer with many years of experience with Java, Javascript, python & C++, C on UNIX (SUN, SGI, Mac OS X & Linux), Microsoft Windows, Mac OS X & iOS. Some * experience with clojure, swift, objective-C, VBA, ruby, scala and haskell as well as pascal & occam.
- Full stack web development (PHP, MySQL, Java servlets, JSP, Struts, Spring, Spring MVC, hibernate, angularJS, jQuery, Jersey). RESTful APIs using JAX-RS and Flask. Experimented with Om (clojurescript binding for React JS).
- AWS services including EC2, ECS, SNS, SQS, dynamodb, API gateway
- User interface design on web, mobile and large format displays.
- Have experimented with deep learning using tensorflow and DL4j
General
- Native English speaker. Good spoken and written French.
- Excellent writing skills.
- Extensive experience of presenting research materials, hosting seminars and lecturing.
- Self-motivated and able to work either in teams or independently. Experienced leading small teams of 2-5 people.
Professional Experience
G-Research, London - October 2018 to present
I’m a member of the PCF team
Vmware, London – October 2011 to October 2018
Position
Staff Engineer working on cloud/on-prem hybrid delivery of desktop-as-a-service solutions. Initially worked on Horizon VDI (Virtual Desktop Infrastructure) product. Implemented RADIUS and SAML authentication for Horizon in addition to other more minor features. Since 2014, lead developer for cloud-hosted management platform for Horizon Cloud Services. This is a microservice archicture using docker for service deployment. One of the first teams in VMware to embrace docker, kubernetes and continuous delivery. Since June 2015 have released to production every week.
Technologies
Java, Javascript, mongodb, docker, kubernetes, AWS ECS, EC2, SNS, SQS. Some C++ for platform integration on Horizon.
Ecube Ltd, London - January 2007 to September 2011
A provider of web applications and intranet solutions in the financial domain.
Position:
Hired as lead developer (client side & server side), promoted to director in January 2010. Managed & implemented a number of mission critical web application projects for Ecube’s clients in the financial domain throughout the full development lifecycle. Worked on greenfield developments and extensions to existing legacy applications. Account manager for several major clients.
Technologies:
Java, J2SE, spring, hibernate, Spring, Spring MVC, Apache
Tiles, Apache Velocity, Apache HTTPD, iText, tomcat, C++, Javascript, VBA,
jQuery, HTML, CSS, MySQL, subversion, CVS, JUnit, Linux.
Key Accomplishments:
- Managed migration from proprietary application server to standards-based n-tier solution using Spring, hibernate, tiles and velocity.
- Developed of key technology for document production allowing data extracted from excel workbooks to be managed in centralised SQL database, inserted into word templates and displayed on the web. Included development of web application, excel 2007 add-in and VBA code for word templates.
- Developed CRM solution focussed on needs of independent financial research providers with streamlined AJAX-based user interface and click-to-dial phone system integration.
Snowtiger Design, France - December 2004 to December 2006
Bespoke software development mostly related to real-estate and music.
Position:
Co-founder and chief software engineer. Created bespoke interactive websites predominantly in the real-estate sector for companies in southern France.
Technologies:
Java, J2SE,PHP, C, C++, Javascript, CLIPS (an inference
engine), ruby, Spring, Spring MVC, Struts, hibernate, servlets, JSP, tomcat,
SWIG, Boost C++, smarty, Carbon, OpenGL, MySQL, HTML, CSS, XML, MIDI, JUnit,
CPPUnit, Linux, Mac OS X, multithreading.
Key Accomplishments:
- Creation of lifehouse-method.com for Pete Townshend of The Who. This site is capable of composing unique pieces of music using an inference engine to guide the composition process. The system went live in April 2007, and composed over 10,000 unique pieces of music delivered to users as high-quality MP3 files. It ran on a cluster of 5 Linux servers. Technologies used include: CLIPS, C++, SWIG, Spring, Hibernate, tomcat, ruby, JUNIT, CPPUNIT and the Apache ant build tool.
Xerox Research Centre Europe, France - February 1998 to November 2004
Xerox’s European research centre focussing on machine learning, machine
translation, social computing and document processing.
Position:
Research engineer working on large screen user interfaces,
distributed systems, contextual computing, document processing and mobile
devices. Developed prototype systems in Java, C++ & python.
Technologies:
Java, J2SE, J2ME, C, C++, python, Swing, JDBC, servlets,
JNI, MySQL, Solaris, Windows, Symbian, XML, XML-RPC, SOAP, RFID, Bluetooth,
mobile computing, machine learning, support vector machines (SVM), OpenGL.
Key Accomplishments:
- Coordinated (overall project lead & leader of Xerox team) the French-Finnish Contact project (PROACT initiative) which comprised 2 French and 3 Finnish partners.
- Co-wrote several large-scale European project proposals.
- Created XRCE internal project investigating a new form of network for mobile devices US patent application granted in 2003.
- Five patent applications filed.
- Expert reviewer for the European Commission (CHARISMATIC, SCALEX, CIMWOS projects), UK EPSRC and Irish Science Foundation.
Nottingham University, UK - January 1994 to January 1998
Position:
Post-doctoral research associate. Research focussed on the software design of large-scale collaborative virtual environments (CVEs) and the use of CVEs for collaborative abstract information visualisation. Co-wrote several UK research grant applications. Supervised several 3rd year and M.Sc. student projects and a 2nd year project group.
Technologies:
C++, Java, J2SE, Swing, JNI, networking, Tcl/Tk, OpenGL, Solaris, IRIX, Windows, TCP/IP, socket programming.
Key Accomplishments:
- Produced several prototype VR and information visualisation systems in C, C++, Java and Tcl using a variety of VR systems on SUN and Silicon Graphics workstations and PCs running Windows NT.
- Worked with artists and designers to create a VR art installation (at Nottingham NOWnintey7) and a mixed VR and real life hip-hop poetry performance (at Nottingham NOWninety6).
- Lectured a course on computer graphics in the 1996-97 semester (included setting and marking coursework and an exam).
- Co-chaired CVE’96, CVE’98 & CVE2000 - the first international conferences on collaborative virtual environments.
Open University, Nottingham - January 1997 to December 1998 (part-time)
Position:
Associate lecturer (part-time). Taught course “T396 Artificial Intelligence for Technology”, including tutorial support, pastoral care, and assignment and project assessment.
Swedish Institute of Computer Science (SICS), Stockholm, Sweden - May to
June 1996
Industrial research and development organisation.
Position:
Guest researcher developing multi-user Virtual Reality application software in C & Tcl/Tk using the DIVE virtual environment. Technologies: C, Tcl/Tk, OpenGL, IRIX, TCP/IP, HTTP
Key Accomplishments:
- Developed a multi-user 3D collaborative web browser using DIVE.
Data Connection Ltd., London - Summer 1989 & 1990 (3 months each)
Software development company focussing on point-of-sale solutions for the retail industry.
Position:
Programmer working as part of a team developing a large general point of sale system written in C on an IBM PS/2 running OS/2.
Technologies:
C, Concurrent BASIC (CBASIC), Concurrent DOS (CDOS), OS/2
Gajits Music Software, Manchester - 1988 to 1992
Software house producing music software for Atari ST & Commodore Amiga computers
Position:
Freelance programmer developing music software in C on the Commodore-Amiga range of computers. Technologies: C, MIDI
Key Accomplishments:
- Ported several of Gajits flagship products from Atari St to Amiga.
Qualifications
1991 - 1994 Ph.D. in Computer Science
University of Manchester, Manchester
Ph.D. thesis presenting some research into the design of a distributed, object
oriented, multi-user VR system called AVIARY. Graduated in December 1996.
1990 - 1991 M.Sc. (by research) in Computer Science
University of Manchester, Manchester
Research into an extensible object-orientated environment for the manipulation
of music.
1987 - 1990 B.Sc. (Hons.) in Computer Engineering, Class I
University of Manchester, Manchester
Courses included: graphics, artificial intelligence, programming and
electronics/hardware. Final year project: A parallel ray-tracer written in
OCCAM on an array of INMOS transputers.
1985 - 1987 GCE A-levels: Mathematics (B), Further Mathematics (B),
Physics (A), Chemistry (A), Computer Science (A) and AO-level Maths
Wanstead High, Wanstead, London
1980 - 1985 Six O-levels including Maths, English Language and Literature.
Nightingale High, Wanstead, London
Publications
I have (co-)authored over thirty papers in the field of computer science (full list available at http://www.davesnowdon.com/publications), the following are a representative sample:
“Diffusing information in organizational settings: Learning from Experience,” Dave Snowdon, Antonietta Grasso, in proceedings of ACM CHI 2002, Minneapolis, Minnesota, April 2002, pages 331-338.
“A Poetry Performance in a Collaborative Virtual Environment”, Steve Benford, Gail Reynard, Chris Greenhalgh, Dave Snowdon and Adrian Bullock, in IEEE Computer Graphics and Applications, 20(3), May/June 2000, pages 66-75.
“Collaborative Virtual Environments: an introductory review of issues and systems”, Elizabeth Churchill and Dave Snowdon, in Virtual Reality: Research, Development and Application, 3(1), Springer, 1998, pages 3-15.
“The populated web: Browsing, Searching and Inhabiting the WWW Using Collaborative Virtual Environments”, Steve Benford, Dave Snowdon, et al, in Interact’97, July, 1997, Sydney, Australia.