An experienced and highly technical solution architect and software engineer with a wide range of skills, specializing in the design of high-level tools such as compilers for domain-specific languages. Adept at building software for parallel and concurrent systems, and the use of prototypes to help companies de-risk future technologies. A background in research and lecturing, with project management and mentoring skills.

Technical Expertise

Many years of software development experience at all levels and in numerous languages and environments.

Programming language implementation Lexers, parsers, type systems, compilers, runtimes, memory management, design & implementation of domain-specific languages and IDEs (e.g. using NetBeans Platform, Microsoft VMSDK, Eclipse Xtext), logics, natural language processing
Parallel and distributed systems Development of tools, frameworks and languages to help users build parallel and distributed programs and systems
Algorithms From artificial intelligence to signal processing
Prototyping Building prototypes to help companies evaluate and de-risk adoption of new technologies
Presenting An experienced lecturer and report writer

Skills

A representative, but not exhaustive, list...

Languages

C#, Java, C++, Objective C, Vivado HLS, Matlab, Simulink, Python, SML, Haskell, Lisp, Prolog

Platforms

Visual Studio, NetBeans, Eclipse, WebStorm, XCode under Windows 7, OSX, Linux and IOS

Parallelism

OpenCL, CUDA, Thrust, Threading Building Blocks, TPP, TPL, MPI, Hadoop, EC2

Web

HTML, XML, CSS, JavaScript, TypeScript, jQuery, jQuery Mobile, Node, Express, Ruby/Rails

Database Technologies

Oracle, MySQL, JDO, EJB

Career History

Agilent Labs

Project Scientist 06/2000 - 10/2013

A member of Agilent’s central research labs and technical lead on a wide range of applied research projects to support the company’s R&D divisions. The primary purpose of such projects was to identify future trends and technologies that may be of use to the company, and the development of tools and prototypes to help de-risk their adoption by the product divisions. Whilst much of this work is still commercially sensitive, a few projects have been made externally visible, and the Sample Works section describes some of these. The main languages used for these projects were C#, Java and C++.

Quality Systems & Software (QSS)

Principal Architect 04/1999 - 06/2000

  • Designed and prototyped a three-tier architecture for the company’s next generation of requirements management products.
  • Designed and implemented a COM component to allow DOORS, a requirements tool, to be accessed and scripted from external applications.

Harlequin

Software Group Manager 01/1998 - 03/1999

Led a team developing Harlequin’s implementation of the SML programming language.
  • Responsible for the management of the team, including project scheduling and man-management.
  • Acted as a software consultant and developer for the group.
  • Collaborated on the design of a CORBA IDL binding for ML.
  • Responsible for the product marketing and management of this software.

Senior Software Engineer 07/1996 - 12/1997

Part of a team developing a compiler and IDE for Dylan, a dynamic object-oriented language.
  • Developed a flow-based typist for the compiler.
  • Designed and built a colouring editor to provide feedback on compiler dispatching optimisations.
  • Developed the condition handling code for the Dylan compiler.
  • Rewrote the run-time code to improve efficiency and support threads.

The University of Edinburgh

Lecturer 08/1986 - 06/1996

  • Developed and delivered courses for undergraduates and postgraduates on a range of topics, including
    • Programming in Pascal, C, C++ and ML
    • Algorithms and data structures
    • Compiling techniques
    • Program specification languages
    • Concurrency and protocol verification
    • Programming language semantics
  • Presented courses to Industry on a number of topics including formal specification languages, concurrency theory and functional programming.
  • Served on the teaching and syllabus committees, advising on course structure and contents.
  • Co-ordinated the Department’s highly successful submission to the University Funding Council’s 1992 Research Assessment Exercise.
  • Served as a Director of Studies advising students on both academic and personal matters.
  • Seconded by the International Office to represent the University in overseas recruitment exhibitions.
  • Managed a series of SERC grants developing a distributed implementation of ML.
  • Supervised numerous undergraduate, postgraduate and group projects.

Research Associate 10/1983 - 08/1986

  • Team leader of a group developing the first compiler for the Standard ML programming language.
  • Developed software and theory to support CCS, a specification language for concurrent systems.

Scicon

Software Engineer 01/1976 - 10/1976 & 06/1979 - 10/1979

  • Seconded to EuroControl, Brussels, to work on an experimental air traffic control system.
  • Developed code for a simulation of the IKARA anti-submarine missile for the MoD.

Education

The University of Edinburgh1979 - 1983

PhD in Computer Science.
Doctoral advisor: Robin Milner.
The thesis analysed some of the theoretical and implementation difficulties associated with various message passing primitives in concurrent programming languages.

Imperial College London 1976 - 1979

BSc(Eng) in Computer Science.
First class honours.
The final year project involved the development of an operating system kernel in Prolog.


Awards and Accomplishments

Whilst at Agilent I've received more than twenty invention disclosure awards, patent applications and patents, including
  • Method of Decoding A Bit Sequence, Network Element Apparatus And PDU Specification Tool Kit (US2008256337, 2008)
  • Historical data management (US2008208888, 2008)
  • Method of optimizing routing of demands in a network (CN101035069, 2007)
  • Location determination system and method of location determination (EP1887313, 2008)
  • Data packet decoding (US2007013563, 2007)
  • Generation of data packet decoding instructions (GB2438455, 2007)
  • Monitoring traffic in a packet switched network (EP1643683, 2006)
  • Modifying an aggregate test in a network probe (GB2419255, 2006)
  • Method of generating a monitoring datagram (CN1710888, 2005)
  • Transmission of data about the use of spectrum according to the geographical position (CN1665333, 2005)
  • Method of translating computer program code, communications system and network management entity therefor (EP1548588, 2005)
  • Monitoring communications networks (US2003043755, 2003)

Speaker at the last two Agilent Technology Conferences. This conference occurs once every three years and showcases the best of technology and research being developed within the company.

Industrial member of the European Network of Excellence on High Performance and Embedded Architecture and Compilation (HiPEAC)

Part of the team that won the BCS Award for Technical Excellence for work on Standard ML.

Interests

  • Boats, both sailing and building
  • Hillwalking
  • House renovation

Dr. Kevin Mitchell

Wester Caerlee House, Innerleithen
EH44 6QY, Scotland
+44 (0)7932 724 590

kevin_mitchell@acm.org
http://kevin.mitchell.ch
PGP Public Key