Expertise

Table of Contents

  1. General, Domains & Overview
  2. Programming Languages
  3. IDEs
  4. Past experience with Libraries, Frameworks and Specific Technologies

General, Domains & Overview

  • Computer Vision, Machine Learning, Data Science, Artificial Intelligence (AI).
  • Digital Image & video analytics and processing.
  • Research and Development (R&D).
  • Software engineering, development, architecture.
  • Lecturing, teaching and conducting training.
  • Applications of technology, Machine Learning, AI, and Computer Vision to different domains such as business and industrial problems, human welfare, and software systems.
  • Leading and managing teams of researchers, software engineers, etc.
  • Problem solving, planning, strategizing, critical analysis & thinking, effective presentation, communication, management and leadership.
  • Professional writing and publication of journal and conference papers, documents and books.

Programming languages

  • C (advanced level)
  • C++ (advanced level)
  • Python (advanced level)
  • Java (advanced level)
  • Cython (intermediate level)
  • SQL (intermediate level)
  • LaTeX (intermediate level)
  • C# (basic working level)
  • Prolog (basic working level)
  • HTML + CSS (basic working level)
  • Javascript (basic familiarity)
  • Julia (beginner level)
  • Go (beginner level)
  • PHP (no longer used)
  • MATLAB (no longer used)

IDEs

Past experience with Libraries, Frameworks and Specific Technologies

  • OpenCV (C++, Python, Java)
  • Qt (C++)
  • PyQt, Qt for Python or PySide (Python)
  • Numpy, Scipy, Matplotlib, scikit-learn, scikit-image, Pillow
  • SQLAlchemy Object-relational mapping (ORM)
  • Using Cython and pybind11 to (1) make high performance Python extensions in C/C++ to be called from Python and (2) embed Python in C/C++.
  • Using Simplified Wrapper and Interface Generator (Swig) to call C/C++ libraries from different programming languages.
  • Python/C API.
  • Making high-performance optimized C/C++ libraries and wrapping them in higher-level languages such as Python to create SDKs.
  • Making C/C++ shared libraries.
  • Making standalone packages with either pure C/C++, or mixed C/C++ and Python with all the dependencies inside the package/folder for easy deployment.
  • Wrapping C++ libraries in C interface and calling from LuaJIT using its very fast built-in FFI.
  • Wrapping C++ code and libraries in pure C public interface.
  • Making pure C/C++ Computer Vision and Machine Learning SDKs to be called from other programming languages.
  • Java Native Interface (JNI) and interfacing C/C++ code and libraries with Java
  • Python CFFI, ctypes, numba, multithreading and multi-processing.
  • Dlib
  • C# P/Invoke
  • Microsoft Azure Portal
  • Microsoft Azure Cloud Computing platform Virtual Machines and making AI Servers and AI Systems using REST API
  • Microsoft Azure SQL Server and database
  • Flask (Python) for web services and APIs
  • Microsoft Office: Word, PowerPoint and Excel
  • Cling: the C/C++ intepreter for rapid prototyping testing of C/C++ dlls
  • JSON file format, and serialization and deserialization
  • Web applications (more focused on back-end REST API)
  • Eigen C++ matrix library
  • Armadillo C++ matrix library
  • VLFeat
  • Piotr’s Image & Video Matlab Toolbox
  • Matlab Software by Mark Schmidt and Students including various optimization functions such as LBFGS and Graphical models.
  • Embedding MATLAB Engine in C/C++.
  • LIBLINEAR — A Library for Large Linear Classification
  • LIBSVM — A Library for Support Vector Machines
  • Sparse Bayesian Models (and the RVM) by Mark Tipping
  • FLANN: library for performing fast approximate nearest neighbor searches in high dimensional spaces
  • Boost C++
  • MySQL
  • SQLite
  • Weka (Java)
  • JSAT (Java)
  • Apache Commons Mathematics Library
  • Apache Commons Lang
  • guava: Google Core Libraries for Java
  • MALLET (Java) for topic modelling and graphical models
  • JQuery
  • Bootstrap CSS
  • Oracle VM VirtualBox
  • CamStudio for recording and making technical, scientific, presentation and communication demo videos
  • CMake
  • FileZilla client and FileZilla server
  • Postman for testing web APIs
  • MATLAB Mex and interfacing C/C++ code and libraries with MATLAB
  • Jabref: managing bibtex (.bib) databases.
  • MikTex
  • Anaconda (Python distribution)
  • FFmpeg
  • Video conferencing: Skype, Zoom
  • www.projectmanager.com
  • Trello
  • Freshdesk
  • G Suite – Gmail, Docs, Drive, Calendar and More for Business
  • Google chat for business communications
  • Evernote
  • TeamViewer for using and managing dozens of PCs, small-form computers for embedded systems, etc.
  • Dynamic generation HTML code from Python or Java as part of an AI back-end system to produce scientific and commercial analytics reports.
  • Doxygen automatic documentation generation for C/C++
  • Using Jupyter Notebook, Python and HTML with Python code, explanations, HTML code, videos, images, plots, etc. to create R&D documentations and tutorials for software engineering teams, and people who may not be familiar with Computer Vision and Machine Learning.
  • Train custom deep networks with tensorflow/keras, Dlib C++ library for object detection, face detection, face recognition, etc.
  • Powerful and efficient Computer Vision Annotation Tool (CVAT)
  • Deploying deep networks trained in Python in C++, by using C++ libraries, writing custom C++ code for neural network forward propagation, etc.