Portfolio

Other Short University Projects

PYTHON

Throughout my time at university I completed many assignments, a few of which can be seen on this portfolio website. However, there were some projects that were not visual enough or not detailed enough to include as their own projects, but nevertheless involved topics that are at the forefront of modern computer science and software development. For this reason, I have included a few of these projects here to show that I have experienced and learnt about these topics, under the knowledge that they are not professional or perfect pieces of work.

What I Learnt:
  • How to research and write about state-of-the-art technological advancements

Cloud Computing

December 2017

Cloud computing is one of the most important modern technologies that is promoting innovation on a larger scale than was possible before. As part of a university module, we studied the core concepts of Cloud Computing. Unfortunately, we were not able to use the technology, and instead were asked to write a report to advise a fictional company on what cloud-based solution to adopt, taking into account their business and technical needs. The question for the report was:

" You have been asked to advise a company that is interested in migrating its businesscritical infrastructure to the Cloud. With the help of academic and industrial literature/offerings discuss how such a deployment would need to be managed in terms of infrastructure and security. Assume a 24/7/365 operation, custom software stack, an infinitely scalable product and a variable demand load."

We were asked to discuss the following three points:

  • Infrastructure management, including deployment, scaling and different providers.
  • Security, including data management and protection.
  • The implication of new trends in cloud computing.

The final report submission is shown below:

Blockchain/Cryptocurrency

March 2019

Blockchain is a technology that rose to prominance due to popularity of some of the many cryptocurrencies it enables such as Bitcoin and Ethereum. As part of this module we studied the core concepts behind blockchains - namely hashing, cryptographic signatures, blocks and mining - under the context of analysing the structure of Bitcoin. Further to this we touched on surrounding topics including anonymity and lightning networks.

The assignment was designed to test our knowledge of how Bitcoin's blockchain, and the underlying technology, works and contained the following sections:

  • Create simple code to mine a block using Proof of Work (PoW): this is the method by which blocks, containing transactions, get added to the blockchain. In PoW this is achieved by a miner hashing the block: if this hash is below a certain target, the miner can add the block to the blockchain and receive the monetary reward for doing so. If the hash is not below the target, the miner will change a 'nonce' value in the block and repeat the process.
  • Create simple code to mine a block using Proof of Stake (PoS): this is similar to PoW, however the target value is dynamic and depends on the amount of coins the miner already has - the more coins, the easier the target. This was designed to alleviate some concerns with PoW; more detail can be found here.
  • Interact with a test bitcoin network, using blockcypher to add a transaction.
  • Interact with the same test bitcoin network to put a message on the blockchain using a burn transaction.
  • Write a report analysing a less well-known cryptocurrency.

For the final section, I chose to look at Dash. The report is shown here: