Home Page of Oleg Girko: Resume

Oleg Girko

Current contact information:

e-mail: ol@infoserver.lv
homepage: https://infoserver.lv/~ol/

EXPERIENCE SUMMARY

More than 30 years experience in UNIX system programming and system administration on wide variety of UNIX versions, TCP/IP network management, configuring and maintaining various network services. More than 20 years experience with Linux, Web, databases.

This experience includes:

  • creating a small ISP, writing PostgreSQL-based billing and accounting system with WWW interface, authentication services with deep database integration;
  • building Linux-based embedded system;
  • Packaging multiple software projects as RPM packages for Fedora Linux distribution;
  • Building entire Linux distributions with OBS;
  • Porting OBS to Fedora Linux distribution;
  • Porting Mer Linux distribution to x86_64 architecture;
  • C, C++, Python, Tcl/Tk, Perl programming;
  • Web programming: CGI, Python, Django framework, XML, XSL transformations, SVG.
  • building TCP/IP networks, RIP and OSPF routing protocols configuration;
  • building and maintaining mail delivery system, writing deeply customised sendmail configuration;
  • building CISCO, Linux and FreeBSD-based firewalls, network and host security, IP masquerading and NAT;
  • configuring and maintaining DNS servers and resolvers;
  • installing, configuring and maintaining Apache WWW server and Squid caching proxy;
  • porting various software between BSD and System V UNIX systems, improving free software.

EDUCATION

MS:
Applied Mathematics and Computer Science, St.Petersburg State University Applied Mathematics Faculty, September 1990 to June 1995.

OPEN SOURCE PROJECTS

blooto: https://github.com/blooto/blooto

Chess composition solver.

  • Designing and writing software for this project from scratch.

Skills: C++ programming, Git.

ldbox: https://ldbox.org/

Lightweight virtualisation environment for cross-compilation. Continuation of Scratchbox 2.

  • Improving build system.
  • Introducing more function classes for more granular rules.
  • Implementing relative pathnames and lists as selectors in rules.
  • Implementing conditional rules.
  • Implementing multiple toolchain prefixes.
  • Multiple bugfixes.

Skills: C programming, Bash programming, Lua programming, Autotools, Git.

Matrix: https://matrix.org/

Secure decentralised communication service.

  • Porting Matrix Synapse homeserver to Fedora Linux distribution, building RPM packages according to Fedora packaging guidelines.
  • Running and supporting my own Matrix homeserver.
  • Multiple bugfixes.

Skills: Python programming, RPM packaging, Open Build Service, Git.

Open Build Service (OBS): http://openbuildservice.org/

Generic system to build and distribute binary packages from sources in an automatic, consistent and reproducible way.

  • Porting OBS to Fedora Linux distribution.
  • Supporting patches to OBS specific for Mer Project and porting them to newer OBS versions.
  • Implementing support for hosting OBS frontend in a non-root path of the web server.
  • Impementing backends for LXC, Docker and systemd-nspawn container systems.
  • Multiple bugfixes.

Skills: Python programming, Perl programming, Ruby programming, RPM packaging, Open Build Service, Git.

Mer Project: http://merproject.org/

Minimal rpm-based Linux distribution intended to be used as a base for operating systems on mobile and embedded devices. Sailfish OS on Jolla phone and tablet is based on Mer.

  • Porting Mer to x86_64 (64-bit x86 PC) architecture and participating in porting to aarch64 (64-bit ARM) architecture.
  • Bugfixes.

Skills: C++ programming, RPM packaging, Git.

KDE: https://www.kde.org/

Cross-platform desktop environment and applications collection.

  • Implementing proper handling of non-Latin1 encodings in ICQ module of Kopete multi-protocol instant messenger.
  • Fixing authentication in IMAP backend of Akonadi information manager.

Skills: C++ programming, Git, Subversion, Qt.

EMPLOYMENT
Dash Core Team
May 2017 to May 2018

Remote contractor, software developer.

  • Backporting changes from Bitcoin Core to improve networking.
  • Refactoring Dash code to improve modularity and performance.
  • Packaging Dash Core for Fedora and CentOS and maintaining build of there packages in OBS.
  • Improving reproducibility of Dash builds in OBS.

Skills: C++ programming, TCP/IP networking, RPM packaging, Open Build Service.

