Roman Imankulov, Developer in Porto, Portugal
Roman is available for hire
Hire Roman

Roman Imankulov

Verified Expert  in Engineering

Software Developer

Location
Porto, Portugal
Toptal Member Since
March 15, 2021

Roman is a passionate software developer with 16 years of hands-on and team management experience. He's intimately familiar with the Python ecosystem and the development of scalable systems for the web. Remote worker since 2012, he's a proponent of no-surprise proactive communication style, blameless culture, and human-centric processes and workflows. Roman is also a conference speaker and organizer.

Portfolio

Melior Technology, Inc.
Python, Databases, APIs, SQL, Automation, PostgreSQL, Amazon RDS, Terraform...
Ribbon
CircleCI, CI/CD Pipelines, GitHub, Django, Django ORM, Django REST Framework...
Anyblock Analytics
Python, Flask, Plotly, Dash, Redis, Elasticsearch, Docker, Docker Compose...

Experience

Availability

Part-time

Preferred Environment

Python 3, MySQL, Redis, PostgreSQL, Django, Amazon Web Services (AWS), Flask, React, TypeScript

The most amazing...

...achievement of mine has been an eight-year-long marathon of building the back end of Todoist—the number one task manager with millions of active users.

Work Experience

Full-stack Developer

2022 - 2023
Melior Technology, Inc.
  • Established processes for task management, progress tracking, and team knowledge collection.
  • Developed, deployed, and maintained a dashboard app displaying diversity statistics in hiring pipelines. Tasks involved 3rd-party integration, data collection and processing, authentication, access control, AWS deployment, logging, and monitoring.
  • Designed, deployed, and maintained a modern job management app. Responsibilities included 3rd-party integration, authentication, access control, AWS deployment, logging, and monitoring.
  • Configured GA4 tracking statistics using Google Tag Manager.
  • Implemented and maintained a tracking pixel service for data collection in Google Analytics 4.
  • Investigated and developed prototypes for services utilizing LLM and OpenAI API in HR and digital marketing sectors.
Technologies: Python, Databases, APIs, SQL, Automation, PostgreSQL, Amazon RDS, Terraform, Ansible, SQLite, FastAPI, React, React Admin, Material UI, Google Analytics 4, Google Analytics API, Google Analytics Measurement API, Google Tag Manager, Amazon CloudFront CDN, Amazon S3 (AWS S3), Amazon API Gateway, Caddy Server, OpenAI GPT-3 API

Senior Full-Stack developer

2021 - 2022
Ribbon
  • Improved work with documents. Added new document types. Refactored and extended the integration with HelloSign, an electronic signature solution.
  • Implemented the business logic of the new appraisal protection program.
  • Mentored other developers, shared development best practices, and helped colleagues recognize and apply software architecture patterns.
  • Contributed to better unit tests. Fixed various issues in the test suite and improved integration with CircleCI.
  • Proactively contributed to the team and development culture: wrote documentation guidelines, introduced architecture decision records, encouraged knowledge sharing.
Technologies: CircleCI, CI/CD Pipelines, GitHub, Django, Django ORM, Django REST Framework, Python, Python 3, React, React Apollo, Graphene, GraphQL, Amazon Web Services (AWS), JavaScript, TypeScript, Agile, Scrum, Software Architecture, Refactoring, Test-driven Development (TDD), Integration Testing, Unit Testing, Docker, Docker Compose, Kubernetes, Cypress, PostgreSQL, Apache Kafka

Senior Python Dashboard Developer

2021 - 2021
Anyblock Analytics
  • Specified the architecture of a Plotly and Dash application. Introduced and documented the application file structure, implemented internal mechanisms of routing and caching. Added utility functions and classes to facilitate the development process.
  • Migrated dashboards from the legacy application to the new structure. Added new tools to the helper toolbox and documented newly appearing best practices.
  • Guided data scientists and software developers in creating new dashboards for the projects. Reviewed their code and helped them familiarize themselves with the new framework and some advanced Python concepts.
  • Provided the testing and deployment workflow with Gitlab. Used Gitlab CI for running unit tests, building Docker containers, and deploying new versions to the staging environment.
  • Set up the Jupyter notebook environment for exploratory analysis for data scientists and developers.
  • Added Sentry integration to collect error reports for the application's back end and front end.
  • Introduced development best practices in Python and added linters to pre-commit hooks. Shared my knowledge in documentation, pair programming sessions, and Loom videos.
Technologies: Python, Flask, Plotly, Dash, Redis, Elasticsearch, Docker, Docker Compose, GitLab, GitLab CI/CD, Sentry, Software Architecture, Agile, Jupyter Notebook, Architecture, Back-end Development, Back-end, Pandas

Python Developer

2021 - 2021
Varfaj Partners
  • Reduced the tech debt and introduced good development practices in an online learning platform. Inherited a Flask project with some tech debt and worked on code improvements while adding features and fixing bugs.
  • Introduced a proper and well-documented architecture for the project, set up and documented the development environment, and added unit tests.
  • Added the integration with Sentry and logging and documented the setup.
