Professional Experience

For my 2023 Summer Internship at HalalBooking, I was tasked with developing a tool to assist translators.

Translation is one of the most time intensive tasks at the company. As such, if it could be at least partially automated, it would potentially off-load a lot of work from the translators.

I ultimately chose to create a custom machine translation model that would use the company terminology. This tool had to be delivered as an end-to-end solution; with a back-end API and front-end integration with the intranet.

Initially, the focus of the project was to develop two different capabilities:

  • Stage One entailed using a generic translation aid with company terminology presented within a dictionary.

  • Stage Two involved incorporating company terminology into a translation aid using Machine Learning.

I explored a number of different options, including complete localisation packages, generic translation services and cloud translation services. Eventually, the most cost effective solution would be to use Google’s AutoML service integrated with their Cloud Translation API, which would limit disruption on the company’s servers and allow me to focus my efforts on compiling data and integrating the tool.

Initial Planning Stage

For Google’s AutoML to train a model, I needed to compile a database of language airs for all 5 additional languages the company uses as well as english. Luckily, all previous company translations did exist as seperate datasets, I managed to merge them together using the english text but it was still a very messy dataset.

As the dataset had over 10,000 entries to it, I initally tried to automate a filtering system, removing entries that generic code variable names and were not considered sentences by an external grammer checker. When I ran the model on this first set of data, the messy data unfortunately affected the model accuracy in an unacceptable manner. I ended up having to skim through the entire dataset in order to remove unsuitable entries. This second version yielded far better results.

Compiling the Dataset

As Python is my primary coding language, I developed the first version of this program within it. I was asked not to use any of the prexisting Google libraries and make only HTTP POST and GET requests instead. While this turned out to be a major obstacle, despite support from programmers within the company, we finally got it translating company code generically.

Now that a simple proof of concept has been shown, I would need to integrate this functionality into the back-end of the company. For this, I would have to recode the program into Ruby, a language I had little experience in at the time. After being drilled on how to use GitHub in a development environment, I recoded the program and integrated it into the back-end. The tool now just needed to be integrated into the front-end to achieve initial functionality.

Initial Prototype

Google’s AutoML service automatically trains models for you to use in your API call to Google’s Cloud Translation Service. While the machine learning service was useful in that I did not have to build a machine learning model myself, the real strength came in its ability to combine models with its generic Google translation service, making it more adaptable for all translations.

Unfortunately, the model’s accuracy was not the same for all languages. Arabic in particular was not considered very accurate by Google’s own BLEU (Bilingual Evaluation Understudy) score and further testing with translators confirmed this. In the inital research done, it was shown that some translation models work better for arabic than others. In the future, multiple services may be used to compensate for deficiencies present in one service.

Generating Models

To integrate Google’s AutoML models with a Translation API request, Google needs to authenticate credentials first. This is usually done with a Google library so as to expedite the development of the program, a simple API key was used instead initally. This was later changed as API keys are less secure than temporary access tokens.

Integration with the front-end was very difficult as I had never used Javascript before, much less within a development environment. I eventually managed to get a simple button working that took the translators text from the input box and communicated with the back-end program to get a translation from the custom model and place it in the output box.

Implenting Front-End with custom models

At the end of my internship, I had successfully developed a translation tool that used the company language within its translation. The translation accuracy was high but not perfect as is often the case with machine learning.

As a result, there was a worry that translators would simply auto-translate without checking the program’s output. In addition, the HTTP response from Google was very slow for custom models, rather unexpectedly. The program therefore is mainly used with large bodies of text and those with a lower priority.

Nevertheless, this was a very rewarding experience and took my coding skills and knowledge to the next level. I gained basic insight into network code and front-end development, including UI and hope to be able to take on similar challenges in my professional career.

Other Work Experiences

  • HalalBooking - Technical Assistant for Summer 2021

    Produced SQL Queries and Visualisations for all departments. Oversaw the translation process of different pages of website. Communicated clearly to translators what was required.

  • Schlumberger - Special Information Solutions (SIS), Week Work Experience in 2019

    Researched and prepared a report on the potential of a scientific drilling mission. Consulted with professionals in the field and outside of the company to obtain key opinion about the project. Discussed its feasibility with engineers at Schlumberger. Was shown ongoing IT projects at SIS; a department combing engineering and IT skills to create bespoke software solutions to help ongoing drilling projects around the world.

  • Barnardo's - Shop Assistant during 2016 - 2017

    Volunteer work requiring me taking inventory as well as processing new stock and communicating to customers.

  • Moon Tuition - Tuition Assistant during 2015 - 2016

    Worked in Tutoring specialising for 11+ entry exams. Marked homework and provided advice and assistance to pupils as well as teachers in Maths, English, Verbal Reasoning and Non-Verbal Reasoning.