About

I am a software developer with 10+ years of experience in php, node.js, and java.

Currently I am team lead of 6 developers in Sofia based global company in the field of financial services.

I am passionate about back-end development using microservices, message queues and cloud based architecture.

Work Experience

I have worked in several companies based in Sofia, Bulgaria

Software Group

Feb 2016 - current

Software Group is Sofia based international company providing IT solutions for financial institutions.

I started as full stack javascript developer in feb 2016. Several months later I was promoted to Team Lead of a team with 6 developers.

My responsibilities as TL are delivery in time, coaching and resolving impediments.

Technologies used: node.js, mssql, react, redux, immutable.js

Techhuddle

Jun 2014 - Feb 2016

Nearshore company with offices in Sofia and London.

I started as Senior PHP developer and moved to Node.js team later on.

The projects I was working on were in the field of e-commerce and retail.

Technologies used: php, mysql, beanstalkd, redis, puppet, laravel, AWS, node.js, mongodb, react, reflux

Circles Bulgaria

Nov 2013 - May 2014

Confidential

Technologies used: php, yii framework, mysql

Comstream

Sep 2013 - Oct 2013

Worked in Comstream only 3 weeks, because the essence of work was not the one I expected.

Technologies used: php4, mysql

Sourcelab/Innovity/ISDC

Jan 2010 - Sep 2013

I started as java developer working on project with Play! Framework and Hibernate. Later I worked mainly on php with cakePHP, jquery, mysql.

Sourcelab was aquired by Innovity and later on by ISDC.

In Innovity I implemented solution for continuous integration and continuous improvement with Jenkins and SonarQube.

Technologies used: php, java, mysql, cakePHP, Play! framework, javascript, jQuery, eclipseLink, Hibernate

Infologica

Apr 2007 - Jan 2010

Infologica is an IT services and solutions company mainly focused on software in the field of environment control and protection.

I was part of a team develoing php based system for european environmental agency.

During this period I was supporting the bulgarian system for air quality monitoring. The support was both software and hardware.

Technologies used: php, java, mysql, oracle, spring framework, windows system administration

Education

Master degree in IT Project management

Oct 2012 - Nov 2014 @ New Bulgarian Univercity

Program was based on PMI courses. Thanks to the collaboration between New Bulgarian Univercity and Carneggie Mellon, I have certificaftions in:

  • TSP - Leading a Development Team
  • PSP - Personal Software Process Fundamentals

Couses in the program were:

  • Software estimation
  • Team Software Process (TSP)
  • Personal Software Process (PSP) Fundamentals
  • Personal Software Process (PSP) Advanced
  • Project Management III (lectures by Prof. Vijay Kanabar from Boston University)

Bachelor degree in Informatics

Oct 2009 - Jan 2012 @ New Bulgarian Univercity

Courses in field of:

  • Structures and algorithms
  • Programming with C++, Java and C#
  • Computer systems, networks and operating systems
  • Object oriented programming
  • Software methodologies

During my bachelor education I took the 4 modules of Cisco CCNA.

I graduated with a project for organizing group travels made with google maps api, scala and mysql.

Vision

I like Robert C. Martin's definition for professionalism and software craftsman:

  • TDD must be used to be able to prove the software works at any time
  • people must try to leave everything a bit cleaner than they found it. Sounds easy, but it's not :-)
  • automation everywhere
  • continuous improvement

As team lead I believe team members should have clear tasks right for their skills when they come to work in the morning. The perfect task is the one with clear end result, a bit challenging which allows the developer to take all the decisions about the implementation.

As can be seen in this website I believe in minimalism

I signed the Software Craftsmanship Manifesto

Technologies

During my experience I worked with php, node.js and java. I also supported many systems in production.

Node.js

  • Hapi is web framework I use the most in node.js;
  • Mocha is great coffee and great framework which I use whenever I can;
  • React is what I choose when I need front end;
  • Redux with React is like Batman and Robin;
  • Immutable saves me when working with Redux;

PHP

  • cakePHP was the first framework I used for php;
  • Laravel is my favourite php framework;
  • Doctrine is nice ORM when such need to be used in php;
  • composer is the most important thing for last 10 years in php world;
  • phpUnit is a must for every project;
  • Symfony components I use anytime I can;

Java

  • Spring was the first framework I ever used back in 2007;
  • Play! Framework was the last web framework I used when I was in the Java world;
  • jUnit saved me many times in many projects;
  • Hibernate was used by me for a project which was searching in database with 600k users;

OS

  • MacOS is my first choise for work machine;
  • Linux (centOS or ubuntu) is what I choose for hosting when I support systems in production;
  • Windows is something I prefer to avoid;

Other

  • Jenkins is CI which I implemented to build and deploy java on linux, .net on windows worker and iOS for running automated tests on devices;
  • SonarQube is my choice for implementing continuous improvement techniques and action plans for PHP and Java;
  • Capistrano is what I used for deploying PHP applications in production;
  • Puppet is solution for provisioning which I choose to implement provisioning for 80+ servers in production;
  • Vagrant provisioned with Puppet is something I used before Docker was cool;
  • Docker will be my solution instead of vagrant if I need to fix "work on my machine" problem now;