Jolla Ltd.
Helsinki, Finland
September 2013 to July 2014

Remote Contractor.

  • Implementing custom features for Gitlab Git hosting and collaboration software:
    • default deploy keys for newly created projects,
    • default webhooks for newly created projects,
    • more correct synchronisations of users with LDAP (upstreamed),
    • automatic synchronisation of user's SSH keys with LDAP,
    • importing projects from URLs that require authentication,
    • sending more information in webhook payload,
    • hierarchical user groups.
  • Completing port of Mer Core (base for Sailfish OS that is used in Jolla Phone) to AARCH64 (64-bit ARM) architecture.
  • Porting changes specific to Jolla and Mer project infrastructure allowing to build packages for ARM architecture more efficient way to newer versions of OBS.
  • Improving Scratchbox 2 (sb2), lightweight virtualisation environment for cross-compilation:
    • more correct pathname resolution,
    • self-contained x86 Sailfish OS target,
    • ARM Sailfish OS target using self-contained x86 Sailfish OS target for accelerated tools and cross-compilation toolchain,
    • multiple bug fixes.

Skills: C programming, Python programming, Perl programming, Ruby programming, RPM packaging, Open Build Service.

University College Dublin School of Computer Science and Informatics
Dublin, Ireland
September 2010 to October 2014

PhD Student.

  • Research in the area of high performance heterogeneous distributed computing.
  • Writing static code analyser using LLVM Clang library to extract information about GridRPC calls and control flow necessary for optimising task-to-server mapping and server-to-server communication.
  • Improving SmartGridSolve for integrating with static code analysis approach to collective mapping.

Skills: C programming, C++ programming.

Amazon.com
Dublin, Ireland
July 2007 to July 2010

System Administrator.

  • Maintaining various production services and monitoring systems running in large clusters of Linux servers.
  • Responding to high serevity events, troubleshooting and resolving problems.
  • Communicating to other teams and external partners to coordinate problem solving and improvements.
  • Improving automated monitoring systems.
  • Improving operational documentation.
  • Coordinating production deployments.
  • Developing and maintaining operations tools.

Skills: Linux system administration, TCP/IP networking, Perl scripting, Shell scripting.

Accendo Technologies
Dublin, Ireland
May 2007 to June 2007

Remote contractor.

Consulting for Avocent Corporation.

  • Working on embedded Linux distribution used in Avocent MergePoint appliances, integrating it with the new version of application software.

Skills: Shell scripting, C programming, Building embedded Linux distributions.

Minestream Software Company
Dublin, Ireland
March 2007 to May 2007

Remote contractor, software designer and developer.

  • Designing and developing a C++ library for capturing TCP and UDP traffic and analysing several popular network protocols: HTTP, SMTP, IMAP4, POP3, MSN, AIM, ICQ.

Skills: C++ programming, TCP/IP networking, Linux system programming.

Google Ireland Ltd.
Dublin, Ireland
March 2006 to November 2006

System Administrator.

  • Maintaining various production services and monitoring systems running in large clusters of Linux servers.

Skills: Linux system administration, TCP/IP networking, Python scripting, Shell scripting.

Enio SIA,
Riga, Latvia
April 2005 to August 2005

System architect, development team leader.

  • Improving Sux Services (IRC services), making its database backend and IRC server frontend modular, writing PostgreSQL backend and UnrealIRCD frontend.
  • Writing services specific for IRC.LV project.
  • Writing SNMP poller and SNMP-based management system for local ISP.

Skills: C programming, C++ programming, Database client programming (Postgres), Database administration (Postgres), SNMP monitoring.

Stratum router/firewall project at iPro SIA
Riga, Latvia
October 2001 to March 2005

System architect, development team leader.

  • Designing and developing high level configuration server with command line and web frontends.
  • Porting various software needed to run router to uClibc library.
  • Designing and creating Linux mini-distribution based on uClibc, busybox and configuration server mentioned above.
  • Creating automated system for building ported software (similar by idea to FreeBSD ports collection, but different by design).

Skills: C programming, C++ programming, Linux system programming, Embedded Linux programming, Shell scripting, Web application development, Building embedded Linux distributions, TCP/IP networking.

Project for Advanced Design Team
Moscow, Russia
January 2000 to March 2000

