Remi Bahar

Slough, UK

Remi Bahar profile

Hi, I'm Remi. I'm a MSc Computer Science graduate with a passion for technology. Currently I'm developing enterprise web-applications using Spring-Boot and React at Lloyds Banking group.

My career aspiration is to make an impact as a back-end software engineer working on highly scalable, reliable systems.

Please check out my projects and experience below.

Key Experience & Skills

Experience Duties
Software Engineering Graduate @ Lloyds Banking Group, London - Sep 2022 to Present
  • Gained experience in developing enterprise applications by developing a Spring-Boot API and React front-end
  • Used TDD to develop a fault-tolerant pipeline microservice to persist messages from a Message Queue
  • Gained experience in CI/CD by using a Jenkins pipeline and UCD
  • Improved collaboration skills, by working to integrate my code into an existing codebase and working across teams to deliver projects
Test Engineer @ Comxo, Slough - Feb 2022 to Sep 2022
  • Wrote detailed test cases and performed end-to-end testing of Comxo mobile app on iOS
  • Worked alongside developers to diagnose and fix defects
MSc Computer Science @ Queen Mary University of London - Sep 2021 to Aug 2022
  • Developed networking knowledge studying Distributed Systems, Cloud Computing, and Computer Architecture and Networks
  • Undertook numerous projects including an industrial dissertation project with cmd Consulting GmbH
BSc Physics @ University of Birmingham - Sep 2018 to July 2021
  • Developed a strong base in problem-solving and Mathematics
  • Applied python to a variety of problems including applying reinforcement learning to a simulation of a person on a swing
Web Developer @ Comfort Care Services - Aug 2017 to Sep 2018
  • Developed background in software engineering developing CRUD web-applications using the LAMP stack

Projects

Microservice @ cmd Consulting GmbH - Summer 2022
System architecture

For my MSc Computer science dissertation project, I worked with a German company on an industrial project. The project involved driving healthcare digitalisation by developing a proof-of-concept microservice-based healthcare management system. The system was based on the gateway API pattern. It focused on increasing healthcare integration by increasing interoperability and encouraging adoption through being GDPR-compliant and easier for healthcare providers to implement.

Features

  • Gateway: implemented authentication using JWTs and a IAM service
  • Gateway: redirected user requests to a secure controller and then to patient service
  • Patient: decrypted JWT and applied custom authorisation
  • Used Apache Olingo and JPA (ORM) to automatically create API routes and handle database transactions using the data model
  • Implemented 70+ automated functional tests, covering the entire process from user to gateway to patient and back

Thoughts

Whereas my previous projects focused on particular parts of a software system, this project proved a challenge in requiring me to consider everything from authentication/authorisation, to automated testing, and desiging a microservice-based system. I was exposed to Java, Maven, and Spring-Boot (Security, Hibernate, Envers). Overall, I feel like the project was a success. I developed a core gateway service and patient service that can be extended by integrating additional services with the gateway. The generic testing methods, JPA, and Olingo make creating a new service easy. Alternatively, the decoupling between microservices mean an API built with entirely different technologies can be integrated.

Distributed processing of matrix calculations using Google Cloud @ Queen Mary University of London - March 2022
Developed a system to perform matrix calculations using a REST gRPC client and 8 distributed gRPC servers in Google Cloud. The system was able to multiply 2 1000x1000 matrices in 20s using 1 server and 6s using 8 servers, representing a performance increase of over 300%.

Features

  • Implemented REST service using Node + Express to handle uploading matrices as files, matrix multiplication, and addition.
  • gRPC client used for the REST service and gRPC server used to perform matrix calculations.
  • Deadline based scaling function used to determine how many servers should be used to perform the matrix calculation.
  • gRPC load-balancing used to distribute matrix calculations amongst up to 8 servers.
  • Promises and callbacks used to handle asynchronous requests to gRPC server

Thoughts

This project taught me a lot about more advanced back-end technologies such as REST architecture and gRPC. The main challenges was load balancing which was done by splitting the columns of the second matrix2 amongst the gRPC servers and making a single call to multiply matrix1 with a smaller subset of matrix2. This project also introduced me to asynchronous programming, as promises and callbacks were used to wait until all 8 servers had finished before displaying the results to the user. This is something that node.js was particularly suited for.

Haskell Social Network simulation @ Queen Mary University of London - Jan 2022

Developed a simulation of a social network in Haskell, where at random times a user will send a random message to a random user. This is implemented using Haskell's Control.Concurrent libary, each user is simulated using a thread. Each user's information, including their messages is stored as an element of the users MVar. Haskell record types for user and message are also used.

This project introduced me to advanced programming topics (concurrency and parallelism). The importance of choosing the right data structure was seen storing users in a sequence instead of a linked-list which increased performance by 10x.

Twitter API App @ Queen Mary University of London - Nov 2021

Developed a command-line app that connects to the twitter api and allows users to search for tweets. In the demo above, the following steps are occuring:

  1. User searches for tweets using twitter api
  2. User input is validated. Error messages are displayed for invalid user input or http errors.
  3. Returned tweets and users are converted into Haskell record objects using parse.hs
  4. Each tweet and corresponding user are inserted into the sqlite database
  5. Data from sqlite database is parsed to a Haskell record object containing both tweet and user fields
  6. The converted data is saved to a json file

This project introduced me to working with a REST api. Interacting with a sqlite database in Haskell, proved more difficult than in PHP and MySQL as an extra step of parsing data was required.

Teaching a simulated person how to swing with reinforcement learning @ University of Birmingham - 2021

Final year physics group project which involved using reinforcement learning to investigate the most efficient way of driving a swing. My role in the simulation sub-group involved developing a simulation of a swing-person system that was controlled using motors and followed the same joint angular constraints as a human. A genetic algorithm was to be applied to this simulation.

This project exposed me to managing development projects in larger teams using tools such as GitHub.

Python Forest Fire simulation @ University of Birmingham - 2020

Final year physics individual project which involved developing a simulation of the Drossel-Schwabel forest fire model to investigate scale-invariance and self-organised criticality. This project introduced me to the importance of algorithms, as cluster labelling was implmented via the Hosehen-Kopelman algorithm an implementation of the union-find algorithm.

QA Audit System @ Comfort Care Services - 2018

Developed an online QA Audit system when working as a Web Developer at Comfort Care services. Led the project through the full software development lifecycle and worked closely with the users of the system to gather feedback. This led to a final system being developed which saved Auditors several hours a week. I also colloborated with another developer to build a HR Audit system using the QA Audit system as a foundation.

The application had the following functionality:

  • CRUD functionality
  • Automatic email alerts depending on Audit status
  • Row-level security depending on employee job title, work location, etc
  • Colloboration through email messaging section, file uploads, and delegating other employees to an audit finding
  • Automatically generated, drilldown reports

Python technical analysis @ Personal - 2020
Stock technical analysis

Developed python program to automate performing technical analysis on stocks using the EMA, MACD, OBV, RSI and Bollinger band indicators. Data was obtained from the yahoo finance api and written to an Excel spreadsheet for further analysis.

Want to work together?