Delphi used to produce stylish native desktop applications, and to cross-platform develop native iOS and Android apps.
Experience with Node.js as part of the backend, and with frontend frameworks, such as jQuery, Angular.js, and React.js.
Used HTML5 and CSS3 to develop the frontend of responsive web apps.
Exposure to writing PHP scripts for the backend, and generating dynamic pages.
Acquaintance with Java, being the language taught on the University of Warwick's Computer Science course.
Usage of C, from low-level electronics, to network packet analysis applications.
Functional top-down application design and implementation, with Haskell.
Proficiency with common command line tools, and writing bash scripts.
Understanding of the PostgreSQL, MySQL, SQLite3, and Oracle DBMS, and normalised database design. Basic proficiency in SQL.
Designed and built microcontroller-oriented PCBs. Programmed PICs in Assembly. Have an understanding of electronics.
Enjoy investigating and highlighting weaknesses in security, and have a strong understanding of the operation of malware.
Able to prepare concise documentation that provides a clear understanding of the operation of a system.
My academic subjects and results
Currently a second year, studying Computer Science at the University of Warwick
|Module Code||Module Name||Result|
|CS126||Design of Information Structures||90|
|CS131||Mathematics for Computer Scientists II||82|
|CS118||Programming for Computer Scientists||78|
|CS139||Web Development Technologies||73|
|CS132||Computer Organisation & Architecture||72|
|CS130||Mathematics for Computer Scientists I||60|
|Total Average||First Class||76.9|
|Module Code||Module Name||Result|
|CS260||Algorithms||Exam to be taken|
|CS258||Database Systems||Exam to be taken|
|CS241||Operating System and Computer Networks||Exam to be taken|
|CS256||Function Programming||Exam to be taken|
|CS262||Logic and Verification||Exam to be taken|
|CS259||Formal Languages||Exam to be taken|
|CS257||Advanced Computer Architecture||Exam to be taken|
|CS247||Group Software Development Project||To be taken|
Attended Merchant Taylors' School from 2010 to 2015, with 10A*s at GCSE, 4As at AS level, A*A*A*AB at A2 level.
|Extended Project Qualification||AQA||2015||A*|
|Electronic Products GCSE||AQA||2013||A*|
|English Literature IGCSE||CIE||2013||A*|
|English Language IGCSE||CIE||2013||A*|
|Physics IGCSE (Triple Award)||Edexcel||2013||A*|
|Chemistry IGCSE (Triple Award)||Edexcel||2013||A*|
|Biology IGCSE (Triple Award)||Edexcel||2013||A*|
|Additional Maths FMSQ||OCR||2013||A (Highest)|
|French Diploma||Institute of Linguists||2013||Distinction|
A selection of my recent projects, and accompanying documentation.
As part of my Extended Project Qualification (EPQ) during my A-levels, I spent one and a half years researching` and developing an automated Bitcoin trader. On discovering that it was a tradeable commodity via online Bitcoin exchanges, a bulk of my research related to trading methods based on the historical trend of the price of a Bitcoin.
The project was able to trade, using live data from the exchange, and did indeed make a profit in most conditions, depending on the strategy it was set to.
A fully-referenced report was produced, such that the layman to Bitcoin and technology could understand this, as well as a research diary.
I presented the project to various members of the general public, during a 3-hour presentation evening, where I provided a live demo and answered questions.
Backend - Node.js + PostgreSQL
Frontend - Angular.js + Bootstrap
My school deployed Minecraft across all of the IT labs. Unfortunately, this led to issues such as labs becoming unusable for work, unmonitored communications, and a manual deployment of files every-time an update was required.
So, my COMP4 project for A2 Computing tackled this issues and produced a fully-fledged Minecraft launcher, depending on the current end-user:
Teacher/Administrator: View users, set time quotas, ban users, change aliases, review sent in-game messages, receive requests from users, deploy new installations/mods easily, and create/restore installation backups.
Students/Users: Launch Minecraft, seamlessly receive updates, time-counter overlay, request username change, and request additions to the Minecraft installation.
The user guide explains how to access and use the launcher to both target audiences, and the project documentation contains a systems analysis, systems design, code snippets, and testing.
Backend - MySQL + Apache
Application - Delphi (Firemonkey) + Windows API
The app aims to provide some standard todo list features, such as multiple lists, shared lists, and item manipulation. But it also has social login, geo-located items, attachments, and features a horizontal scroll.
Why create another todo list app? This was a project as part of Warwick's CS139 web-development technologies module, and I've decided to use it to create something sleek, and experience building a complete web app in a very short development cycle, using a limited set of technologies.
Backend - PHP + SQLite3
Frontend - HTML5 + CSS3 + jQuery
Often, residential camps for activities or communties are run by Excel spreadsheets, or Access databases. This system was written such that the organisers who approached me would have a fluent process for tracking the helpers, campers, camps, and groups.
Camps can be created, and then configured. For example, you can add trips and groups to a camp.
Groups: group will have an age range and optionally may be limited to a specific sex. When campers are added to the camp/sign up, they are automatically allocated to the correct group. A PDF generation feature is able to produce a printable list of campers in a certain group.
Campers and Guardians: Campers generally have a guardian assigned to them, who manages payments for their activities, and provides contact details for the camper. The camper's profile picture can be uploaded and displayed.
Trips: The organiser can add a camp trip and specify a cost. A list of the campers who sign up to the trip are downloadable in a printable PDF.
Backend - Node.js + PostgreSQL
Frontend - React.js + Semantic-UI
During the Young Rewired State Festival of Code 2015 hackathon, our team produced an app that simply connects people who have an activity they'd like to do, but no one to do it with. Perhaps they're new to town, or want to try something new.
Envolve presents them with a simple page, where they fill in the activity, their number, optionally select the maximum distance they wish to travel, and submit. Envolve will send them an SMS when one or more people wish to do the same activity, and provide them with a link to view, and accept/reject them.
It was important to add some safety precautions to such a service - as such, one can only login to the service with their Facebook account, and would then match the users to an appropriate age range.
Backend - Node.js + PostgreSQL
Frontend - Bootstrap + jQuery
The time the sun sets varies throughout the year. Or perhaps you are a visitor in a foreign country.
Before Dark is single page web app uses your location to calculate the time the sun sets, and will then text you at the predefined and configurable intervals before the sun sets that day.
We created this as part of the Young Rewired State Festival of Code 2014, and were nominated for the best in show award, reaching the semi-finals.
The Google Maps API and HTML5 were used to reverse-geolocate the user, and calculate the sunset based on the longitude and latitude of the user. The Twilio API was then used to send out SMS messages to the number before the sun set.
Backend - PHP + MySQL
Frontend - CSS3 + HTML5 + jQuery
The client onboarding process in banks and financial institutions is often spreadsheet-based, and cluttered.
This program was built to encapsulate all stages of the onboarding process, and provide user access control including custom groups and permissions, an audit trail, PDF report generation of the client, and a login system.
A systems analysis, design, and testing documentation was produced, as well as technical documentation.
This project was produced as a prototype for Wells Fargo.
Application - Delphi
Morgan Stanley's Technology Spring Insight Programme provided a 3 day overview of technology in an investment bank. There were several shadowing opportunities, to understand how software development and infrastructure were critical in supporting the day-to-day operations, and ensuring that the bank kept inline with regulatory requirements. The insight also provided an experience of the company culture, and networking with senior firm employees to gain a deeper understanding of careers.
A week was spent as a data analyst, with the chance to experiment the visualization of “big data” – submitted by their customers, some corporations as huge as Unilever. These were manipulated with SQL queries, and were then inserted into Tableau (a visualization tool). The significance of formalizing huge amounts of data quickly became apparent to me as trends and links appeared between geographical regions and products once the data had been visualized.
Though only a 2 day insight opportunity, I was able to learn about the structure of an IT company and its operation from a world-renowned solution provider. I was initially surprised that in fact Oracle employ more salesmen than anything else, and that this is true of most IT companies, as well as support making a huge contribution to revenue. Interestingly, I had the chance to discuss issues and the roles of the security/ethical hacking team, who were able to reaffirm my suspicions about security in general, and introduce me to the difficulties and necessity of the large scale security operation.
BP gave me an opportunity to experience the role of IT as a secondary function in a company which gains its competitive edge through technology over one and a half weeks. I was fortunate enough to visit their offices in Sunbury, Stockley Park, and Canary Wharf, where I was even given an insight into operations at the data centre. It was particularly exciting to experience new technology being developed for innovative uses, and certainly opened my mind up to the possibilities and importance of IT in businesses that I had previously dismissed, such as the widespread use of an internal social network, and the implications and issues this may have.
The company gave an outlook over the whole finance sector and roles during the week in the morning sessions – from trading to administration. In the afternoon, I spent time completing and refining a software prototype that I had designed for them. This will be used as a basis to replace the excel-based process used when the company carries out the compliance and risk assessment processes when onboarding new clients. The company is planning to purchase the software.
I worked as part of the technical support team for Europe, and participated in the various roles involved in providing support such as asset management, rapidly deploying systems, and soon discovered the importance of being prepared for undesirable situations. The company suffered from a virus infection, and I was able to remove the virus from and clean the source computer, which no antivirus or member of the team could achieve at the time.