Technologies: Python, Flask, GitLab CI/CD, Heroku, PostgreSQL, SQLAlchemy, Cloud Firestore, Pytest, Back-end, Back-end Development

Python Developer

2021 - 2021
Valour
  • Built an internal dashboard with Django, Docker, and Docker Compose to show and edit company positions in counterparties.
  • Created deployment scripts and deployed the project to AWS ECS using the infrastructure as code solution such as AWS and Terraform.
  • Made integrations with several crypto exchanges to collect real-time cryptocurrency prices and pull account data from the platforms, including WebSockets, Asyncio, and Redis.
  • Created an integration with Interactive Brokers to collect real-time currency prices like ib_insync and IBC.
  • Documented the project architecture, development, and production installations, including MkDocs.
  • Created an internal dashboard to show the real-time fair price of Bitcoin by gathering the information from three crypto-exchanges FastAPI, Asyncio, and WebSockets.
  • Gathered project requirements and converted them to proposals for technical implementations.
Technologies: FastAPI, Asyncio, Python Asyncio, WebSockets, Django, Material UI, Docker, Docker Compose, Redis, Interactive Brokers API, Amazon Web Services (AWS), Amazon Elastic Container Service (Amazon ECS), Amazon RDS, Amazon ElastiCache, Terraform, CI/CD Pipelines, Pytest, Back-end, Front-end, Back-end Development, Full-stack

Head of the Back-end Development and Infrastructure Team

2017 - 2021
Doist
  • Performed the zero-downtime, zero-stress, Python 2 to Python 3 migration of the Todoist codebase. Documented the migration experience and provided several tools to streamline the process.
  • Guided and supervised the migration of Doist services from EC2 to AWS ECS Fargate. This migration unified the development experience across different projects and products and let us grow from two to more than 20 different services in production.
  • Started the “Happy development experience” initiative inside the back-end team. Improved several long-neglected painful aspects of the development experience, such as setting up the development environment and addressing technical debt.
  • Streamlined and formalized the hiring process, introducing the hiring workflow focused on objectivity, repeatability, and stellar user experience for candidates. The workflow got replicated by other departments.
  • Updated the onboarding process and introduced the onboarding crash course, finalized with an onboarding project. Newcomers became able to contribute to the project codebase within 2-4 weeks after joining the team.
  • Migrated from a home-grown Redis-based queue to Amazon SQS. The migration improved the observability, scalability, and overall stability of the service.
  • Introduced unified formatting and obligatory linting with pre-commit hooks, and a set of tools such as flake8, isort, and black.
Technologies: Python, Team Management, Software Architecture, Agile, Monitoring, CI/CD Pipelines, Docker, Remote Work, Python 3, Python 2, OAuth 2, APIs, Back-end, Amazon Web Services (AWS), Technical Leadership, SQL, AWS Lambda, Amazon S3 (AWS S3), Amazon Athena, SQLAlchemy, Databases, REST APIs, Documentation, API Documentation, Redis, Web Architecture, API Architecture, Back-end Development, Architecture, Relational Databases, Cloud Infrastructure, Message Queues, Amazon Simple Queue Service (SQS), User Authentication, Authentication

Software Developer

2012 - 2017
Doist
  • Modernized the development and deployment workflow by stabilizing and refactoring tests, building a habit of writing tests along with the code, and introducing the CI system.
  • Architected and implemented the new API, reducing the number of queries to the database to over 95%. With the same hardware, this increased the responsiveness of the API more than twice.
  • Proposed and implemented a better model for task due dates, the core functionality of Todoist. With this, I resolved several longstanding problems and turned the product with the highest number of complaints into a minor issue.
  • Implemented and proposed a console-based admin panel for the support team. The simplicity and extensibility of the solution allowed the back-end team to create more than a hundred commands and empowered the support team.
  • Performed several generations of the production logging platform, striving to achieve the best experience for developers and support specialists.
  • Implemented the custom support and feature voting platform to serve the product development of Todoist.
  • Provided the API, models, and integration with the payment provider for Todoist Business, a solution providing Todoist for teams and organizations.
Technologies: Python, Amazon Web Services (AWS), Software Architecture, Agile, Test-driven Development (TDD), CI/CD Pipelines, Docker, Remote Work, Python 2, Python 3, OAuth 2, APIs, Back-end, Django, SQL, Django ORM, Stripe API, Apple Pay, Google Play API, Amazon S3 (AWS S3), Databases, REST APIs, Documentation, API Documentation, Redis, Web Architecture, API Architecture, Back-end Development, Front-end, Full-stack, Architecture, Relational Databases, Cloud Infrastructure, Message Queues, Authentication, User Authentication, SQLite

Developer and Lead Developer

