Roman Petrov
Verified Expert in Engineering
Software Developer
Vancouver, BC, Canada
Toptal member since September 25, 2019
Romain is a software developer with 17 years of professional experience. He's worked with many languages and technologies throughout his career—this solid foundation in computer science helps him learn new ones quickly. Roman's current main specialization is mobile application development. As a developer, he likes clean code, good architecture, and challenging tasks.
Portfolio
Experience
Availability
Preferred Environment
Visual Studio Code (VS Code), Git, Android Studio, Xcode, MacOS
The most amazing...
...project I've worked on was a guitar training application where I developed a performance evaluation module.
Work Experience
iOS Developer
Patron Technology
- Supported the big mobile application with a lot of legacy code.
- Wrote the new Spotify SDK integration code.
- Suggested improvements for the onboarding process for the new team members.
- Upgraded one of the company's applications to Swift 5.
Team Leader
GXB Development
- Developed a robust and configurable Lua library for presenting tests.
- Implemented video calls on a web application.
- Helped with UX design of the main company project.
- Developed a collaborative whiteboard module in a mobile application using the Flutter framework.
- Built a chat module for a mobile application using the Flutter framework.
CTO
Omega-R
- Led a development team of up to 25 members.
- Created a real-time performance evaluation module for a guitar training mobile application.
- Developed an offline storage and synchronization module for an internal mobile app for a bank's top managers.
- Developed and maintained coding standards.
- Created detailed technical documentation for various projects.
Software Engineer
Team Force
- Developed a collection of arcade games for social networks.
- Worked on a mobile app for automatic emergency calls for the Blackberry platform.
- Developed different modules for a poker portal built with Drupal.
Experience
Acroplia
As a developer, I worked on various parts of the app:
• Implemented and fully covered with unit tests and a robust test passing library in Lua. The back end, iOS app, and Android app use this library.
• Developed the initial version of the test passing front-end code using React and Redux.
• Built a collaborative whiteboard module for the mobile application (Flutter).
• Created a chat module for the mobile app (Flutter).
As a team leader, I had the following responsibilities:
• Led a distributed team of developers (up to ten members).
• Managed project backlog.
• Helped to define project priorities.
• Helped with UX design.
• Participated in meetings with potential customers.
Guitarability (iPad App)
The module has two parts: timing analyzer and polyphonic pitch detector. The most challenging one was the pitch detector. The application had to recognize not only single notes but chords too. Polyphonic pitch detection is a difficult task; there’s no “one and only true way” to do it; there are no commercial-grade open-source implementations.
Another challenge was that my module had to work in real-time on the iPad. I managed to get a 600% performance boost compared to the first implementation, which couldn’t even work in real-time. This performance improvement allowed the addition of smooth animations and video recording. I achieved the performance boost mostly by math optimizations.
Pistol Instructor Marksmanship Program (iOS App)
I helped to redesign the UI of the application. The redesign focused on improved usability and increased retention rates. I also implemented a timing measurement module for different aspects of pistol shooting (used accelerometer data).
Make a Decision (iOS App)
I redesigned the UI of the app which significantly simplified the process of filling a decision matrix, which increased the app install and retention rate. I also implemented this new design version.
My911 (Mobile App)
App Features:
• Automatic calls to 911 in case of an emergency like falling or a car crash (used accelerometer to detect such events).
• Notifications about coming natural disasters based on a user's geographic position.
I led the development team and also redesigned the user interface of the app, which increased user retention and install rates.
Education
Master's Degree in Computer Science
Mari State Technical University - Yoshkar-Ola, Russia
Skills
Libraries/APIs
Web Audio API, React, Core Audio, WebGL, Core Animation, Alamofire, CocoaPods, Immutable.js, Facebook API, Core Graphics, Core Image, OpenGL ES, RxSwift, ShareKit
Tools
Xcode, Figma, Android Studio, Git, Sketch
Languages
Objective-C, Swift, JavaScript, Lua, Dart, HTML5, CSS, HTML, PHP, SCSS, Sass, Less, GLSL, TypeScript
Frameworks
Core Data, Flutter, UIKit, Defold, Accelerate, Redux, XCTest, Core Location, StoreKit, Cocoa Touch, React Native, Core Text, AudioUnit, Yii
Paradigms
Object-oriented Design (OOD), Agile Software Development, Unit Testing, Object-oriented Programming (OOP), Prototype-based OOP, Class-based OOP, Object-relational Mapping (ORM), Functional Programming, UX Design
Platforms
iOS, Web, Visual Studio Code (VS Code), J2ME, MacOS, Firebase, Android
Industry Expertise
Project Management
Storage
MySQL, PostgreSQL, Realm
Other
OOP Designs, RxDart, Team Management, Spotify, AVFoundation, Carthage, ShareDB
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