Oblek
September 2022 - September 2023
These are the most relevant projects I took on at Oblek:
Migration of codebase from OracleDB to MySQL
When I joined Oblek, the whole codebase of the company was being migrated to MySQL. I was tasked with migrating several applications, including the primary one, a PHP + JavaScript application heavily reliant on OracleDB's syntax and features. Much of the code wasn't documented, so we needed to reverse engineer and document the code to understand what it did and how it did it, so our changes wouldn't affect the functionality of the many apps we were migrating.
Full-text database search optimization
One of the problems that arose from the migration was the incompatible syntax between OracleDB and MySQL for full-text search. OracleDB
uses CONTAINS
, which doesn't work in MySQL. This resulted in an urgent need to find a way to perform heavy keyword searches in MySQL, because
the whole company's processes relied on it. I took on the task, and after some research, I found a way to perform full-text searches in MySQL
and implemented it, after conducting proof of concept, testing, and documenting the process. We also needed to tweak the database configuration, including
indexes and other parameters, to make the searches efficient and useful for our applications
Development of a Speech-To-Text Radio and TV Transcription System
This is by far the most challenging and interesting project I took on in my professional career. The project consisted of developing a system that would transcribe hundreds of hours of radio and TV recordings into text in real time, and then index them in a database so they could be searched by keywords. The system was developed in Python, using the Vosk library for speech recognition, MySQL for the database, and React for the frontend.
The interesting part of this project was the use of a free and open source speech recognition library, Vosk, in a way that would allow us to transcribe hundreds of hours of audio in real time and with the minimum amount of resources. I designed an algorithm based on concurrency, with many different "transcriber" servers communicating with a central server that would manage all the data.
Other Responsibilities
- Maintenance of PHP + JavaScript applications
- Designing databases for new features and applications
- Code refactoring and migration of outdated technologies
- Stripe integration for payment processing
- Designing and developing the architecture of new applications based on functional requirements and interface prototypes