Last modified January 2023. Mikhail Teterin - Résumé Contact Information: Mikhail Teterin Email: resume@virtual-estates.com URL: http://FreeBSD.org/~mi/resume/ Phone: 617-413-6180 Professional Objective: A DevOps or Architect Position Software: Programming: Tcl/Tk/DP, C/C++, PHP, Python, Java, JavaScript, SQL, sh and csh, OpenMP, AMD64 Assembler (gas). Software Packages: Ansible, Bloomberg Server API, CVS and Perforce, Apache (configuring, modules) and Squid, MediaWiki, PHPBB, Distributed Python (dispy), Drupal, Puppet, PVM and MPI, sendmail and libmilter, NIS/YP, Kerberos, bind, ssh/sshd, Kerberos/Active Directory, MySQL, PostgreSQL, Rational/IBM Purify and Quantify, LSF/Platform, Varnish. Murex: cache, RTBS, load-balancing, macro-recording, database manipulation, performance and stability debugging. Operating Systems: FreeBSD(project member), Solaris, any other Unix and Linux. Private networks: Secure virtual networks, tunneling, wireless networking. Also well familiar with: Amazon Web Services (AWS), JIRA and Confluence. Employment History: Murex Architect BNY Mellon December 2017-current Achievements: * Automated creation/updating of Murex installations using Ansible * Designed and developed a customized system for parallelization of computations accross multiple computers (C++, Python) * Designed and implemented (in Python) a daemon forwarding Murex' journal files to Splunk * Converted Murex-services to run under systemd * Ported legacy C++ code to newer Linux to ensure warnings-free builds * Advised colleagues on best practices of communicating with Murex services, including import/export of data Senior DevOps Engineer Refinery29 June 2017-December2017 Achievements: * Ensured compliance of the company's logging practices with European privacy regulations (GDPR) - Ansible, Logstash, Elastic * Designed and implemented rolling package upgrades for production servers (Ansible, Jenkins) Senior DevOps Engineer Humedica (Optum) March 2016-March 2017 Integration of hardware, virtual machines, and applications, as well as assisting in software-development process and monitoring (Linux). Achievements: * Automated and otherwise improved management of Atlassian applications (Jira, Confluence, FishEye/Crucible, Bamboo). * Implemented utility-scripts for internal tasks, such as generation of SSL-requests, etc. * Designed network-wide implementation of Sensu monitoring system. * Advised developers of internal tools on best practices. Senior Infrastructure Engineer Time, Inc. August 2009-August 2015 Researching, designing, and implementing means of running the company's front- and back-end web-servers (Linux and Solaris). Achievements: * Designed and implemented (in C) a command-line utility for flushing Akamai's cache of the company's content. * Researched and implemented (in C) a fast algorithm for checking, whether a given string contains one of the multitude of substrings. * Employed the above string-matching algorithm in a custom Apache-module to quickly detect mobile-devices. * Upgraded the company's FTP-server, adding the WebDAV functionality. Added sorting functionality to Apache's mod_ftp. * Added custom function (in Ruby) to Puppet to help prevent multiple cron-jobs from firing at the same time. * Developed (in C) a Varnish module to support Akamai's G2O authentication protocol. * Created scaled Drupal-installations for some of the company's magazine titles. * Fixed the Sybase back-end of Apache's apr-dbd. * Implemented (in C) a plugin for MySQL to enable user-authentication against LDAP-servers * Implemented (in Java) a custom plugin for corporate JIRA to auto-update certain fields based on business-rules * Implemented (in PHP) custom scripts for migrating a variety of other issue-trackers into JIRA * Customization (in Groovy) of Jenkins-jobs to dynamically populate menus for software developers * Implemented (in Ruby, Python, and sh) several customized Icinga monitors (i.e. GlusterFS) * Minor fixes for GlusterFS to help monitoring -- and packaging GlusterFS RPMs for internal use * Migrated various services to AWS * Implemented backups for all of the company's AWS Virtual Machines (EC2) onto S3 storage (using Amanda) * Implemented JSON-parser for TCL in C (YACC) -- open source Technical Murex consultant Millennium Partners (MLP) August 2007-January 2009 Managing the technical side of running Murex production, QA, and development environments. Designing, implementing, and overseeing implementation of scripts and utilities to interface with Murex, Operations Warehouse, and various market-data suppliers. Investigating and debugging performance and stability problems in Murex application. Providing general Unix-expertise. Achievements: * Re-wrote Murex processing script-running utility to provide clear reporting of errors (sh). * Greatly increased the processing throughput of the installation by balancing the production's load across multiple servers. * Wrote a program to manipulate prices and other data in Murex cache-pages based on the time of day, the securities' markets and other parameters (Tcl). * Implemented periodic pricing of a variety of bonds against Bloomberg service (Java). * Implemented periodic processing of CDS-curves against Bloomberg service (Java). * Oversaw and helped facilitate the upgrade of the firm's Murex installation to a new version v3.1.13 (C). * Helped design and implement a plugin to notify external software of price-updates arriving to Murex' RTBS (JavaScript, .net). * Implemented processing of SuperDerivatives data and loading it into Murex at market closings (sh, Java, XML). * Designed and implemented a web-based system for collecting sign-offs from various departments before commencing the End-of-Day procedure (Tcl for sending out notices, PHP for processing sign-off "clicks"). * Automated and reorganized the End-of-Day workflow to perform independent jobs in parallel and without human interaction. Murex enhancement and upgrade (consultant) Metlife March 2007-August 2007 Assisting with Murex upgrade. Devising new hardware configuration to allow better hardware utilization and ease future expansion and scaling (sh, Java, Tcl, C). Performance and Stability Engineer, sysadmin Murex North America 2002-December 2006 Responsible for troubleshooting and optimizing the company's application installations for a variety of customers and their environments on Solaris, Linux, AIX; as well as the application's interactions with the Sybase back-end (C, Java, Purify, Quantify, XML). Achievements: * Analyzed and solved complex customer-specific network and operating system problems. * Designed, developed, and built a centralized backup system for the Company's many Sybase databases; this consisted of Sybase backup-plugin, which allowed DUMPing to a central fast-CPU machine, where assembler-optimized zlib compresses the data for long-term storage, and a TCL-program to backup all changed databases from all known servers (C, Tcl/Tk/TclX). * Participated in the design and implementation of the Python plug-in for the Company's application (C, Python). * Conducted a comprehensive study comparing the company's own proprietary approach to parallelization with the industry standard PVM (C/C++, PVM). * Upgraded the company's FTP server to offer Secure FTP and WebDAV (over SSL) to allow the customers to upload all kinds of data without resorting to shipping the sensitive materials on tapes or other media. This required modifying an existing Apache module for painless access control based on SSL-certificates. * Trained and mentored customers' personnel in efficient deployment, maintenance, and monitoring of the Company's application. * Configured Solaris, Linux, and FreeBSD servers to act as Kerberos-clients of the existing Active Directory servers. Software Engineer, sysadmin (consultant) Private Labs, Inc. (another unfortunate Internet start-up) 2000-2002 The company initially intended to print the digital photos, mainly those uploaded over the Internet by the users of various digital cameras. The users would be able to edit the pictures, share the albums with others, etc. Later it switched to general purpose on-the-fly image generation and processing. Achievements: * As a system administrator planned and set up the start-up's network, e-mail, web, backup, and domain name services. * designed and set up the "single login" on the network, based on NIS and amd (automounter). * As a software engineer designed the redundant and self-recovering storage system for the users' photos. The system consisted of a fleet of the "off the shelf" PCs running FreeBSD, with each file being stored on two different machines -- storage servers. * Designed and developed the "Uploader" part of the system -- based on TclHTTPD -- which would handle the files as they are uploaded and push them to a randomly picked pair of the storage servers. * Participated in design and implementation of the image processing core. * Designed and participated in the implementation of the general purpose on-the-fly image processing server (Apache, Squid, mod_perl; C, Perl). Software Engineer, sysadmin (consultant) Cisco Systems, Inc. January 1999-January 2000 Development of Tcl/Tk scripts for automatic and testing of the new Cisco hardware using Cisco's proprietary Tcl extensions and drivers on FreeBSD (C, Tcl). System administration, including OS (FreeBSD) installations on a number of testbeds; configuring a cluster with server and a fleet of such testbeds using NFS, NIS, amd; setting up backups (using Amanda) Achievements: * Configured the fleet of previously standalone FreeBSD-based testbeds into a cluster using NFS, NIS, amd (sh). * Set up backups for the testbeds (using Amanda). * Simplified deployment of new versions of the in-house software to avoid complete reinstall of the Operating System (sh). * Instituted user accounts on the FreeBSD-based hardware testbeds to simplify file-transfers and other mundane tasks (sh, Unix administration). * Designed and implemented scripts for automated hardware testing to greatly reduce the amount of manual testing and increase test coverage. In addition to controlling the hardware under test, the scripts also controlled third-party hardware through serial port(s) to simulate phone calls and other signals. Software Engineer, sysadmin (consultant) Video Collage, Inc. November 1995-January 1999 Tcl/Tk/Tcl-DP programming for different platforms: Irix, FreeBSD, WinNT Custom extensions to Tcl; Software design, implementation, porting and maintaining; maintaining Concurrent Version System (CVS) repositories for a number of client's software projects design and implementation of SoftWish - a Tcl/Tk plug-in for SOFTIMAGE|3D Unix systems administration (FreeBSD, Irix) Testing/Benchmarking Engineer (consultant) NEC Technologies, Inc. June 1995-November 1995 OS fine-tuning to achieve maximum performance of multi- and single-processor machines running Solaris and NT (on MIPS and x86) Development of cross-platform benchmarking/demonstration suite in Tcl/Tk/Tcl-DP on NT (MIPS, Alpha, PPC, and x86), Solaris, and SGI machines. The suit was also used by Digital Equipment during the Comdex '95 Performance testing of NEC MIPS machines (running NT) against a variety of NT and UNIX based competitors Earlier experience (1987-1995) available upon request 1987-1994 Education: MS in Computer Science, August 1998 UMass Boston BS (equivalent) in Computer Science/Applied Math, June 1992 Kyiv Polytechnic Institute (Ukraine) Prize-winning places in city and other Olympiads in computer programming and mathematics during high school years at the Kyiv's Math/Physics High School #145 Interests: * Member of FreeBSD Ports Team. I have personally created and/or currently maintain several dozens of FreeBSD ports of various software. I also routinely submit patches for the software I use to its authors and/or its FreeBSD ports maintainers. * Other programming. SKEM is the State KEeping Milter I wrote to remember hosts, which tried to send spam so as to deny new e-mails from them for several hours (C). — Sybpipe - a plugin for Sybase's backup server, that allows the dumps to be written to/read from stdin/stdout of a command-line or a host:port combination (C). — Customizing a private MediaWiki installation for distributed editing of a book (PHP). * Recreation. So long as it does not adversely affect the earlier listed interests, I find travel, horseback riding, and diving to be very enjoyable Copyright © 2001-2023 by Mikhail Teterin. Please, no Internet redistribution of the content. Link (URL), paper, or fax redistribution encouraged