Thank you for visiting my GitHub profile. I enjoy solving problems, coding, automating tasks, fixing stuff, and contributing to open-source projects. I like to explore new territories that is why over the years I tapped into diverse areas stretching over low-level machine instructions coding on Z80, numerical methods in mathematical physics, OpenGL, computer networking, applied cryptography & privacy, COM & CORBA, GIS, and databases.
- R
- I fell in love with R working as a Graduate Research Assistant and I used it for a number of tasks ranging from simple tests to data visualization using both lattice and, later, ggplot2 packages. I wrote a few small packages TMDL, CSDF, swat2r, and a number of handy stand-alone functions as well as scripts for QGIS plugin Processing Tools now known as The Toolbox. Also I contributed bug fixes and enhancements to PL/R, a PostgreSQL procedural language extension to run R code server-side. The most prominent bug was the lack of wrapping R_ParseVector in R_TopLevelExec that caused PostgreSQL backend crash if there were benign issues like bad syntax in user R code.
- Python
- I got to know Python through Plone CMS/Zope back in 2004. I extensively used Python for geoprocessing and ArcGIS scripting. I wrote a couple of QGIS plugins using Python & QT: a helper to set up data for PIHM and a brute-force approach to extract stage-area curves along with discretized polygons from Digital Elevation Models given a starting set of points of interest. I also used Python while reverse-engineering communication protocol for a plethora of inexpensive GPS-enabled sport watches.
- Ruby (RoR)
- I used Ruby on Rails and PostgreSQL along with a number of extensions to set up a work group portal to manage assorted data sets pertinent to agricultural research and heavy leaning on loggers data with a twist of versioning. While working on that, I made contributions to the following gems tabulatr2, torque-postgresql.
- Java
- I contributed to the following projects: some UI enhancements to Zandy (Zotero client for Android), FXDesktopSearch (MS Office keywords tokeniziation with Apache Solr and multivalued faceted search/drill down), Time4J typo, bug fixes to Fiji/ImageJ plugins: Trainable Weka Segmentation (failure to load classifier), TrakEM2 (final render and broken mesh topology) . Also I used Apache Tika to write custom metadata extraction for RoR-based data management portal.
- C
- Notable contributions: msmtp, sqlite_fdw, PL/R, libxml (incomplete buffer flush), udisks (EBR parsing bug in Ubuntu 14.04), FreeRDP (broken audio output redirect), Rockbox firmware (Monkey Audio decoding bug).
- C++
- I started with Borland Turbo C++ in ‘99 and later C++ Builder. In ‘01, I undertook a solo project for a local PC gaming lounge that used Windows 98, enabling them to enforce customer compliance with paid playtime and to prevent overstaying. That involved kernel-mode input filter & hardened client shell to turn gaming station into a kiosk, as well as custom VCL components and UDP-based protocol. I used C++ as well as Borland-flavoured CORBA extensively at my university for numerical methods. More recently, I improved integration into I2P network for libtorrent & i2pd.
Seeking opportunities in (embedded) software or data engineering, testing & troubleshooting, or DevOps to drive innovation and enhance software quality. Committed to continuous learning and professional growth.
- Clean, readable, and maintainable code is just as important as functionality.
- Continuous learning fuels growth—whether through new programming languages, frameworks, or problem-solving challenges.
- Collaboration and knowledge-sharing are essential for building better software and stronger teams.
I do not maintain social media profiles. Please, use e-mail to reach me.
- In-car WiFi network troubleshooting or how to not configure computer network, fail QA, and infuriate customers.