Software Development

Languages and Technologies

  • Visual Basic 6 (advanced level)
  • C# .NET (intermediate level)
  • Java (basic level)
  • Objective-C (basic level, learning)
  • Perl (advanced level)

Commercial Projects

  • CRM system managing motor dealership accounts in respect of insurance referrals – C# .NET
    • Front end used XML data transport with a PHP/Perl/MySQL central custom API service, allowing the software to be run on many machines utilising the same data set
    • Integrated back end with the insurance CRM to retrieve referral data to be processed
    • Semi-automated cheque generation for referral payments
    • Integration with insurance websites to manage “dealer pages” to aid with SEO and content
    • Ability to run reports to produce lists of dealerships within specified postcode areas and filter down as far as account type (car, motorcycle, commercial vehicle, mobility)
  • Postcode lookup for household insurance ratings checker – Visual Basic 6
    • Utilised an Access database to contain the rating data
    • Ability to search on full or partial postcodes
    • Quickly allowed household insurance operators to assess the risk score of a specific postcode with one of the insurers on their panel
    • .exe file contained on a central server; each client ran the program via an SMB-shared shortcut to the server allowing for easy updates
  • Data merge tool for large datasets – Java
    • Regular exports of data files totalling 50GB (two sets of files, 40GB and 10GB) from two sources with identical data schemas
    • Required fast, reliable solution to merge the data files and correctly package them for use
    • Used Java for its speed in manipulating text files, cross-platform capabilities and extensibility

Other Use Cases

  • Used Objective-C to fix bugs relating to changes in iOS7 on an iPhone app; additionally added basic but new functionality to the app (May 2014)
  • Used C# .NET to implement SAML SSO capabilities to a Classic ASP codebase, where the SSO authentication service is PHP-based (January 2014)
  • Used C# .NET working on a personal project to scan a database of website URLs for basic availability checking. Interacted with a central PHP API to provide the ability to run multiple “scanning” nodes, giving potential for development of a website availability service. The project’s main aim was to learn and demonstrate the use of multi threading within the .NET framework.
  • Perl was used extensively to power internal software requirements at a previous employed role, including:
    • Processing reports generated from a Tripos-based insurance brokerage system
    • Manipulation of PCL files to read/write data before printing
    • Development of an internal intranet system with deny first permissions for staff
    • Development of the first version of an email queue processing system which allowed the sending of dynamic HTML emails with insurance policy document attachments based on brand, product and document type. Integrated with MSMQ to obtain the messages (one message per section of email), construct the messages in the correct order and build/send the email. It wasn’t uncommon for 7 or 8 MSMQ messages to exist per mail message. This was initially developed in Perl.
    • Used Perl to develop an email archiving system processing any emails sent or received through the email server software FTGate. FTGate’s own scripting language was used to initially save each email as a text file, which was then picked up by Perl and processed. Email header data was stored in a MySQL database, with content chunks stored as 512KB blocks in MySQL tables for optimised storage and speed to reconstruct a message. The solution was processing upwards of 10,000 messages a day and the content tables (which I named “RAS” tables – or Resource Allocation Storage tables) were balanced so that each one contained a relatively equal amount of data. Searching the archive could take as little as 5 or so seconds to search a month of data after the database had been tweaked with indexes and other optimisations.If I were to undertake this same project now, I would utilise NoSQL technologies such as MongoDB to store at least the email content.

Leave a Reply

Your email address will not be published. Required fields are marked *