Hi, my name is Peter Reid and I am a young programmer from just outside Belfast, Northern Ireland.
I have a passion for all things computing related; with a particular focus on computer programming. I have programming experience in a variety of different languages - you can find out more about my programming experience below.
My particular focus at present in software development is on the 'Web' and 'Mobile'; with the intention of improving my skills in these areas by developing applications/sites.
I am currently studying a Foundation Degree in Software Engineering at Belfast Metropolitan College in conjunction with Ulster University. I hope to progress to study Software Engineering at university beginning 2016.
I have experience in a variety of programming languages:
In the immediate future I am looking to expand my knowledge of programming languages to include both PHP and Ruby
I have accumulated a number of technical skills that can be utilised in my programming. These are:
I have a large amount of experience in the use of Java for the development of desktop applications.
A large amount of this experience was acquired during my education, however parts of my knowledge were acquired through my own research.
In future, I am looking to further develop my Java skills and knowledge by developing Android applications.
My first experiences of object oriented programming originate from my use of Java. I have utilized OOP to develop a number of applications in Java both on a personal basis and on an academic basis.
I have developed a number of applications using Java Swing to build the GUIs for these applications on both a personal and academic basis. In future I hope to utilise JavaFX in applications to expand my knowledge of GUI development in Java.
My experience of C# stems from my use of C# as a part of ASP.NET websites during my education. In future I hope to expand my knowledge of C# to the use of C# for both 'traditional' Windows desktop applications and Windows 10 'universal' applications.
I have utilised C# along with ASP.NET Web Forms to develop an 'ecommerce' site with a basic content management system. I utilised C# to load content into the page dynamically based upon an external data source. I also utilised C# to develop a 'cart' system for the site. The appearance of the pages was kept uniform using Master Pages.
I have utilised bash to 'automate' a number of systems on both my Linux server and laptop. While Bash may not necessarily be viewed as a 'programming' language, the automated systems that it is enabled me to develop have been extremely useful.
One of my earliest uses of Bash was to develop a dynamically generated 'Message of the Day' script for my Linux server. I wanted a means by which I could easily view the 'health' of the system when logging in over SSH; as such I developed a script that displayed information such as the disk and CPU usage of the system when logging in.
The script is open sourced under the MIT license and can be found on GitHub.
I have utilized bash scripting to automate processes that are completed when building a project using my Jenkins build server. I have written a number of different scripts to automate tasks such as: generating Javadoc documentation for each branch of a git repository and copy them to a web-accessible directory and automatically 'mirroring' a git repository to another remote server when a build is triggered.
I have a large amount of experience in CSS, and both HTML5 and XHTML which I have accumulated from a number of projects in my academic and non-academic work. The majority of my experience is in developing websites, however I do have experience in developing Windows 8 applications with web technologies.
I have utilised a number of different front-end frameworks to develop a number of sites. I have recently been using Materialize to develop websites that are designed with Google's 'Material Design' design languages in mind. I have also used Bootstrap versions 2 and 3 in the past.
I am experienced in designing websites that provide a excellent user experience on any device. I have experience in this both with the use of a design framework and without one.
I have utilised ASP.NET (C#) to develop dynamic websites where the content changes dependent on the user. I am aiming to expand my knowledge of web development to include PHP and NodeJS in the future.
I have experience in utilising 'templates' to simplify the development of sites, I have experience in doing this in both ASP.NET(C#) and PHP.
I have had approximately six years of experience in amateur graphic design using Adobe Photoshop. I also have experience in the use of GIMP.
I have created graphics for digital media on numerous occasions; for use in websites and desktop applications. I have experience in creating 'pleasing' graphics that form part of an intuitive user interface. I have some experience in vector graphic design using InkScape to design the logo/icon for this website.
While I have less experience in designing for physical media than I do for digital media; I do have experience in designing for physical media. I am aware of the various different requirements for designing for physical media as opposed to for digital media.
I have been using version control with all my work since 2013, I'm particularly experienced in Git - however, I do have experience in Subversion also.
I have been using Git version control ever since my work placement in 2013, I am familiar with the strengths and weaknesses of Git and other Distributed Version Control Systems. I have experience both as a user of Git and as an administrator of a Git version control server. I store all of my academic work in Git repositories, and all of my personal projects are also stored in git.
During my Foundation Degree I assisted teaching staff in the use and documentation of Git for tracking group projects - this allowed teaching staff to track how much each student contributed towards the group project and also empowered easier collaboration between team members.
Although I am mainly experienced in Git, I do have experience in Centralised Version Systems; in particular Subversion. I have done some work in Subversion so that I am familiar with the core concepts in relation to Subversion and other centralised version control systems.
I have experience in a variety of IDEs and a variety of other developer tools.
I have a large amount of experience in the following IDEs:
I also have some experience in the following IDEs:
I have experience in a variety of development tools aside from IDEs. Firstly, I have experience in the following Source Control products:
I have experience in the design and development of relational database systems from my education. I have designed multiple databases and implemented them as part of academic projects.
I have experience in designing database systems for both SQL and MS Access. In designing databases I utilize a multiple step approach, with steps such as requirements analysis, E-R diagram creation, Logical database design and physical database design.
I have experience in both 'implementing' my designed databases through SQL scripting and also in using SQL to 'access' a database from both Java applications and C# (ASP.NET) web applications. I am experienced in both Microsoft SQL and MySQL.
While Microsoft Access is not often deployed in an enterprise environment, I have extensive experience in developing database applications with it. The skills I have learnt from my use of MS Access are easily transferable to other solutions.
I have experience in the use of Linux both on the server and the desktop; the most of my experience is in Debian based distributions, however I do also have some experience in using Red Hat based distributions.
I have experience in administrating my own Linux server - running Debian Stable. I use my server to provide a variety of self-hosted services to myself and others, including:
I also have experience in using Linux as a desktop operating system. My current distro of choice is Elementary OS Freya (based upon Ubuntu 14.04); although I have experience in other Ubuntu derivatives and with Fedora Desktop.
I have experience in using GNOME 3 based (GNOME 3.x, Pantheon, Cinnamon & Unity) and MATE desktop environments. I am also looking to try out KDE in the future.
I have experience in a number of different development methodologies, this is experience that I have accumulated both through my academic studies and my personal projects.
I have experience in the use of the Scrum from my work experience, and from my group project as part of my Foundation Degree. I have fulfilled the role of Scrum master and have also fulfilled the role of a team member. I have experience in using a variety of Scrum tools including: Visual Studio Online, Trello and Taiga.
I have experience in the use of the structured systems analysis and design method as a development methodology during my Foundation Degree. I used SSADM during multiple assignments, and was assessed on my use of it.
I have knowledge of a number of other development methodologies - for example - Kanban.
I am studying on a Foundation Degree in Software Engineering at Belfast Metropolitan College, with the University of Ulster Jordanstown setting the curriculum for the course and acting as the awarding body. The course commenced in September 2014 and will complete in June 2016. The course consists of 1.5 years of 'learning' and a 600 hour minimum work placement, to be completed in the second semester of the second year.
My academic performance at the end of year one placed me as the highest scoring student in the academic year; with an average modular mark of 85%, and average assessment mark of 90%. For this I was awarded an 'Academic Excellence' award, which I recieved in June 2015.
In future I hope to progress onto further study at university, at present I am progressing towards second year entry for a BEng in Software Engineering.
The course comprised of modules relating to the following: