I studied undergraduate mathematics at Merton College, Oxford in 1996-2000. My focus was primarily on applied maths and physics and I graduated with a first class Honours Master of Mathematics degree.

In 2000-2001 I was a graduate student at University of British Columbia in Vancouver, Canada. My topic of research was "Annular Displacement Flow of non-Newtonian Fluids" in application to primary oil well cementing process sponsored by Schlumberger. I completed my thesis in January 2002 and was awarded Master of Science degree. Subsequently I co-authored four papers on the results of this work published in major scientific journals.

In 2002 I joined Schlumberger Riboud Product Center near Paris, France as a Development Engineer to implement the results of my research into the company's products. In 2003 I moved back to the UK, continuing working with Schlumberger as an independent consultant. I have gradually expanded the consultancy establishing the company Oxford Numerics Ltd in 2011 to support a range of oil and gas well services development projects.

In parallel, since 2005 I have been the Technical Director and a co-founder of Holistic City Ltd - a company specializing in software for city design, masterplanning and liveability analysis.


Core skills

  • Project management. I have managed a variety of commercial software, engineering prototype and research projects in a range of fields with the primary areas of Oil and Gas Well Services and Urban Planning. I have taken these projects from the early concept stage through requirement, specification and prototyping to development, commercialisation and support.

    To accomplish this, I have been putting together and leading teams of 2-5 people with the skills necessary for successful implementation. Where required, these were integrated with the teams in the clients’ organizations augmenting any capability or resource gaps.

    Whilst always keeping the goal of rapid development firmly in mind, I follow a robust project management approach. Typically this entails a functional requirements stage with detailed time estimation and assessment of risks – with prototype development used to quantify and reduce those risks. The main development is staged to reduce implementation risks and to provide clearly-defined deliverables to the client at the end of each stage. The completion of the development usually consists of user acceptance testing and training, comprehensive user and development documentation and a suggested plan for support and further development.

  • Development management. Depending on the project, I follow a conventional Waterfall or Agile development approach with Scrum/Kanban frameworks. Where suitable or required I have also adopted the Test Driven Development processes.

  • Development tools. The development tools and the programming languages are chosen on the per-project basis to accomplish the objective and to best address the client requirements. In the projects so far, I have used: 
    • C++/C. My programming language of choice for computationally-intensive tasks such as numerical simulations. I have 15 years of continuous experience of writing object oriented, high performance simulation code.
    • Intel TBB/Open MP. Used in conjunction with C++ or Fortran code and Intel performance profiling tools to parallelize computations making full use of the CPU.
    • C# .NET. I was one of the early adopters of C# with over 15 years of continuous use having previously used Visual Basic for rapid UI prototyping. During that time I have used C# for the majority of the standalone UI components we have delivered, 2D and 3D graphing, reporting and drawing.
    • DirectX. The core graphics technology used by CityCAD for 3D rendering as well as by the 3D well visualisation software we developed. Use of shaders, multiple rendering surfaces, performance-oriented visualisation of complex geometries and animation.
    • Fortran, Matlab and Python. Significant amount of code we work with especially written in the academic circles is supplied in these languages. I have a good practical knowledge of these having worked with them on multiple projects.
    • HTML, PHP, Java. Several of the solutions I have delivered had a significant online component – or were entirely an online application. For these, I have used HTML 5 supported with CSS and Javascript for the frontend. For the server side components I have used PHP, Java (including GWT) and C# ASP.
    • MS SQL and My SQL. I have set up and ran SQL databases for online and standalone tools.
    • Compression and encryption. Use of off the shelf and custom designed data compression and encryption methods for secure and efficient data storage.
    • Server infrastructure. The online solutions we have implemented were typically delivered on Azure Virtual Machines and for less demanding cases - shared hosting. I have a fair amount of experience in setting up and running a Microsoft IIS or an Apache web server – with either Azure cloud service, one set up using a dedicated provider or run by our clients.
    • Source control. We use TFS, Git and SVN hosted locally, remotely on the cloud or by the client.
    • Issue tracking. We use of the TFS or Atlassian stack for issue tracking, integrated with source control and continuous integration.
  • Mathematical modelling. As with the development tools, the mathematical approach is picked to suit the project at hand. Some of the examples of the mathematical modelling I used in my projects:
    • Fluid mechanics - 1D. 1D modelling of compressible dynamic fluid flows using finite volume discretisation for a compressible, temperature-dependent hydraulics model for non-Newtonian fluids. Static models for compressible hydrostatic fluid balance. 
    • Fluid mechanics - 2D. 2D flow of non-Newtonian fluids in an annular geometry. Iterative solution of Poisson equation, Flux-Corrected Transport scheme for time advance. 
    • Solid mechanics. Analysis of stress and material failure in multi-layer solids subject to pressure and temperature variations.
    • Temperature simulation. Time-dependent simulation of temperature in solids and liquids using Finite Element method with heat sources, state changes and fluid advection. 
    • Variation analysis. Sensitivity calculations, optimisation of multi-parameter non-linear functions using simplex and projection-correction methods.  
    • Geometry optimisation. Irregular domain meshing, packing algorithms, optimised geometry mesh creation.
  • Languages. I am bilingual in English and Russian. I have a working knowledge of German having been a pupil at Kardinal-von-Galen-Schule in Mettingen in 1994. My Greek and French are rather basic.