Ivan Kurnosov
Personal information
Skills summary
- PHP (11 years, highly proficient)
- Frameworks: Symfony 2/3, Zend Framework; Libraries: PHPUnit, Twig, Doctrine, Propel, etc; Social services integration: Facebook, Twitter.
- .NET/C# (3 years, proficient)
- C# (console applications, ASP.NET MVC2), linq2sql, LINQ, Ninject, Nunit
-
Python (3 years, intermediate)
- as a language of choice to implement CLI tools and various linux daemons.
- Client-side web (11 years, highly proficient)
- HTML, CSS, JS (ES5 / ES2015): Reactjs, jQuery, AngularJS, ExtJS (extensive knowledge, very deep ExtJS Grid customisations), SASS/Compass, Less
- RDBMS
- PostgreSQL (5 years, proficient): designing databases, optimizing queries and schemas, stored objects (triggers, views), server configuration, replication;
- Oracle (2 years, intermediate): designing databases, working with stored objects (triggers, packages, jobs, schedulers), pl/sql;
- MySQL (8 years, highly proficient): designing databases, optimizing queries and schemas;
- MS Sql (3 years, intermediate);
- Development practices and other tools
- Unit testing and TDD in particular (using nunit/msunit/mocha/chai/phpunit, Moq/sinon, dbunit, phpunit-selenium), functional testing (using selenium grid), Design Patterns, Refactoring, Domain Driven Design;
- Mercurial as a preferred SCM (about 7 year of usage), Git (5 years), SVN;
- RabbitMQ, Vagrant, OpenVZ (Proxmox), Jenkins CI, composer, ansible, CFEngine, MongoDB, Memcached, HAProxy, etc
- OS
- Linux: Ubuntu (6 years, proficient), Gentoo (2 years).
-
Other programming languages
- Particular interest in the following languages as well: haskell, clojure, java, scala, go, rust.
Professional experience
-
Wialus Solutions Ltd (wialus.co.nz), Senior Software Developer, November 2011 - Present
-
oDesk Corp. (odesk.com), Developer, September 2010 - March 2014
- Technologies: PHP, Zend Framework, OAuth, PostgreSQL, git, apache/nginx, composer
- Integrated OAuth v1 authorization into existing RESTful API, and helped maintain and develop new API endpoints;
- Designed and implemented messaging framework used internally to deliver messages to the site visitors;
- Integrated and supported 3rd party APIs (Facebook, Twitter, Stackoverflow, Github, Linkedin, etc) into authentication flow and user profile.
-
Oriental Express Bank, Developer, August 2010 - October 2011
- Technologies: PHP, Kohana, Oracle, mercurial, kannel, apache
- Designed and implemented SMS-gate based on kannel software (through SMPP), Oracle (pl/sql), apache and PHP. The solution used load balancing between several SMPP gates to optimize throughput and cost. It was successfully handling everyday load of about dozens of thousands messages per day;
- Designed and implemented company specific issue tracking system, aimed to simplify communication between customers and IT department;
-
Rosneft (rosneft.com), Developer, August 2008 - August 2010
- Technologies: PHP, Zend Framework, .NET (ASP.NET MVC2), SQL Server, ExtJS, svn, mercurial, phpdoctrine
- Supported legacy collaboration system implemented in legacy ASP.NET. Reimplemented it using ASP.NET MVC2, ExtJS and SQL Server;
- Designed and implemented inventory management system using Zend Framework, Doctrine and SQL Server.
-
KnAAPO (knaapo.ru), Developer, August 2006 - August 2008
- Technologies: PHP, mzz, svn, SQL Server
- Reverse engineered the current inventory management system (closed source, ASP.NET and Flash) and reimplemented it using the mzz php framework and SQL Server.
Online presence