The most programming experience I have from the following fields:
I am familiar with parallelization on various scales: from instruction-level microparallelism to multi-threading to many-node supercomputers.
I have a deep understanding of different processor architectures and how to make efficient code for them. I am especially close with GPUs and get acquainted with new architectures as soon as they are released and build a practical knowledge on how to squeeze the very last bits of performance out of them.
In addition to GPUs, I also keep myself up-to-date with modern CPU features. I am very familiar with key optimization techniques for CPU architectures, such as multi-threading, cache-awareness, vectorization (SSE and AVX: manual and compiler-aided), hazard avoidance and instruction analysis.
Current proficiency in programming languages:
C C++ Graphics shaders CUDA, OpenCL |
excellent |
Assembly (x86, GPUs) Python Perl Java Unix shell |
very good |
Fortran PHP Object pascal (Delphi) |
adequate |
Visual basic Prolog |
basics |
I have been especially interested in programming for Unix platforms. I'm familiar with key development tools for Unices, such as make, automake, autoconf (incl. m4 macros), libtool, version control systems (CVS, SVN, git), compilers (GCC, icc, PGI), profilers (VTune, gprof, OProfile), debuggers, scripting, and so on.
In addition to Unixes, I've been programming professionally for Windows, OSX, and XBox One as well.
I am broadly familiar with compiler technology and software development tools in general, so I'm able to pick up new environments quickly.