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