Experience
Software Architect and Development Project Manager
World Manager, Sydney
November 2011 — Present time
“World Manager” is a SaaS platform that provides e-learning/training, communication, business
operations and HR tools. The service is used by many leading Australian brands,
including Hungry Jack's, Gloria Jean's, Boost, Oporto, Bras'n'Things, Cue, Flight Centre, All Phones,
Autobarn, and others.
My responsibilities include:
- Supervise developers and promote best practices;
- Adopt new technologies, update and improve software design and infrastructure of the platform;
- Analyze projects, provide timelines to the business and ensure SDLC process;
Some of the noteworthy projects which I was responsible for:
-
Online Forms (a future project)
- Goal:
-
Design and build a generic form/questionnaire builder tool
(similar to Google Forms) that will replace existing custom survey functionality.
- Role:
-
Designed the functionality; wrote the specification; and performed initial
technical research.
- Technologies:
-
- Java
- Scala
- Spring Framework
- Spring Data
- QueryDSL
- Formio
-
SOAP API
- Goal:
- Redesign and build new SOAP API for the platform.
- Role:
-
Designed the new version of the API and wrote the specification;
supervised technical research, prototyping, and development.
- Technologies:
-
- Java
- Scala
- Spring Framework
- Spring Data
- Apache CXF
- QueryDSL
- ScalaTest
- Mockito
-
Content repository
- Goal:
-
Create a new unified content storage system that can manage all kinds
of user-uploaded documents and system resources; store meta-information (basic
file info, such as size, as well as user-assigned description, labels
and so on); generate derivative copies (e.g. thumbnails); automatically
distribute content to multiple regions; and serve static files efficiently.
- Role:
-
Performed technical research and prototyping; designed the architecture
and supervised development.
- Technologies:
-
- Java
- Scala
- Akka
- QueryDSL
- AWS (EC2, RDS, S3, SQS)
-
New platform foundation
- Technologies:
-
- Java
- Scala
- Spring Framework
- Spring Boot
- Spring Data
- WebJars
- Thymeleaf
- BoneCP
- QueryDSL
- Typesafe Config
- Logback
- Typesafe Scala Logging
- RequireJS
- AngularJS
- AngularStrap
- jQuery
- SCSS
- Twitter Bootstrap
- Gradle
- ScalaTest
- Mockito
-
Continuous integration and automated testing
- Goal:
- Automate functional testing and introduce continuous integration to the development process.
- Role:
- Coached developers, trained QA, supervised server infrastructure configuration.
- Technologies:
-
- Java
- Scala
- TestNG
- ScalaTest
- Selenium Grid
- Gradle
- TeamCity
-
Cache generation
- Goal:
- Implement a new optimized high-performance concurrent system to compute statistical data.
- Role:
- Designed and implemented the software.
- Technologies:
-
- Scala
- Akka
- BoneCP
- SQueryl
-
Automated server provisioning
- Goal:
-
Define standard server environments and introduce automated server provisioning.
- Role:
-
Implemented the most part of the configuration; coached other team members.
- Technologies:
-
- Puppet
- Puppet modules
- Git
- Plumbum
- Consul
-
AWS migration
- Goal:
-
Move servers into the cloud and make the infrastructure more flexible
and scalable.
- Role:
- Designed server topology, communication channels, and security.
- Technologies:
-
-
Mobile version of Online Training tool
- Goal:
-
Re-implement existing Adobe Flash-based application using HTML5 and reponsive CSS
to bring it to mobile devices.
- Role:
- Performed technical research and design, supervised development.
- Technologies:
-
-
Mobile version of ACTIV presentation tool
- Goal:
-
Re-implement existing Adobe Flash-based PowerPoint-like presentation tool using HTML5
and SVG to bring it to mobile devices.
- Role:
- Performed technical research and design, supervised development.
- Technologies:
-
Lead Application Developer, Technical Lead
Solution4 Software, Sydney
April 2010 — November 2011
The main product of the company is Senro CRM — a software-as-a-service for financial advisers and mortgage brokers. Solution4 also develops and offers subscription to Vision service, a real-time financial data feeds with flexible product searches and filtering.
I was responsible for the design of core components of Senro, and supervise the Senro development team.
My main responsibilities and accomplishments were:
- Designed and implemented a number of new business components (using Zend for front-end and Spring/Hibernate for back-end);
- Reviewed design, and supervised development and integration of the majority of new business components;
- Drew up a plan and supervised re-implementation of legacy components;
- Refactored the majority of model classes for better object-oriented design: to decrease coupling, remove improper relations, deprecate duplicated code, and simplify reusability;
- Expelled dependencies on outdated versions of third-party libraries (including but not limited to Commons, Lucene, Zend, and jQuery);
- Re-structured the codebase into logical submodules. Displace third-party libraries' sources with managed dependencies;
- Significantly refactored of almost the entire JavaScript codebase of the system, abolishing most of the duplicated code;
- Developed several JavaScript controllers for web-forms and promoted this approach to the development team;
- Prepared base infrastructure for data-based unit tests. Promoted unit testing to the development team;
- Reworked several key parts of the system, including security module to improve performance when dealing with millions of records;
- Developed new and improved existed tools for common tasks;
- Started migration of the front-end part of the system from Zend to Symfony 2/Doctrine 2;
- Designed and implemented new version of the service administation tool (Scala, Play! Framework)
- Coached developers in OOP/OOD, ORM, MVC, DVCS best practices;
- Advised the offline client team regarding data transmit and communication over XML-RPC/SOAP between Vision service (Java) and desktop application (C#).
Lead Application Developer
Wireless Broadband Australia, Sydney
August 2009 — March 2010
WBA is a major Australian wireless broadband telecommunication company that is represented by Unwired and Vividwireless brands.
I was primarily focused on the design and development of the new backend systems for Vividwireless project.
My main responsibilities and accomplishments were:
- Analysed and refined the domain object model and database schema;
- Introduced Doctrine and Symfony frameworks to the development team;
- Provided consistency between Doctrine's and Hibernate's domain models;
- Interacted with both Java and PHP teams and advised integration of Spring/Hibernate-based back-end and Symfony/Doctrine/Drupal-based front-ends;
- Designed POJOs and POPOs to transmit data over SOAP between Java back-end and PHP front-end;
- Reviewed development on several key systems, proposed and implemented a multitude of interoperability improvements;
- Designed and implemented a framework and its modules for Customer Service's back-office;
- Coached developers in OOP/OOD, ORM, UMS, and MVC best practices;
- Provided suggestions for further system development and enhancement.
February 2009 — May 2009
Senior Software Engineer
Navigator Publishing, Moscow, Russia
June 2002 — November 2008
Software architect, lead developer and system administrator of a computer and video gaming website that provides news, articles, gallery, downloads and encyclopaedia, as well as forums, chat rooms, VoIP, game servers and other community-related services.
My main responsibilities and accomplishments were:
- Reviewed available content, researched competing sites, gathered requirements and prepared proposals for further project development;
- Designed and developed completely new content management and publishing system taking into account special needs. In particular, designed database schemes, developed ORM framework, XSLT-based template system and MVC architecture;
- Implemented an entirely new version of website using a developed CMS;
- Designed CSS-based semantic layout and hand-coded XSL/XHTML templates;
- Produced JavaScript for form validation and other types of dynamic interaction with user;
- Performed gradual transition from preceding website;
- Set up and maintained the mail system including SMTP and POP/IMAP services, spam and virus filtering, webmail and user database integration;
- Arranged and supported web hosting services for private gaming projects;
- Set up and maintained chat system including IRC server with services and bots, XMPP server with transports, web-based client and user database integration. Begun work on AIR-based desktop client;
- Installed, configured and supported forums, wiki, VoIP and several game servers;
- Coordinated the development of interaction between third-party desktop applications and website's API;
- Mentored junior programmers and promoted usage of best practices;
- Designed and developed an online store that is integrated with main website;
- Designed and implemented next major revision of the website;
- Conceived and implemented administrative tools to automate system maintenance, monitoring services and backup (utilising Perl, Python and UNIX toolbox);
- Researched and implemented ways of performance improvements (including service dedicated servers, low-level operating system tuning, disk usage optimisations, database configuration, web server lightweight front-ends and application back-ends, in-memory caching and client-side caching);
- Created and maintained general documentation regarding server management and system administration, service configuration and integration, base conceptions behind developed applications and used technologies, established coding standards, guidance for localisation, modernisation possibilities, etc.;
- Provided system administration tasks, ongoing development and support for created web system;
- Begun work on the migration of the entire system to Spring framework;
- Begun work on AIR-based desktop application that should retrieve content from the website via internet;
- Begun work on Facebook application for auto-publishing picked games and articles on customers profile pages.
More detailed version of my resume is always available online at esyfur.com/about/cv.
Web Developer
DEFA gruppe, Moscow, Russia
August 2006 — March 2007
Software architect and web developer at Defa Gruppe, the third largest web studio in Russia.
My main responsibilities and accomplishments were:
- Performed software design and development;
- Evangelising and adoption of leading web technologies and development tools;
- Standardisation and documentation of development process;
- Supervised outsourcing developers and promoted usage of best practices;
- Gathered requirements, co-designed and co-supported custom build of new third-party CMS. Prepared the technical infrastructure for hosting the CMS.
Worked on the following projects:
-
Brahma
Russian website for famous beer brand.
- Role:
- Designed database schema, begun development of server-side software and hand-coding of XHTML/CSS templates.
- Technologies:
-
-
UHUHU
Service for automatic registration in web directories.
- Role:
- Designed and developed client-side software.
- Technologies:
-
- HTML
- CSS
- JavaScript
- jQuery
-
Dexter
Award winning “interactive movie” informational website for the first Russian air taxi network.
- Role:
- Designed database schema, developed server-side software that interacts with reach Adobe Flash front-end.
- Technologies:
-
- PHP
- MySQL
- Deformer
- JavaScript
- ActionScript
-
Arsenal Miniature
Website for company that masters, produces and sells miniature working models of historic weapons.
- Role:
- Co-developed server-side and client-side software.
-
Simple
Corporate website for largest Russian wine products and services company.
- Role:
- Co-developed server-side software.
-
United People Community
Corporate website for trading company.
- Role:
- Co-developed server-side software. Performed system administration tasks.
-
Tinkoff Procycling
Website for Italian professional cycling team.
- Role:
- Improved existed CMS for full multilingual support. Integrated third-party forum system into website.
-
Mancala
Promotional website for African board game.
- Role:
- Hand-coded XHTML/CSS templates.
- Technologies:
-
-
Vh-1 Russia
Website for Russian version of the famous music television channel, which is part of the MTV Networks.
- Role:
- Designed database schema, co-developed server-side software for website and data synchronisation with external MS SQL Server. Hand-coded XHTML/CSS templates.
- Technologies:
-
- PHP
- MySQL
- Deformer
- .NET/C#
- SQL Server
- HTML
- CSS
- JavaScript
- ActionScript
-
Deformer 2.0
Object-relational mapper and web application framework.
- Role:
- Co-developer. Gathered requirements, designed architecture modernisation, improved functionality.
- Technologies:
-
Front-End Web Developer, IT-manager
A. V. Shubnikov Institute of Crystallography RAS, Moscow, Russia
October 1999 — August 2006
My main responsibilities and accomplishments were:
- Gathered requirements, prepared structure mocks and hand-coded first generation of Institute's website;
- Organised and supported the division's IT-infrastructure;
- Designed and developed database of science samples and GUI for searching, filtering and sorting using MS Access;
- Made an utility for converting data from MS Excel including VB-scripts for pre-export processing;
- Annually marked up several tens of posters, booklets, books and boards for the institute's events and conferences.