Pavel Shevaev

Senior Software Developer/Generalist Programmer
9+ years of programming experience, including 4+ years of gamedev programming experience on MMO titles

Skills

  • Proficient in C/C++, PHP
  • Good in Obj-C, Lua, Javasript, AS3, Python, Ruby, Perl, bash, HTML, CSS
  • Basic knowledge of Erlang, Lisp, Java, Assembler(x86 mainly)
  • Basic knowledge of PPU/SPU programming(using PS3 and Other OS)
  • Rich experience of application development using OOP practices, design patterns, refactoring, TDD and continuous integration. However at the moment I'm rather drawn towards simpler less abstract data oriented designs.
  • GNU/Linux shell tools advocate(vim, gdb, find, sed, grep, awk, etc)
  • Remote application deployment skills(automatically on multiple Linux servers)
  • Strong SCM experience(both distributed and centralized): Git, Mercurial, Subversion, CVS
  • Intermediate knowledge of MySQL(Percona) profiling and optimization
  • Basic knowledge of Linux kernel
  • Professional remote administration skills of Linux servers(mostly Gentoo and Debian based)

Job Experience

2002.10 - current, BIT(Bureau Of Information Technologies, http://bit-creative.com), Penza, Russia
  • 2011.09 - current, Position: Senior server/client/tools programmer on a new title for iOS/Android.

  • 2010.09 - 2011.09, Position: Senior server/client/tools programmer on social MMO game "Adventure Island". "Adventure Island" is available in 6 social networks under different names: Facebook(The Island: Castaway), StudyVZ(Die Insel der Abenteuer), NK(Wyspa Przygód), MoiMir(Остров Приключений), Odnoklassniki(Остров Приключений), Vkontakte(Остров Приключений). The game uses the Flash technology for the client and a PHP based server. Responsibilities:
    • client/server core architecture(more details on request)
    • client/server gameplay programming(more details on request)
    • created cross-platform command line based application build pipeline(both server and client)
    • created portable convenience wrapper fcshd around fcsh for faster incremental Flex builds
    • created fla2swf command line utility for publishing .fla files into .swf in a batch mode
    • created flexible meta description of the networking binary protocol with code auto generation for 2 targets: AS3, PHP
    • created incremental data migration tools for MySQL backend
    • created scriptable tools for project deployment onto several servers at once
    • created Puppet based scripts for quick servers bootstrap
  • 2007.08 - 2010.09, Position: Senior server/tools and partially client programmer on MMO game "Zveriki"("Pet-a-pet"). "Zveriki" is a browser based tamagotchi alike 3D game published by "Akella"(http://www.akella.com), the demo video is available on the promo site(http://promo.zveriki.com). "Zveriki" was available in 3 social networks: Odnoklassniki, Facebook, MoiMir and on its own site(http://zveriki.com). "Zveriki" uses Adobe Shockwave plugin as a client and a Linux based realtime server(s) written in C++. Responsibilities:
    • role of a team lead supervising 6 programmers
    • implemented architecture of almost all core components of the multithreaded C++ server(using STL, Boost, Intel TBB)
    • created shell based server build pipeline(using CMake and custom PHP scripts)
    • set up infrastructure for unit tests, all critical server components were developed using TDD practices
    • created flexible meta description of the networking binary protocol with code auto generation for 3 targets: C++, JavaScript, PHP
    • implemented server world persistence using MySQL as a backend
    • created incremental data migration tools for MySQL backend
    • programming and optimization of AI core logic using Behavior Trees approach
    • created Lua macros for convenient representation of the AI Behavior Tree
    • maintained Lua bindings for server API
    • created server low level utilities: manual profiling, logs subsystem, remote console
    • major server performance and memory consumption optimizations
    • server production seg.faults analysis using core dumps and further bug fixing
    • server runtime monitoring using Ganglia
    • created http based interface for QA team members allowing to build and bootstrap the server
    • created shell based client automation and build pipeline(using my own dctl automation tool and custom PHP scripts)
    • initial architecture of the client
    • set up "push button" application deployment infrastructure to all remote targets(both stage and production)
    • remote administration of all game servers(environment bootstrap, database setup, mail, logs, kernel tuning, services monitoring, runtime stats, etc)
    • interviewing the job candidates
  • 2002.10 - 2007.08, Position: Senior web developer, participated in tens of web projects of varying complexity built on PHP framework "Limb". Responsibilities:
2002.01 - 2002.10, Capvidia(http://capvidia.be), Belgium, Position: Web developer, Responsibilites:
  • Remote development and maintenance of the corporate web site.
2001.02 - 2002.01, Algorithm Service(http://www.algo-s.ru), Penza, Russia, Position: 1C:Enterprise programmer, Responsibilities:
  • Small business automation programmer using 1C:Enterprise framework

Education

  • 1998.09 - 2003.09 - M.S., Computer Science and Mathematics, Penza State University. Graduated with honors. Master thesis subject: Design patterns of web based applications
  • 2003.09 - 2006.09 - P.G., Penza State University.

Publications

  • "Setting up Build=>Package=>Deploy application development cycle", {PHP}Inside magazine, May, 2006
  • "Testing the untestable", {PHP}Inside magazine, May, 2005
  • "Storing tree structures in relational databases", collection of annual scientific papers published by Penza State University, 2004

Personal achievements

  • Former lead developer of the "Limb" an Open Source Web Application Framework(http://limb-project.com). In 2004 a Limb based application took the third place in ZendContest held by Zend(zend.com), a contest devoted to practical usage of the new version of PHP.
  • One of the founders of the AgileDev project(http://agiledev.ru), a Russian speaking community devoted to usage of agile development techniques.

Conferences

  • "Starting game development" speaker at Secon, Penza, 2008
  • "Aspect oriented programming in PHP", speaker at Secon, Penza, 2007
  • "Aspect oriented programming in PHP", speaker at PHPConf, Moscow, 2007
  • "Setting up Build->Package->Deploy application development cycle", speaker at PHPConf, Moscow, 2006
  • TDD masterclass(2.5 days) mentor, Moscow, 2007
  • TDD masterclass(2.5 days) mentor, PHPConf, Moscow, 2006
  • "Testing the untestable", speaker at PHPConf , Kiev, 2005

Spoken languages

  • Russian(native)
  • English

Contacts

Last update: 01 Oct 2011