Petar Todorov

Software Developer

About Me

Being a software developer for more than 12 years and working with various languages and programming technologies makes me feel confident to face any problem in the world of software engineering. My experience was acquired by working in various industries - from writing code for embedded systems to web apps and web services, client–server models and game programming. I have actively participated in creating software architectures for commercial projects. My main goal when writing software is to provide efficient, reusable, reliable and well optimized code within an Object-Oriented Design. I prefer to work on Linux as it provides more flexible and reliable working environment.

I'm interested in freelance projects for mobile devices (Apache Cordova), web applications (JavaScript/Node.js/React), visualizations on HTML5-canvas, audio processing, machine learning, front end applications, single page applications, complex backend computations, etc. My favorite software technologies and languages are Node.js, React, Java, JavaScript, C++.

My passions and motivators are mountain bike riding, hiking, playing and composing music.

Work Experience

Self-employed full stack developer with React and Java - GalileoBg (2019 - 2023)

Develop a fleet manager - a web application that is able to observe the parameters and geolocations of a group of private motor vehicles. The user can also subscribe for specific vehicle's events and get informed through the application or email. The web application is currently running in production mode. I elaborated the whole application's software architecture and user interface. Deciding which public services and platforms to use. Implementing the back-end (Java Spring Framework) and front-end (React with JavaScript). Integrating an existing database into the server.

Self-employed full stack developer with React and NodeJs - We Are Utopia Ltd (2022)

Develop an online dictionary with therms pertaining to the language of inclusion and diversity. The user can generate a PDF file of filtered terms on demand. The project also integrates some particular business logic requirements regarding the content management. It consists of several microservices.

Self-employed front end developer with React and TypeScript - Printec Group (2021 - 2022)

Further developing of an existing system and user interface for interactive kiosks. The user interface was able to generate a custom defined software for the kiosks. The generated software has a simple functionality, like responding on a button clicking and going to the next page, playing videos, inserting text, displaying documents.

Software developer with C++, PHP, JavaScript - Euro Games Technology Ltd (2013 - 2017)

Develop Video Lottery Terminals (VLT) and Casino Management Systems (CMS). Write high level code for Linux based peripheral devices and server clusters. Take part in creation and implementation of a software architecture for casino video games. Develop web interface of VLT system using Yii PHP framework, Javascript and PostgreSQL and then integrate the UI to a server clusters layer with C++ and SOAP messaging protocol.

Software developer with C++, C# and JavaScript - R Consulting Ltd (2012 - 2013)

Develop video-on-demand and over-the-top Linux based devices and work with media streams. Implement bin packing algorithm for sorting of images. Do a full-stack development of a monitoring service which collects data from multiple Windows servers. Create and code the software architecture for that service. Develop the user interface with HTML and JavaScript. Create a graphical visualization library with HTML5/canvas. Research and develop a life-streaming real-time chat with more than two participants using their web cameras for browsers.

Software developer with C/C++ - Johnson Controls Automotive Electronics (2011 - 2012)

Develop in-car mobile phones messages accessing applications. Support desktop testing tool implemented with C++ STL and MFC. Support SQLite database API.

Junior software engineer with C - MM Solutions (2009 - 2011)

Elaborate and implement image processing algorithm for mobile phones using mathematical and heuristic approaches. The algorithm drives the camera lenses and find the best focus position.