Roman Imankulov
Verified Expert in Engineering
Software Developer
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
Experience
Availability
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
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.
Senior Full-Stack developer
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.
Senior Python Dashboard Developer
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.
Python Developer
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.
Python Developer
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.
Head of the Back-end Development and Infrastructure Team
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.
Software Developer
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.
Developer and Lead Developer
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.
University Lecturer
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.
Experience
Feature Flags at Doist
Admin Panel for The Support Team
Better Due Dates
Streamline Authentication with Google and Facebook
https://edraak.orgEducation
Bachelor's Degree in Information Security
Ural Federal University - Yekaterinburg, Russia
Skills
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 (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
Languages
Python, Python 3, Python 2, SQL, Bash, HTML, GraphQL, JavaScript, Dart, CSS, TypeScript
Frameworks
Django, Flask, OAuth 2, Flutter, Django REST Framework, JSON Web Tokens (JWT), Material UI, Cypress, Redux
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
Industry Expertise
Network Security
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
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring