Oleg Pryadko

experienced software developer - python, web, Linux

Contact Info

Phone: 909-918-6534
Location: Vallejo, CA, USA
Website: http://olegpryadko.com
Email:

Excellent Python/ Linux software developer with 10 years of experience in OOP, Python (7 yrs), web development, and Linux servers/ workstations/ boards.
 

  • Dabbled in C, networking, electronics, and embedded development
  • Worked with various industries, including nonprofit, gaming, and vending.
  • Self-managing, fast learner, patient teacher, clear communicator.
     

Experience

Casinfo Systems & Gaming Technology Group (NV)

Senior & Solo Developer (contract, mostly remote)

Sep 2011 - PRESENT

Designed and developed:

  • A slot machine player tracking and rewards system using a Python/ PostgreSQL daemon running on a Linux server that uses MDNS, persistent sockets, and RPC to control embedded Linux boards with touch screen displays, card readers, and slot machine serial interfaces. 
    • Challenges included optimizing massive data sets, a complex state machine, synchronizing state/ data changes with remote display animations, and integration with frequently-changing external components.
  • A custom unit test framework for ORM functions that required a real database and full system initialization. 
    • Challenges included ignoring commits, synchronously running threaded and asynchronous functions, and restoring the configuration and global environment after each test.
  • A library that allowed the same functions to be used with different types of main loops (asyncio, GLib, gbulb, and legacy GTK).
  • A custom file format and parser (XML and ECMAScript) to allow non-Python developers to configure complex business logic
    • Supports unit tests, IDE syntax highlighting, and schema validation.
  • User interfaces for runtime configuration and administration of logging, timing, connections, etc....
  • User interfaces for auditing and adjusting massive PostgreSQL data sets gathered from slot machines and player sessions.
  • A GUI report generator that allowed non-developers to create custom PDF reports on a legacy database using ODF file templates and MSSQL query templates. 
  • Dozens of other python daemons, scripts, components, libraries, and integrations.

 
Refactored and improved existing code base:

  • Figured out, cleaned, and documented messy, complex code.
  • Migrated software from python 2 to python 3.
  • Maintained, created tests for, and improved an in-house, encrypted, bidirectional, persistent RPC protocol library.
  • Bridged and adapted software to use the in-house RPC protocol.
  • Added unit and functional tests.
  • Expanded packages and APIs with new features.
  • Run and communicate with legacy Perl scripts as subprocesses of the python daemon.

 
Other duties:

  • Configure and maintain Linux development servers and tools.
  • Train and support other developers.
  • Troubleshoot bugs.
  • Resolve miscommunications between colleagues.
  • Work with clients and testing labs to pass certifications.
  • Hire, train, and supervise subcontractors (just a few months)
  • Write documentation and how-to articles.
  • Graphic and web design to showcase products.
  • User interface design for touch screens and administration tools.

 
Main technologies: Python, PostgreSQL, Linux, ORM, MDNS/ Avahi, bash, Apache/ DAV

Supporting technologies: Mikrotik, ODBC, perl, C, C++, WAMP/ Crossbar, GLib, GTK+, Qt, OpenWRT, grub, ssh, PXE (network boot), VNC, Linux tools, systemd, asyncio, XML/ schemas, JSON, RPC, ECMAScript
 

Go Automation (CA)

Senior Developer (contract, mostly remote)

Sep 2016 - Mar 2017
  • Assist in implementing an animated, touch-screen vending machine customer interface on top of Python microservices in embedded Linux boards.
  • Updated a PyQT-based HMI to work with asyncio and WAMP and added support for font configuration, flexible grid layout, and other features.
  • Lead a small team of contractors in creating a Python/ Odoo custom vending machine management platform running on a Linux server.
     

Main technologies: Python, Odoo, PostgreSQL, MongoDB, WAMP/ Crossbar, Linux, RPC, ORM

Supporting technologies: ECMAScript 6, XML/ schemas, NodeJS, Qt, networking, SVN, XML/ schemas
 

Various Web Development Clients (CA)