2005 - 2012
NetAngels
  • Served as the core contributor for the hosting control panel, the main interface with the platform for end-users and technical specialists.
  • Introduced the test-driven approach to development and introduced the CI workflow based on Jenkins.
  • Provided the API and implemented integration with the domain name registrar nic.ru, offering self-service for customers to register and automatically extend the registration of domain names.
  • Implemented and streamlined the billing platform. The platform allowed to serve thousands of clients with two part-time finance specialists.
  • Conceived, implemented, and maintained the internal helpdesk system for an extensive period. Migration to Helpdesk from a shared IMAP inbox allowed scaling out the support team from two part-time specialists to ten people.
  • Introduced and promoted internal documentation with Redmine wiki. Documented several administrative, support, and development workflows, contributing to reproducibility and streamlining the development experience.
Technologies: Python, MySQL, Debian Linux, Bash, Web Hosting, Domain Name Registration, Domain Name System (DNS), Postfix, Team Management, Agile, Test-driven Development (TDD), Python 2, APIs, Technical Leadership, SQL, Django ORM, Databases, Documentation, REST APIs, Back-end, Front-end, Full-stack, Message Queues, Relational Databases, Celery, RabbitMQ, SQLite

University Lecturer

2008 - 2010
Ural Federal University
  • Developed and read a 14-hour course “Information Security of Computer Systems” that included a succinct description of all major information security concepts, such as access control models and implementations, crypto algorithms, protocols, etc.
  • Conducted laboratory classes with students to consolidate with practice their skills acquired in the lectures.
  • Administered the final course exams and evaluated how students adopted the knowledge and mastered their skills.
Technologies: IT Security, Network Security, Cryptography

Feature Flags at Doist

While working at Doist, I introduced a feature flags platform to development teams. I was the project lead, responsible for choosing a technical provider, implementing the integration, and internally documenting and promoting the solution. The realization of the project unlocked possibilities to adopt a trunk-based-development mindset, quick iterations, and a tight feedback loop, not only in the back-end team but across all engineering teams.

Admin Panel for The Support Team

I proposed and implemented a console-based admin panel for the support team. The simplicity and extensibility of the solution allowed the back-end team to create more than a hundred commands. In its turn, it empowered the support team and decimated the load to developers in resolving trivial issues.

Better Due Dates

Better Due Dates aimed at improving the core functionality of Todoist, setting task due dates, both on the product and technical side. I was the project lead. Proposed an alternative model for task due dates. Completed the database migration, created and deployed the new API, and documented the process. Introducing the model resolved several longstanding issues caused by the legacy approach and turned a former top problem with a number of complaints into a negligible issue.

Streamline Authentication with Google and Facebook

https://edraak.org
I joined an established development team to improve authentication for an online learning platform. I inherited the codebase of the auth service, updated its behavior for the secure one-click sign-in with Google and Facebook, and updated dependent services to follow the new flow. Along the way, I documented and cleaned up the codebase and improved the development experience of the project.
2000 - 2006

Bachelor's Degree in Information Security

Ural Federal University - Yekaterinburg, Russia

Libraries/APIs

Django ORM, Stripe API, REST APIs, React, Google Play API, SQLAlchemy, Node.js, Python Asyncio, Asyncio, Interactive Brokers API, Pandas, Facebook Authentication, Google Analytics API, Google Analytics Measurement API

Tools

Pytest, Terraform, Postfix, Amazon Athena, uWSGI, Amazon Elastic Container Service (Amazon ECS), AWS IAM, Docker Compose, Amazon ElastiCache, GitLab CI/CD, Plotly, GitLab, Sentry, Celery, RabbitMQ, Amazon Simple Queue Service (SQS), CircleCI, GitHub, React Apollo, Graphene, Ansible, Amazon CloudFront CDN, Caddy Server

Frameworks

Django, Flask, OAuth 2, Flutter, Django REST Framework, JSON Web Tokens (JWT), Material UI, Cypress, Redux

Languages

Python, Python 3, Python 2, SQL, Bash, HTML, GraphQL, JavaScript, Dart, CSS, TypeScript

Industry Expertise

Network Security

Paradigms

Agile, Test-driven Development (TDD), REST, Web Architecture, API Architecture, Scrum, Refactoring, Unit Testing, Automation

Platforms

Docker, Amazon Web Services (AWS), Debian Linux, AWS Lambda, Heroku, Jupyter Notebook, Kubernetes, Apache Kafka

Storage

MySQL, Redis, PostgreSQL, Databases, SQLite, Amazon S3 (AWS S3), Cloud Firestore, Elasticsearch, Relational Databases

Other

Software Development, Remote Work, APIs, Back-end, Back-end Development, Team Management, Software Architecture, CI/CD Pipelines, Web Hosting, Technical Leadership, Documentation, API Documentation, User Authentication, Authentication, IT Security, Network Protocols, Monitoring, Domain Name Registration, Domain Name System (DNS), Cryptography, Apple Pay, FastAPI, WebSockets, Amazon RDS, Dash, Architecture, Front-end, Full-stack, Cloud Infrastructure, Message Queues, Integration Testing, Authorization, Google+ Authentication, React Admin, Google Analytics 4, Google Tag Manager, Amazon API Gateway, OpenAI GPT-3 API

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