SteelEye develops a monitoring and reporting platform dedicated to assist financial organisations in enforcing trade regulations internally and report their activities to the market regulators.
SteelEye is a young company that tries to make the best of the latest technology and frameworks. The stack I worked with consisted of:
My role with SteelEye consisted in developing and maintaining the back-end APIs and services that query and supply the information to the company's ReactJS front-end. SteelEye handles very large amounts of customer's trading and communication data into their Elasticsearch back-end, and this makes the queries run by the API endpoints challenging.
During the start of my role at SteelEye, the company was using a monolithic API that ran synchronously atop gunicorn despite making use of FastAPI. It was running in a Docker-based environment, with a number of gunicorn worker for each container. This setup was at the origin of a multitude of scaling issues and led to high development and running costs.
An effort to split the API into micro-services was started, and I addressed the performance issues of the existing and new micro-services by migrating their code from synchronous Python to asynchronous; where the best advantage of FastAPI and uvicorn could be garnered. These efforts resulted in lower running costs and simpler development, while increasing the product's reliability.
SteelEye went through an impressive growth as I was working in that position and that translated into expanding the development team. As a senior developer I was given the opportunity to mentor two graduate developers and guide them through the development best practices and processes of the company.
This was vary valuable in revealing the issues in SteelEye's
development setup and process, which led me to suggest then implement
changes to the git
workflow and the technical specification process
used in the development team.