Igor Mikhalev
Team Lead Software Developer
Address: Horsham, UK
👋 Hello
I am software engineer with over 12 years in commercial software development in large production projects. I have experience in designing and developing robust and efficient software solutions for HPC and Machine Learning using different programming languages and technologies. With strong interpersonal and analytical skills. Enthusiastic about tech and modern world.
⚗️ Professional experience
2016 - Present
Team Lead Software Developer, CGG, UK
40/60 people management, coding
Leading a team of 5 developers with various experience and skills. Actively collaborate with developers, researchers and users from different departments. Consulting various development projects:
  • Facilitated collaboration between different teams from different centres in 5 global projects.
  • Optimized hiring process making it easier and faster for interviewers. Hire about 15 people a year.
  • Optimized onboarding time for new hires in my team by developing and implementing a new program (2 weeks instead of 2 months).
Designed and developed common Machine Learning platform for production environment (Python, PyTorch/TensorFlow, gRPC, CI/CD, Docker, Kubernetes):
  • Integrated with various components of the larger processing system (big vision and QC tools, batch modular system, web tools).
  • Adopted by developers and users in 4 major centres.
  • Used in over 15 client’s projects as part of a workflow.
  • Integrated with two flavours of job scheduler (in-house and Kubernetes)
Optimized runtime in 10 algorithmic modules (C++, HPC, CUDA, OMP):
  • Achieved 10-40x speedup factor.
  • Used as a default solution in all main signal processing workflows.
2011 - 2016
Senior Software Developer, CGG, UK
My role at this time was mainly related to the support and development of the various seismic processing algorithms that use GPU (GPGPU, CUDA, CUBLAS, Thrust, FFT, MKL, BLAS):
  • Acoustic wavefield propagation.
  • Conjugate gradient inversion for de-noising.
  • Filtering and convolution.
I worked with GPGPU a lot and as a result I wrote a training material for GPU code porting. I presented it to different teams in different centres.
Developed several Java GUI tools for internal use in a programming team.
Nominated for internal company’s annual award “Above and Beyond” in 2014.
2008 - 2011
Software Developer, CGG, UK
Developed and supported a group of batch modules and tools for I/O part in the seismic processing system for different seismic formats. Supported old legacy С code of an application for transcription project (Renovation and refactoring of over 50k lines of code).
2006 - 2008
Software Developer, Geoleader, Tyumen, Russia
Analysed and improved several batch modules in Fortran/C.
🎓 Education
2006
M.S. degree in Geophysics, Tyumen State Oil and Gas University, Russia
2012 - 2020
Various courses on Coursera, Udacity and other online platforms: Machine Learning, GPU computing, Software Development and People Management.
💪 Areas of Experience
  • Software Development and design
  • Machine Learning
  • HPC
  • Project Management
  • People Management
💻 DEV
  • Python (Backend, ML, Flask/Django, scripting)
  • C/C++ (HPC, CUDA/OpenCL, MPI, OMP/Threading)
  • JS/HTML/CSS (Frontend)
  • gRPC/REST
  • Java (Swing apps)
🛠️ OPS
  • Linux (Debian, Ubuntu)
  • Docker
  • Kubernetes
  • CI/CD (Gitlab, Jenkins)
🤖 MACHINE LEARNING
  • PyTorch
  • TensorFlow
🔍 MONITORING
  • Prometheus
  • Grafana
  • ELK
☁️ Cloud
  • Azure
  • AWS
📚 Databases
  • MySQL
  • Postgres
  • MongoDB
  • InfluxDB
🧰 OTHER
  • DDT, gdb
  • Intel VTune, NVVP
🤓 Learning
  • Go
  • Rust
  • Solidity