Designer and developer.

  • Designing and developing the game server and client-server protocol for virtual casino.
  • Developing CGI-based WWW interface for virtual casino administrator and user.
  • Developing interface to credit card processing center.

Skills: C programming, Perl scripting, Web application development, Database client programming (Postgres), TCP/IP networking.

Project for Delfi Internet, ISP
Riga, Latvia
November 1999 to December 1999

System architect, designer and programmer.

  • Designing and creating the powerful and scalable mail server.
  • Patching Cyrus IMAPD to fix some bugs and support dots in usernames, multiple configurations, username aliases, quota warnings and configurable timeouts.
  • Installing and configuring Linux server with hardware RAID.
  • Configuring Sendmail based mail delivery system.
  • Writing CGI-based WWW interface for user registration and self-provisioning.

Skills: C programming, TCP/IP networking, Linux system administration, Perl scripting, Web application development.

Actor ltd., Internet Service Provider
St.Petersburg, Russia
July 1999 to January 2002

System administrator.

  • Continuing to maintain all ISP services. Not so much development, but it was allowing to work remotely and participate in another projects meanwhile (see above).

Skills: Linux system administration, TCP/IP networking, Database administration (Postgres).

Lanit-Terkom
St.Petersburg, Russia
December 1998 to March 1999

System programmer.

  • Consulting for ISP in New York City.
  • Writing CISCO NetFlow-based traffic counting system with interface to MRTG.
  • Writing MySQL-based account provisioning system with WWW interface.
  • Patching Merit RADIUS server to read authentication information directly from SQL database using generic interface to SQL server (currently only MySQL interface is provided).

Skills: C programming, Shell scripting, Perl scripting, Web application development, Database client programming (MySQL).

Actor ltd., Internet Service Provider
St.Petersburg, Russia
July 1997 to November 1998

System architect, designer, administrator.

  • Designing and creating a small ISP from scratch.
  • Installing and configuring all services necessary to run ISP.
  • Installing, configuring and maintaining FreeBSD on servers and routers.
  • Designing and writing PostgreSQL based billing system with WWW interface.
  • Writing CGI scripts on Tcl.
  • Improving pppd and qpopper to use PostgreSQL for authentication.
  • Building firewalls for Actor itself and some of organisations connected to Actor via leased lines.
  • Unix system administration.
  • Setting up, configuring and maintaining DNS, HTTP, SMTP, POP3 servers.

Skills: Linux system administration, FreeBSD system administration, C programming, Tcl scripting, Web application development, Database client programming (Posgres), Database administration (Postgres), TCP/IP networking, Building Internet firewalls.

St.Petersburg State University Peterhoff Telecommunication Centre
Peterhoff, St.Petersburg, Russia
July 1996 to November 1998

System administrator.

Peterhoff Telecommunication Centre provides IP connectivity to St.Petersburg State University's Peterhoff campus and to some other organisations located in Peterhoff.

  • Unix system administration (Solaris 2.5, FreeBSD, Linux, Ultrix).
  • Participating in design, configuring and maintaining Peterhoff campus network.
  • Configuring and maintaining network routers (FreeBSD, Linux, Cisco).
  • Configuring and maintaining DNS of some of University's departments.
  • Maintaining network and host security, applying security patches, configuring TCP wrappers and packet filters.
  • Improving sendmail configuration to support policy-based mail relaying.
  • Creating and supporting non-standard deeply customised sendmail configuration for the University's Peterhoff campus' main mail relay and some other University's relays.
  • Maintaining UUCP system and modem pool.
  • Compiling and installing various free software on Solaris 2.5, Linux and FreeBSD, creating binary software packages for these systems.

Skills: Linux system administration, FreeBSD system administration, Solaris system administration, Unix system administration, TCP/IP networking, Internet routing, Building Internet firewalls, C programming, Tcl scripting, Shell scripting, Database administration (Postgres), Database client programming (Postgres).

St.Petersburg State University Physics Institute Computing Centre
Peterhoff, St.Petersburg, Russia
December 1993 to July 1996

System administrator, programmer.

