Matt Strain
Java Developer

Projects

HISTORY

I started learning how to write program code in Borland C whilst studying for my HND in Software Engineering at Bristol College. I then went on to study Computer Science at the University of Bristol where I was taught Java (J2SE).

I have written code for various projects on a variety of platforms in various different languages some of which are detailed below.

PRODUCT PERFORMANCE REPORTS

Platform: J2EE Servlets on Tomcat Server running behind IIS.
Database: MS SQL Server 2008
Security: Tomcat Authentication via Active Directory

This application provides sales reports in Excel format for Suppliers to Food Retailers. The reports then allow both the Supplier and Business Analyst's to be able to analyse the performance of products being sold in stores.

The application presents a web page to users allowing them to upload a raw data file containing the latest week's sales data. The weekly data contains sales information as well as product details and hierarchy information. This data is then read in at the server and added to the database.

The user is then able to generate all reports or select individual supplier reports to produce for a particular week or any week available in the database.

The application then uses the information within the database to produce Excel reports for the selected suppliers. The reports contain two years of data for the users to analyse.

The application uses an Excel template and utilises the "Apache POI" library to edit the Excel file, inputting the relevant sales data for the particular supplier and other data required for the report to run. Once each report is created it is then compressed and either sent directly to the supplier or uploaded to another secure website.

The Web App also provides a number of Servlets to allow users to specify suppliers to receive reports, the products they supply and also how the supplier wishes the products to be classified (used to group sales of products together).

It also allows for various hierarchies to be specified within a particular retailer.

Overall this uses J2EE (inc. JSP & JSTL, JSF tags and custom tag libraries)  on the server,  JavaScript & JQuery on the web clients and extensive use of VBA in the Excel reports.

GPS TRACKING SYSTEM

Mobile Platform: Originally a J2ME Mobile App then migrated to Android
Server Platform: J2EE Servlets on Tomcat Server running behind IIS.
Database: MS SQL Server 2008
Security: Tomcat Authentication via Active Directory

This tool tracks via GPS employees working remotely in various Food Retailers. These employees travel around different regions of stores and visit up to three or four stores per day.

At the start of each day the employees login to the mobile app and sign in for the day. Throughout the day every five minutes their GPS position is collected and sent to the Tomcat server or retained in the phones memory if a connection isn't available. At the end of the day the employee then signs out for the day.

Office employees are then able to track the location of remote employees throughout the day.

In addition to this team leaders and senior managers receive an email each morning containing tracking details of employees within their area. This email contains:

  • Signing in and out time and location for the previous day and signing in time and location for the current day.
  • A Google Earth KML file which they can open and view the full tracking information for the previous day with all the signing in and out data as well as movements throughout the day.

On a Monday the team leaders and senior managers receive an email containing a full summary of the previous week showing total hours worked etc and again a Google Earth file with the full tracking information for the previous week.

MOBILE DATA COLLECTION TOOL

Mobile Platform: Originally a J2ME Mobile App then migrated to Android
Server Platform: J2EE Servlets on Tomcat Server running behind IIS.
Database: MS SQL Server 2008
Security: Tomcat Authentication via Active Directory

This tool allows an office employee to define specify a series of screen's containing a series of questions in a Java Swing application, saved into an XML format and downloaded by the mobile devices.

Employees visiting various Foot Retail Stores then logon via the mobile app, which checks the server to see if the XML file has been updated and downloads if necessary. The user is then presented with the screens and questions specified in the XML file. Whilst walking around those stores employees are then able to complete the questions and submit their responses which are then collated on the server.

The information is then used to produce reports specified for internal use or for the customer.

ACCOUNTING SYSTEM

Platform: J2SE Desktop Application
Database: MS SQL Server 2008
Security: SSO Authentication via Active Directory

This application provides a Multiple Document Interface allowing access to data within the database to provide the following functions:

  • Create, edit and maintain employee records
  • Create, edit and maintain customer records
  • Create invoices against customers, generating PDF electronic invoices and emailing them to customers.
  • Allocate payments from customers against invoices
  • Issue PDF statements of account to customer's and email them to customers along with reminders of overdue payments, with those reminders using various templates set by the accounts team based how overdue an invoice is.
  • Read in raw mobile phone billing data to provide analysis by user and department on phone usage.
  • Read in Excel Expenses forms sent by employees and provide an approval workflow for department heads, prior to the accounts department paying employees via a text file which is generated and read in to an online banking tool.
  • Manage company cars and employee accident reports.
  • Manage company assets such as a laptops and mobile phones and allocate them to employees.

