Ivan Dimitrov, Developer in Belgrade, Serbia
Ivan is available for hire
Hire Ivan

Ivan Dimitrov

Verified Expert  in Engineering

Bio

Since 2014, Ivan has been developing systems and apps—mostly in the Python ecosystem (starting professionally in 2016). He's worked in agile teams working closely with front-end, DevOps, and QA engineers. He also possesses experience working with subject matter experts and can directly interpret user requirements and implement them in features. Ivan has a master's degree in software engineering from the University of Belgrade.

Portfolio

Toptal Clients
Amazon Web Services (AWS), PySpark, Apache Airflow, Data Analysis, Celery...
Symphony
PostgreSQL, Docker, Scrapy, Pandas, Celery, Flask, Django, Python
Toschas
AngularJS, Firebase, JavaScript

Experience

  • Python - 5 years
  • Django - 4 years
  • Django REST Framework - 4 years
  • Data Analytics - 2 years
  • JavaScript - 2 years
  • Concurrent Programming - 2 years
  • Pandas - 1 year

Availability

Part-time

Preferred Environment

Docker, DataGrip, Postman, PyCharm, Slack, MacOS

The most amazing...

...thing I've designed and developed from scratch was a system based on the microservice architecture, which included services that used Flask and Django.

Work Experience

Senior Python Engineer | Data Analyst

2019 - PRESENT
Toptal Clients
  • Developed the back end for a web monitoring tool for Cisco routers from scratch using Django REST.
  • Developed the back end for an eCommerce tool for managing inventory, orders, and syncing with Quickbooks data from scratch.
  • Monitored, analyzed, and developed data collecting tools for a data analytics company.
  • Worked as a full-stack developer for a CRM web application and developed integrations with third-party services.
Technologies: Amazon Web Services (AWS), PySpark, Apache Airflow, Data Analysis, Celery, Google Cloud Platform (GCP), Django, Python

Software Engineer | Back-end Developer

2016 - 2019
Symphony
  • Implemented scrapers for collecting data from a set of websites (accomplished this by utilizing the Scrapy framework).
  • Sped-up a math-heavy algorithm using the Celery framework for parallelization.
  • Communicated with subject matter experts; analyzing their processes and methodologies and implementing those processes in the form of algorithms while keeping in mind scalability and performance.
  • Closely worked with data scientists/mathematicians to optimize current workflows and in the construction of math models for performance purposes.
  • Led a team of ten consisting of DevOps, QA, back-end, and front-end engineers.
  • Developed and maintained Flask and Django microservices.
  • Worked in Agile teams.
Technologies: PostgreSQL, Docker, Scrapy, Pandas, Celery, Flask, Django, Python

Web Developer

2016 - 2016
Toschas
  • Developed a front-end application in an AngularJS framework.
  • Interfaced with public web APIs like Edmunds as part of my role.
  • Interfaced with Firebase, a real-time JSON database.
Technologies: AngularJS, Firebase, JavaScript

Experience

NDA Project

Here, I was one of the first developers hired and it has given me a unique perspective on the process of scaling. I started on a team of three which grew to 20 people in a period of two years.

My responsibilities included developing and maintaining a crucial part of the application responsible for running algorithms, finding ways to improve algorithm performance either using parallelization methods, and other obligations as a team lead. I also designed and implementing parts of the microservice including the restructuring of the back-end service and worked closely with subject matter experts in defining and implementing algorithms.

Cisco Monitoring Application [Django Developer]

The main goal of this application was to connect with the Cisco system used for a large call center. I was a back-end developer on this project and I started the Django project from scratch.

Project Main Responsibilities:
• Established a connection with the MS SQL database which contained all data regarding the workload of the Cisco call center system.
• Transformed the data, which was fetched from the Cisco database and saved in the local database for further use.
• Created REST APIs for accessing the metrics data which would be consumed by the front-end applications.
• Deployed the application on an inhouse server.

Technologies: Django REST Framework, MS SQL, Red Hat, Celery

eCommerce Applications for a Flooring Company

This application had two main goals, the first one was to integrate the data from the application which is used by sales agents (Quickbooks). The second goal was to utilize that data to measure and display metrics like commission, total sales, total amount sold. and more. Besides monitoring the outgoing orders a large part of the system was dedicated to tracking incoming orders and keeping track of the inventory.

I was the back-end engineer on this project and I built the Django application from scratch.

Project Main Responsibilities:
• Designed and implemented all the REST APIs based on the design prototype.
• Architected the data pipeline for retrieving the data from the Quickbooks application.
• Deployed the application on AWS services.

Technologies: Django REST Framework, Celery, AWS, PostgreSQL

Data Analyst for Yipit Data

This role focused on monitoring, analyzing, maintaining, and developing a system of web scrapers that load data from over 50 sources (web pages, APIs) with a throughput of 1-10 million entries per month. This role represents a deviation from my previous roles; however, I used skills from my previous experiences like Python and SQL.

Carlypso

I worked for this San Franciso-based startup focused on collecting and processing data about second-hand car auctions from multiple sources.

I was responsible for maintaining a few services which were written in Python and used the Scrapy framework for collecting data. One of my biggest challenges in this project was to connect an existing service with a new module that was developed by a data scientist.

Full-stack Developer

In this role, I was responsible for developing a set of features for a CRM application.
Features I was working on include:
* Zappier integration
* Email campaigns
* Email sequencing
This role was full-stack so I worked on both the Backend and the Frontend part of the application

PyCon Balkan 2018 Talk Proposal Reviewer

I was also a part of a team of reviewers for PyCon Balkan where I provided feedback and gave selected talks at the Python Conference for Eastern Europe.

Detection of Erythemato-Squamous Diseases Using Multiple Machine Learning Models

I worked on a university project where it aimed to compare different machine learning models (N-nearest neighbors, K-means, Naive Bayes) performance in the prediction of an Erythemato-Squamous disease type.

“Introduction to Python” Meetup Talk

I've also held a talk at a meetup organized by a company that I worked for. I spoke about core concepts in Python like the zen of Python and made comparisons with other languages. The main purpose of the talk was to showcase Python's pros and cons for a better understanding of why it is used in certain areas.

Education

2016 - 2018

Master's Degree in Software Engineering

University of Belgrade - Belgrade, Serbia

2012 - 2016

Bachelor's Degree in Software Engineering

University of Belgrade - Belgrade, Serbia

Skills

Libraries/APIs

Pandas, PySpark, Vue

Tools

Celery, PyCharm, Postman, DataGrip, Zapier, Apache Airflow

Languages

Python, SQL, JavaScript

Frameworks

Django, Scrapy, AngularJS, Django REST Framework, Flask

Paradigms

Agile, Concurrent Programming, Microservices

Platforms

Google Cloud Platform (GCP), Amazon Web Services (AWS), MacOS, Firebase, Databricks, Heroku, Docker

Storage

Microsoft SQL Server, MySQL, PostgreSQL

Other

Data Analytics, Data Analysis

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring