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. 
- 
            Implementing custom features for
            Gitlab
            Git hosting and collaboration software:
            
- 
            
              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. 
 
- 
            Dash Core Team
          
- 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