Before foundation of Peterhoff Telecommunication Centre, Physics Institute's Computing Centre acted as IP provider for St.Petersburg State University's Peterhoff campus.

  • UNIX system management (Ultrix, SunOS 4.1.3, FreeBSD, Linux).
  • Maintaining DNS, NIS, NFS, UUCP, and some other services.
  • Installing different versions of UNIX operating system on various platforms: Ultrix on VAX8250, FreeBSD and Linux on i386 and i486, SunOS 4.1.3 on SparcStation 1+ and SparcClassic.
  • Maintaining St.Petersburg University Peterhoff campus TCP/IP network, participating in it's building.
  • Creating and maintaining Physics Institute's E-mail (both via SMTP and UUCP), USENET news and WWW services.
  • Improving sendmail configuration to support advanced aliasing and masquerading.
  • Creating flexible frontend for FreeBSD slattach utility with simple Taylor UUCP - like configuration file.
  • Installing and porting various software, including INN news server, sendmail, mail and news readers (elm, pine, tin), GNU utilities, WWW servers (NCSA HTTPD, WN and Apache) etc.
  • Creating Tcl/Tk based tool for convenient editing NIS password and group files.
  • Installing and maintaining Postgres DBMS.

Skills: Linux system administration, FreeBSD system administration, Solaris system administration, TCP/IP networking, Internet routing, Building Internet firewalls, C programming, Tcl scripting, Shell scripting, Database client programming (Postgres), Database administration (Postgres).

Infopro Ltd.
St.Petersburg, Russia
October 1990 to December 1993

System Programmer.

Infopro Ltd. was one of the first Internet providers in St.Petersburg. Now this company is called PeterLink, and it is the largest Internet provider in St.Petersburg.

  • UNIX system management (UNIX System V r.3 on Besta workstation, UNIX System V r.2 on Aniral UTEC, ISC UNIX and SCO XENIX on i386).
  • Installing and maintaining mail (sendmail 5.65) and news (C-news) systems.
  • Maintaining and improving UUCP system (several contributions to Taylor UUCP project, see Taylor UUCP acknowledgement list).
  • Porting various software to Besta and UTEC workstations: GNU utilities (including GNU C compiler, GNU debugger and Emacs), screen (pseudo tty multiplexer), NcFTP, elm, tin, and many others.
  • Error recovery after disk crashes (including filesystem debugging, emergency backups and reinstalling system).
  • Creating Tcl-based utility for access to bulletin board systems and retrieving information from them.

Skills: Unix system administration, C programming, Tcl scripting, Shell scripting.

VEF Electronic Factory's Research Institute, Microelectronics department
Riga, Latvia
October 1989 to June 1990

System Operator.

  • Porting and improving various software on 4.2 BSD and 4.3 BSD UNIX on VAX-11/730, including screen, GNU C and C++ compilers, R.Jacob's WM, esh, wsh etc.
  • Improving C-shell by adding command line editing feature (works correctly even on lowercase-only terminals).
  • Porting HUNT network game and some termcap-based screen libraries from BSD to SCO XENIX and Microport UNIX System V on i386.
  • Installing 2.9 BSD UNIX and Fortran-77 compiler on PDP-11/34-compatible computer.

Skills: Unix system administration, C programming.

COMPUTER SKILLS

Roles:
System Administrator, LAN & WAN manager, System Programmer and Developer, Sun Educational Services authorised instructor.
Languages:
C, C++, Python, Tcl, Perl, Ruby, Shell, JavaScript, Algol-68, HTML, XML, XSL, SVG, SQL.
Operating Systems:
2.9 BSD, 4.2 BSD, 4.3 BSD, System V r.2, System V r.3, SCO Xenix, SCO Unix, Ultrix, SunOS, FreeBSD, Linux (on x86, Alpha, ARM, MIPS), Sun Solaris, Cisco IOS.
Networking:
TCP/IP, SNMP network management, Internet firewalls, NAT, network security, IPv6.
Subsystems and Protocols:
SMTP, NNTP, HTTP, RIP, OSPF, SNMP, DNS, NIS, NFS.
Hardware:
PDP-11, VAX-11, M680x0, x86 (32 and 64 bit), SPARC, ARM, MIPS.
Databases:
PostgreSQL, MySQL, MS SQL, Oracle

PERSONAL DETAILS

  • Languages: native Russian, fluent English
  • EU Citizen

AVAILABILITY

Now.

The hypertext version of this document is available at https://infoserver.lv/~ol/en/resume.html