The past years of my development experiance has been working on a multitude of projects utilising numerous technologies and reacting quickly to agile requirements. The languages and technologies used would be dependent on a project by project basis, I would reccomend the most suitable technogies to use for a project based on the requirements of the system, design, implement and deploy the solution.
I obtained a First Class degree in Computer Studies from Liverpool John Moores University, my dissertation was based on Programme Management Software and the use of software within large corporations, I produced a piece of software which generated Gantt charts for the user and could predict time to complete a project based on the productivity of the team. Some of the modules studied at University were; Web Development, Database Systems, Mainframe Computing and Object Oriented Programming.
When: 2012 – 2013
Contribution: Integration and adoption of existing code base to change use and adapt to customer requirements
Technologies: Java, JTwitter, Flat File DB, GATE
Requirements: Collect information from social media based on location of tweet and the information contained within the post.
While working with Clinical Justice one of the side projects was to develop a system which could be utilised to collect information from social media sources, this information could then be analysed with a system such as GATE to semantically analyse the content of the strings of peoples posts or tweets. The project that was created in light of these requirements was using Java, there is a twitter API which allows users to collect data based on search parameters and this information is then relayed into the ‘fire-hose’, the Java system would listen to the fire-hose and collect the information if certain further search criteria was matched. The library that was used was based on JTwitter which provides a Java based implementation to access the fire-hose. The system was adapted to listen for tweets coming from the UK as that is where Clinical Justice operated, certain search teams were used such as ‘medical negligence’ and ‘justice’ which allowed the data to be filtered down by the fire-hose relatively well. The posts were linked to a user so that a re-engagement with the customer could occur at a later date.
Once the data has been collected, GATE was used to provide semantic al analysis on the search terms collected so that the true meaning of the post could be deduced automatically, this filtered list could then be used to re-engage with the people who had posted the status.
When: 2013-2014
Contribution: Holiday System, Manager and Auditor access. Warehousing Management system, Linux system administration.
Technologies: HTML5, CSS3, JavaScript, ExtJS4.2, PHP, Symfony2, Doctrine, MySQL, Extensible, ElasticSearch, Continuous Integration with TeamCity, RabbitMq.
The Ingot Portal is a system that has been created and developed by Warrant Group over a long period of time, there has been a few iterations of the product. These iterations have ranged from standard HTML, CSS and PHP deployment to the latest version, which is utilising Symfony, ExtJS and Doctrine to create a structured system which implements an MVC architecture to logically separate the elements of the system. This system is used internally by the Warrant Group staff for management of the system and also customers which are informed of status updates when there shipment reaches its destination or there is a announcement made against it. The customers that Warrant Group deals with previously had no way to automate the process of obtaining the information about where the items were and the Ingot Portal enables the management and distribution of this information across a wide user base effortlessly.
The main system that has revived most of my contributions is the Holiday System – this system is for employees to log into to book, view and manage their holidays. Some of the manager views that have been created in ExtJS are shown below which shows the use of context menus to provide more user interaction with webpages which is generally expected now. ExtJs is considered to be one of the hardest languages associated to JavaScript as it has such a steep learning curve, however the documentation is excellent and this has made the creation of these systems very intuitive.
Another part of the system that has had serious development is the conflicting holidays view which is data bound to the grid to accept and deny holidays. Once a users holiday request is selected the grid refreshed to the date that the holiday request has been made for – the manager will be able to view any holidays which conflict with this request and will be able to use their discretion to either accept or reject the holiday request based on their requirements. Extensible was used to provide the calendar functionality to the system which is a plugin for ExtJS.
When: 2012 – 2013
Contribution: PHP Security(Injections and XSS), jQuery Component Development, Web Design and Validation
Technologies: MySQL, PHP, HTML, CSS, JavaScript, jQuery
Clinical Justice are a Liverpool based company where a new Website was developed to replace the old WordPress website, for versatility purposes the switch to a non-CMS based approach was adopted. The new approach was developed by hand with hand coded HTML following W3C’s recommendations and best practices, so that the site would be viewable and accessible by everyone.
jMenu was used for the navigation on the website, there was a large array of pages which needed to be included, a multi tiered structure was required so that the menu’s can be dropped down into multiple times to get to the required information. The styling of the jMenu that came by default was quite abrasive and the .js file and the .css file which were supplied by this library were edited so that they followed a more subtle styling which was more appropriate to the requirements of the website.
Prepared statements were using within PHP to stop any SQL Injection being able to output the data from a database, PHP prepared statements require the use of mysqli or PDO, mysqli was used in this specific example, the parameters are bound to the values before they are submitted which stops the statement being altered by Injection attacks.
A Captcha is used to hinder the use of bots for submitting information, SecurImage plugin was used to achieve the required functionality.
There was a requirement cURL for submitting the post data to multiple locations, through a third party library which would deal with statistics about what pages the user viewed before they submitted a form and also to store a copy of the information as a record into a MySQL database.
When: 2012 – 2013
Contribution: Integration and adoption of existing code base to change use and adapt to customer requirements
Technologies: Java, JTwitter, Flat File DB, GATE
Requirements: Collect information from social media based on location of tweet and the information contained within the post.
While working with Clinical Justice one of the projects was to develop a system which could be utilised to collect information from social media sources such as Twitter, this information could then be analysed with a system such as GATE to semantically analyse the content of the message to understand the meaning of posts or tweets pragmatically. The project that was created in light of these requirements was using Java, there is a twitter API which allows users to collect data based on search parameters and this information is then relayed into the 'fire-hose', the Java system would listen to the fire-hose and collect the information if certain search criteria was matched it would record this to Redis for later analysis. The library that was used was based on JTwitter which provides a Java based implementation of the Twitter API. The system was adapted to listen for tweets by geographical area, certain search teams were used such as ‘medical negligence’ and ‘justice’ which allowed the data to be filtered down by the fire-hose relatively well. The posts were linked to a user so that a re-engagement with the customer could occur at a later date.
Once the data has been collected, GATE was used to provide semantic al analysis on the search terms collected so that the true meaning of the post could be deduced automatically, this filtered list could then be used to re-engage with the people who had posted the status.
When: 2013
Contribution: Frontend responsive GUI with Masonry grid
Technologies: CSS3, jQuery, Masonry and HTML
Requirements: Responsive recipe shopping system, users need to easily add a recipe into their basket from the recipe browser
Link: Chicory
On this project I worked closely with the development team to link the sever side code to the responsive interface. I interfaced with the owners of the company to understand and develop their requirements and goals of the website and convert these requirements into the finished application. The idea was to create a Pinterest style board with multiple columns of pictures which show a picture of the recipe, but also the ability to add them to the cart without viewing the item.
CSS3 was used to provide much of the functionality of the site such as text-overflow to hide any overflowing text as the recipes were aggregated automatically from outside sources. The responsive recipe layout was implemented with Masonry JavaScript library for a cascading grid layout which could remove and add columns based on the width of the page.