CASE SIZE TOOL

I was asked by a client (major UK Food retailer) to produce a tool based in MS Excel, that could be used by their staff to recommend how many units of product should be shipped in one case. e.g. How many packs of cheese sandwiches should be shipped in one case to each store.

If a case size is too low, too many cases are shipped which increases costs financially and decreases green environmental efficiency.

If a case size is too large, stores would not be able to sell all the products in time meaning produced would have to be sold at a reduced price or even thrown away.

Each product can have two case sizes, which would be a large one for high volume stores and a small one for low volume stores.

The case sizes are calculated by the number of units a store can sell within the life of the product and then balancing out the needs of all stores to ensure that the number of cases is minimised; whilst also ensuring you are not sending too many units to smaller stores and therefore incurring waste.

The tool made extensive use of VBA and Workbook protection to prevent accidental changes.

A simple workflow was created to allow a user to paste in information from other systems such as sales history, store ranging, shelf capacity and product dimensions. The user was then able to calculate the optimal case sizes via a series of macros activated via buttons within a flow chart on an excel sheet.

As part of this process I ran several training sessions with the employees of the customer to ensure they could use the tool effectively. 

TURKEY ALLOCATION TOOL

Again written in Excel at the request of a major UK Food retailer. This tool made extensive use of VBA and Workbook protection to prevent accidental changes.

This tool takes in store, product sales forecasts for an entire range of Turkey's over the Christmas trading period.

The tool then rounded those forecasts to case sizes set by the trading teams, ensuring that any rounding didn't result in the high volume stores losing allocation and low volume stores gaining too much allocation.

These rounded cases were then processed again into three waves of deliveries into several regional depots with each depot delivery being rounded (where possible) into full pallet loads.

The tool then generates output Excel files for the retailer to feed directly into their system to generate orders and allocate stock.

UNIVERSITY PROJECT

PCTV With Remote Record

At the time TV Tuner cards in PC's were becoming quite popular.  My project was to utilise this hardware and allow users to Watch, Pause, Rewind and Record Live TV. Part of the project was to also allow users to be able to set something to record when away from the home, either via a web browser or a mobile app.

It must have been a good idea, as Sky launched their "Remote Record" service six months later!

The project involved writing code in various languages on various platforms for it to provide all the functions required. These are detailed below:

TV Viewing Application - This was written in MS Visual C++ and provided a GUI to the user to be able to control the TV Tuner card and watch and record TV. Features included:

  • Auto & manual tuning and saving channels
  • Watching, recording, pausing & rewinding live TV
  • Viewing recorded programs with all the usual controls

Web Server & Recording Timer - This was written in Java (J2SE) and provided several functions:

  • Listen to recording requests from the mobile phone app and schedule them.
  • Serve web requests from browser clients to schedule recordings or modify the existing schedule.
  • Start the TV Viewing Application at the desired time and channel according to the schedule.

Mobile Phone App - This was written in J2ME and allowed the user to connect to their PC and view their recording schedule. The user was able to view, edit and add to their schedule.

Mark Achieved: First

COLLEGE PROJECT

Intruder Detection System With Camera

Programmed in C, my HND project consisted of a camera sat on a motor surrounded by motion sensors.  All the hardware was connected to a PC via the serial port.

Upon activation and when a motion sensor detected movement, the camera would move in line via the motor to the sensor which has detected the movement and take a photo.

This was at written at a low level reading and writing signals to and from the various pins of the serial port. This included reading raw binary signals from the camera, interpreting and converting them to jpg files.

Mark Achieved : Distinction

AREAS OF
EXPERTISE

  • Java:
  • J2EE, J2SE, Android, J2ME
  •  
  • Web:
  • JavaScript, JQuery, HTML, CSS, JSTL, XML
  •  
  • Database:
  • MS SQL Server / Oracle
  • Relational Database Design
  •  

BUSINESS
SKILLS

  • Client Facing Skills
  • System Administration
  • Project Management
  • Server Configuration
  • Customer Training
  • MS Office (Advanced Excel & VBA)

PERSONAL
SKILLS

  • Problem Solving
  • Multitasking
  • Communication
  • Organisation
  • Self Motivating

OTHER

  • Download My CV in PDF FormatCV Download
  •  
  • Driving license: Yes (Clean)
  • Nationality: British
Address

London, E3

Email

mattstrain@outlook.com

Facebook

Find me on Facebook

Copyright Matt Strain

© Matt Strain