I am a problem solver, not the guy who will tell you "it's compiling, please wait".
I always want to know what is your problem and want to perceive it on a human & business level. I don't want to only know programming. Being a dev is extremely interesting, educating and exhausting experience because you get to learn lots of business areas -- big and small.
I enjoy constructive criticism and welcome teams that aren't dominated by Hitler wanna-be leaders.
Full-time & on-site jobs -- forget it. I work remotely with flexible hours, and always will.
Stuff in the programming I enjoy the most:
* Integration and interoperability: finding out how to connect very different systems (different OS, different language).
* Refactoring: modify a system without adding or removing functionality to make it more manageable, or to improve performance, or to provide connectors to new technologies.
* Asynchronicity: I enjoy the complexity -- from the simple multi-threading scenarios to the full multi-server cooperations.
* Standartization: I am an enemy of the home-grown approach. Wherever I feel a well-known technology will be more suitable, I replace the home-grown solution with it.
* Innovation: I am not afraid of proof-testing new technologies and evaluating them against the ones I am currently using. I never innovate just for the sake of it; technologies are being chosen on "will it be easier to maintain in the long run?" basis.
Specialties:
* Making backend software & providing most of the system administration needed for it.
* Doing integration and interoperability of very different systems, utilizing XML and JSON APIs.
* Processing big amounts of data.
* Modernizing legacy code.
* Making and/or maintaining websites. I learned quite a lot here but it's not one of my favourite things to do. I feel the frontend technlogies are employing too much change for the sake of the change. It's an endless chase which I feel won't bring anything productive soon.
Senior Software Engineer @ Helping the company with Ruby on Rails and Javascript tasks & projects on a remote contractor basis. From July 2013 to Present (2 years 6 months) Ruby & JS dev (rarely PHP), sysadmin. @ Ruby: Rails 3.*, 4.0 to 4.2, plus custom solutions for system migrations, mass-mailing, import data from legacy DBs, introducing multi-tiered caching systems, making apps use dual-DB model (*SQL and MongoDB/Redis), refactor/evolve of projects, and many more.
Javascript: AJAX processing, various user interface and templating engines, mapping solutions, SVG and Canvas rendering in the browser, task/dependency management, concurrency techniques used to help with Javascript's single-threaded model, etc.
Misc: MySQL, MongoDB, Rake, GIT, SVN, ImageMagick, SphinxSearch, memchached cache server, Redis, and many common Linux tools.
PHP: Symfony 1.4.*., plus custom solutions for system migrations, mass-mailing, integration with several Zend projects, and a lot more.
Random highlights:
- Working with multiple GIT branches and deployment stacks in a large team for several projects.
- Working on a lot of projects simultaneously and employing task tracking software.
- Extending OSS frameworks where needed.
- Working on mass-delivery email systems.
- Custom administration solutions, like (1) multi-lingual rich text content, (2) storing to several backup databases, (3) auto-bringing up tasks on given intervals, (4) image compression solutions (with heavy utilization of ImageOptim), and many, many more.
- Inventing projects which work simultaneously with NoSQL and SQL stores.
- Devising migration procedures for legacy data and user/password lists.
- Fixing broken HTML/CSS designs.
- Enriching user interfaces with various jQuery effects.
- Implementing many different payment methods in PHP and Ruby, including PayPal and several Bulgarian-specific payment providers.
- Ruby on Rails: mastering backend-only systems in several projects.
- Javascript: learning and employing high-level concurrency tools.
- A huge number of various other activities done and skills learned. You can never really summarize several years of freelance experience. From April 2011 to Present (4 years 9 months) Senior Java Developer @ Hired for a 2-month project to develop an internal management console application. Used technologies:
* Google Web Toolkit
* Ext-GWT (aka GXT)
* JPA (Eclipselink)
* Ruby (for sketching and testing various pieces of the application before developing them in Java)
* WebServices Java libraries
* Did several HTTP automation solutions using Java HTTP libraries From November 2010 to January 2011 (3 months) R&D Developer @ Various Ruby and Ruby-on-Rails tasks, related to data gathering and presenting into a web mini-portal. From July 2010 to August 2010 (2 months) Senior Java Developer @ Participated in creating a formal organizational Web portal. Used technologies:
* Liferay Portal & Portlets
* JSP, Servlets
* EJB3, JPA. From November 2009 to May 2010 (7 months) Project leader, development leader @ Developed management console application. Used technologies:
* Oracle 10g
* GWT 1.5.x
* Spring
* Hibernate
* Ext-GWT
* (A bit of) JQuery / JQuery-UI
The management application displays and edits various types of data in a table format, offers auto-completion, context validation, nested filtering and security. From March 2008 to September 2009 (1 year 7 months) Software engineer @ Java development:
** Did automated replacement of legacy logging system.
** Participated in design and implementation of server software.
Web development:
** Created (in ~3 months) Web 2.0 application (AJAX + dynamic interface) to wrap existing API; it is a replacement of Microsoft's ActiveDirectory management tools. Employed technology: Google Web Toolkit. From July 2007 to February 2008 (8 months) Senior Java Developer @ Java development:
** Developed application to collect news from various RSS/Atom sources, to extract information from them and to fill a semantic database. Done in three weeks.
** Participated in text extraction project from PDF files.
** Developed nearly realtime application to parse millions of XML logs and feeds the parsed data to a semantic database.
Web development:
** Participated in prototyping new web search engine relying on semantic databases (used Java Server Faces). From March 2007 to June 2007 (4 months) Developer @ C++ development:
** ActiveX plugin for large IDE (Texas Instruments' Code Composer Studio)
** Windows Control Panel applet (to manage USB devices)
** Java debugger (both backend and GUI)
Java development:
** Participated in middle-sized Swing/Database DMS (Document Management System) application
** Made bridge between Windows scanner API (Twain) and Java
** Made bridge between Windows' DDE technology and Java
** Made bridge between COM, OLE, ActiveX and Java.
** Created application to send SMS messages (plus preliminary research).
Web development:
** Javascript
** Java Server Faces From December 2001 to February 2007 (5 years 3 months)
Economics @ Ikonomièeski universitet, Varna From 1997 to 2000 Dimitar Panayotov is skilled in: Java, JavaScript, Ruby, Ruby on Rails, PHP, XML, JSON, MongoDB, Git, Subversion, MySQL, AJAX, Databases, jQuery, OOP
Websites:
http://dimitko.eu/cv