Projects
Aspect Based Sentiment Analysis (ABSA)
Oct - Dec 2018
Third Year Group Project
In investment banking, financial analysts must manually read through many articles in order to give informed advice on investment opportunities. Working in a group of 6 in contact with the Goldman Sachs Asset Management (GSAM) team, created a system to extract and store the sentiment of subjects of interest from financial articles, increasing the productivity of analysts by giving them quick and easy access to a rich database of information.
- Developed a rule-based NLP solution for the extraction and storage of entity-attribute pairs with their calculated sentiment using Python.
- Showcased the solution by building a demo application with a RESTful Python backend and React frontend, and presented this as part of a group presentation.
Lembas
Jun 2018
WebApps Group Project
Unbalanced diets are a major problem in the UK and learning about proper nutrition can be a daunting task for someone wanting to make a change. In a group of four, created a meal planning web application with a focus accurate nutritional statistics and meal plan sharing between knowledgeable and less knowledgeable people. Those less knowledgeable can thus easily find meal plans which match government recommended guidelines or their own custom goals, helping them on their journey to a healthier lifestyle.
- Developed a full stack React/Node/PostgreSQL web application, using weekly Agile development iterations to ensure core features were added in a timely fashion.
- Implemented human-centered-design techniques including user stories, and micro-iterations for UX design from demoing and surveying potential users.
PintOS
Jan - Mar 2018
Operating Systems Group Project
Starting from a barebones skeleton, built a fully functional CLI operating system in a group of four, in conjunction with the Operating Systems module at university.
- Implemented multithreaded behaviour, with both priority donation and MLFQS capabilities.
- Supported user programs by implementing thread-safe interface of functions to the user.
- Used the second-chance algorithm to support paging for memory management.
WACC
Oct - Dec 2017
Compilers Group Project
Created a compiler for WACC, a simple language with C/ALGOL 68-like syntax, in a group of four. WACC programs were input, translating the source code into ARM11 assembly instructions.
- Specified a context-free grammar for use with ANTLR to build a parse tree.
- Made thorough use of functional programming capabilities provided by Kotlin to build and verify an abstract syntax tree.
- Implemented type inference as an extension.
Queen’s Tower Climb
Jun 2017
C Group Project Extension
Produced a game for the Raspberry Pi in a group of four and taking input from an NES controller, based on the traversal of the tiles of a randomly generated map to find the unique Hamiltonian path.
- Won Most Interesting Extension prize.
- Awarded a prize by Raspberry Pi representatives after presentation.
- Personally demonstrated the project to prospective students at an Imperial College open day.
ARM11 Emulator and Assembler
Jun 2017
C Group Project
In a group of four wrote an emulator, taking binary instructions and changing the simulated registers and memory accordingly, and an assembler, taking assembly instructions and translating them into binary, for the ARM11 architecture.
- Used an explicit fetch-execute cycle to fully represent the status of the program counter at each point.
- Implemented a linked-list to ensure the binary instructions were written in the correct order.