Svet Angelov
Verified Expert in Engineering
Software Developer
Svet may only have 3 years of experience but thanks to his enthusiasm and can-do attitude, he quickly excels in his career. He joined The Pro's Closet when they were only selling on eBay and buying a few bikes. Through a lot of innovation, creativity, and close work with the other teams, Svet, along with his team have created internal systems which save the company thousands of hours in labor, supporting growth trending at 60% year-over-year.
Portfolio
Experience
Availability
Preferred Environment
MySQL Workbench, Git, Visual Studio Code (VS Code), MacOS, Linux
The most amazing...
...thing I've created was an internal app that helps TPC's employees with their tasks, saving an estimated 2,000 man-hours annually in labor.
Work Experience
Software Architect
The Pro's Closet
- Implemented a tool which auto-generates SKUs, customers, and POs from submission information (saves thousands of man hours for our purchasing team).
- Launched, maintain and improve the website www.theproscloset.com.
- Designed and launched a partner bike trading tool which allows customers to sell their bikes to TPC via a partner website (REI, Pivot Cycles, QBP, more to come).
- Implemented a tool which allows customers to save the filters they are currently looking at in order to receive email updates when new products matching the criteria are added to the site.
- Implemented a tool which auto uploads images from photographer computers to Channel Advisor.
- Implemented a tool which uses machine learning in order to find sold bikes which are most like a given bike to save purchasers time in researching a product.
- Deployed all of our services and apps in AWS.
- Wrote scripts that collect data from all of our third-party systems in order to create reports and other internal tools.
Senior Software Engineer
Fresenius Kabi
- Switched authentication from IIS Windows authentication to Microsoft Identity which provided a lot more flexibility with logouts, timeouts and working with multiple tabs.
- Implemented a driver from scratch for one of our legacy devices which uses ASTM protocol for communication, and cleverly made it read asynchronously from a TCP stream (not supported by .NET out of the box).
- Greatly reduced resource consumption of our system by using asynchronous programming and caching.
- Reduced the coupling between queues and messages when using RabbitMQ so the interface is a lot more reusable and friendly.
- Implemented React into our MVC application in order to create complex charts more easily than with jQuery.
Software Engineering Intern
Motorola Solutions
- Created a Wireshark Dissector for Google's Protocol buffers.
- Loaded shared libs at run-time to be able to swap Protobuf Messages dynamically (prevent recompiling).
- Parsed config files to find resources at run-time (prevent recompiling).
- Used preprocessor code in order to make the dissector compatible with Win and Linux under one source.
- Wrote installation scripts in Python.
Experience
Drivetrain
It starts with purchasing it from a customer via online submission, giving our purchasers the ability to make offers, see history, generate shipping labels and complete a submission upon arrival, automatically generating a SKU, a vendor and a PO for that purchase.
It also provides the operations department with an interface for the inspecting mechanics to evaluate the condition of a bicycle, the servicing mechanics with a screen to service it based on the inspection, the photo department with the ability to automatically upload photos, and it helps the posting department by automatically injecting known data and notes into the catalog. Meanwhile, it creates events for every touch-point, allowing us to create reports and dashboards.
Drivetrain also helps our accounting department by showing which POs need to be paid, and gives the option for bulk payouts. I designed and developed Drivetrain from scratch along with the help of my co-worker who is the front-end developer.
The Pro's Closet
http://www.theproscloset.comAdditionally, we have built a custom page for the customer to submit their bikes and thanks to the automation provided by Drivetrain, our internal system, a few buyers are able to process around 1,000 submissions per week.
Lastly, the account page provides customers with the ability to check the status of their submissions, and accept or decline their offers. Also, CPO customers can see their bike's buy-back value and start the submission process.
My role was to collect, store and retrieve the data needed for these processes, as well as to write the REST API.
Apheresis Portal
The system establishes 2-way communication with devices in order to monitors live data about currently running procedures and to send patient's data to devices to get them set up for a new procedure.
It also sends webhooks to subscribed servers/listeners when events happen, allowing hospitals to subscribe to their own internal systems.
The portal was broken down into sections, with roles and permissions allowing different users access to resources based on their privileges. I started with Fresenius in the middle of the project lifecycle but found many opportunities for improvement such as using asynchronous programming in order to reduce resources and improve performance, add local and AD authentication, and even wrote a driver to support one of the legacy devices. I came up with a clever way to communicate with the device increasing the possible concurrent connections from 10 (on the old system) to a few thousand.
Asynchronous Stream Reader
In this approach, I utilized a background thread from the thread pool, initiated with Task.Run, to continuously read from the Stream. The received data is then stored in a queue. When the application layer needs to read data, it checks the queue. If the queue is empty, a semaphore is used to initiate a 15-second timeout wait.
To ensure synchronization between the threads, the background thread uses Release() to signal the application thread whenever it writes data to the queue. This allows the application thread to recheck the queue. If data is present, it can be processed; otherwise, the thread returns due to the timeout.
Skills
Languages
JavaScript, SQL, C#, Python, C++, C, Java
Libraries/APIs
Node.js, React, Log4Net
Paradigms
Asynchronous Programming, Agile, Model View Controller (MVC)
Other
Front-end Development, OOP Designs, MVC Frameworks, Transmission Control Protocol (TCP)
Frameworks
Express.js, ASP.NET
Tools
Amazon EBS, Git, Logging, MySQL Workbench, RabbitMQ
Platforms
Linux, MacOS, Shopify, Amazon Web Services (AWS), Visual Studio Code (VS Code)
Storage
Amazon S3 (AWS S3), MySQL
Education
Bachelor's Degree in Computer Science
University Of Illinois - Chicago - Chicago, IL
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