Solo & Lead Developer (contracts, remote)

Sep 2008 - Jan 2019
  • Design and build dozens of custom, dynamic PHP/ JavaScript/ HTML5 websites for small business and e-commerce clients.
  • Provide emergency troubleshooting, custom programming, and developer training for existing websites.
  • Handle client requirements and end-user training
  • Maintain Linux/ Apache web servers.
  • Hire, train, and supervise subcontractors.
  • Release and contribute to open source projects.
     

Main technologies: PHP, MySQL, HTML, CSS, JavaScript, MODX, jQuery, ExtJS

Supporting technologies: Linux, Python, Photoshop, OpenCart, FoxyCart, various APIs (e.g. Google Drive, Vimeo, Dropbox, payment gateways, ...), git, CPanel, Apache, NGINX, Bind
 

Skills

Python, OOP/ asyncio/ threads, testing, Linux admin/ systemd/ shell, SQL/ PostgreSQL/ MySQL/ MongoDB, microservices/ WAMP/ Crossbar, RPC/ JSON/ XML, ERP/ Odoo/ Tryton, UI/ graphic/ animation design, full-stack web/ LAMP/ PHP/ HTML5/ CSS3, JavaScript, basic C/ C++/ Go/ Java, XML schemas, Markdown, SCXML, NodeJS, Photoshop/ GIMP/ Inkscape, IntelliJ/ PyCharm, Apache, NGINX, git, SVN, tar, rsync, ssh, netstat, nc, ifconfig, dig, whois, nethogs, and MANY other Linux command-line tools
 

Education

Self-Taught

2008-Present

Everything above. Currently studying electronics, automotive technology, and the Linux C API.
 

University of California, Riverside

2003-2008

Progress towards double major in Biology and Anthropology (unfinished).
 

Other Experience

Go Automation (CA)

Internship (Joshua Tree, CA)

Feb 2019 - March 2019

Work directly with the owner to gain experience in C programming, Linux networking, real-time programming, kernel/ module compiling, and other topics. This internship relied on skills gained over several years of occasional mentoring.
 
Technologies: Linux, C, Autotools, Makefiles, kernel/ modules/ drivers, Mikrotik/ RouterOS, PPP, routing, RTAI, LinuxCNC, HAL, aviation/ avionics, electronics, Python, XML/ schemas, git
 

Educational Projects

Linux DevOps/ networking (independent)

Jan 2016-Sep 2016

Hired several experienced consultants to get tutored in practical Linux DevOps and networking. Practiced using and configuring dozens of programs and tools, including:

  • networking: iptables, ip, rinetd/ xinetd/ inetd, tcpdump, Wireshark, nmap, ethtool, arp, BIND, PXE, iptables, OpenVPN, PPPT, PPPD, DNS, DHCP, Mikrotik, sipmask, what, rsync, ssh, netstat, avahi-browse, nc, ifconfig, dig, whois, nethogs, dig, sshfs, and more...
  • virtualization/ containers: KVM/ libvirt, QEMU, LXC, OpenVZ, Docker, VirtualBox, Vagrant
  • configuration management: Puppet, Ansible
  • packaging: Ubuntu/ Debian packages, FPM, stdeb, Makefiles, Checkinstall
  • Linux admin: bios, grub, network boot, live CDs, apt, dpkg, opkg, package management, consoles, file systems, raid, LVM, block devices, Alsa/ PulseAudio, lspci, lsusb, systemd, X-server, and more...
  • dev tools: gcc, gdb, nm, readelf, ldd, strace, ltrace, hexedit, lsof, ld, rr, valgrind
  • build: Jenkins
  • monitoring: Zabbix
  • servers: bind, postfix, Apache, NGINX, PGP, SPF, exim, DoveCot, BIFF, and more...
  • backups: Bacula, Amanda, duplicity, rsync, rdiff-backup, rsnapshot, and more....
     

Interviewed or worked remotely with consultants from many countries and timezones. Successfully adapted learning and communication style to consultants who did not have teaching experience, good English skills, or even good internet connections.