C# ASP.net Core 2.2/3.1, using Razor-Pages, MVC and API. EF 5 and Core 3 with Linq and SQL. Azure Dev-Ops, App-Service and SQL Databases. Web-site design and development, with Azure deployment. Blazor, and WPF Core 3.
During lulls in employment, I undertake training exercises to keep my skills up to date.
To augment my skill-set, I have undertaken on-line training, as well as working through a number of professional development books.
Skills acquired and enhanced are: Blazor, both Blazor-Server and Blazor-Web-Assembly.
Book titles: - ‘Exploring Blazor’ covering the basics of this emerging technology,
‘Microsoft Blazor’ more in-depth on the Client-side of ‘WASM’ coding.
To augment my skill-set, I have undertaken extensive on-line training courses (W3Schools, Microsoft presentations), as well as
working through a number of professional development books. Skills acquired and enhanced are: Blazor, both Blazor-Server and
Blazor-Web-Assembly; and WPF updated for dotnet Core 3.
Book titles: - ‘Exploring Blazor’, covering the basics of this emerging technology;
'Professional WPF and C# Programming’, a comprehensive coverage of the latest WPF release with extra Database binding chapters.
To plug holes in my skill-set, I have undertaken extensive on-line training courses (W3Schools), as well as working through a
number of professional development books. Skills acquired and enhanced are: ASP.net Core 2.2/3.0 with MVC web-pages, Razor-Pages
and User-Identity with model-driven EF 3.0; C#.net Core 2.2 with API pages, micro-services and Angular5 SPA with Type-Script
Book titles:- ‘.NET Core in Action’ concentrates on the CLI and being OS agnostic,
‘Learning ASP.NET Core 2.0’, enterprise view of applications with emphasis on micro-services;
‘ASP.NET Core 2 and Angular 5’, writing a Single-Page-Web-Application, using MV* API’s in C# with Angular 5, Type-Script and an Entity Framework code-first back-end;
‘Docker Tutorial for Beginners’, a good introduction to the containerisation of Applications.
I have installed new kitchen at home with a new combi boiler, floor tiles, appliances, worktops and units. Electric under-floor heating with bespoke control system. I performed all electrical wiring, with a new consumer fuse box and linked smoke alarms, all meeting 18th edition IET regs. Installed a 2-hour fire safe ceiling using double layered plaster-board and intumescing light fittings.
A short course in Explainable-Security, at Kings College London University.
X-Sec is a novel paradigm that has evolved from a heterogeneous research program devised and run by Prof. Luca Vigan`o and Daniele Magazzeni at Kings College. It defines a roadmap that identified several research directions. To describe the challenges of X-Sec and how they can be tackled, it considered the “Six Ws” of X-Sec; Who, What, Where, When, Why and How. Including compensation, mediation and mitigation.
To plug holes in my skill-set, I have undertaken extensive on-line training courses, as well as working through a number of professional development books. This includes Microsoft MVC 5, Design Patterns / Best Practice, Entity Framework ORM, Angular-JS, jQuery, Single Page Web-Apps, HTML5, TypeScript and others.
The company’s recently commissioned web-site using Word-Press and Woo-Commerce was deemed not fit for purpose. I was engaged to provide a ASP.net core replacement. Acute Art is a company engaged in the production, display and sales of Artistic Images, Augmented Reality and Virtual Reality. This particular web-site, they have a number of web-sites; is involved in the display, selling and re-selling of AR products.
I created a web-site based on ASP.net Core 3.1 using Razor Pages as the web-page delivery system. We used Azure Dev/Pro to retain the code repository, with CI/CD to Azure Web-sites. It also included some Web-API controllers and Micro-Service modules. I used ‘screen scraping’ techniques on the current WP web-site to provide the basis for the navigation and look and feel of the new web-site. The database was generated from an extensive set of data models, based on Entity implementations of Attribute and Metadata tables. The commercial side was handled by use of the ‘Stripe’ card payments system, using both their web-hooks and Checkout sub-system. All of the work was done remotely with twice weekly video-meetings and weekly work review documents. I created extensive support document detailing design considerations, data-models and flowchart diagrams. As this was a fixed term contract, I was only required to enact the functionality and not the styling of the web-site; I was to create most of the workings of the web-site, that was then to be finished off by the permanent staff.
created customer facing and admin-support web-pages to handle the release tranches of Artwork Numbered Editions and the purchase thereof. This involved the use of the Stripe Checkout system to handle the collection of funds via a web-API and dedicated Service module; with associated Success and Failure web-pages. Some ‘special’ customers were allowed to purchase Numbered Editions prior to their general release; this was all controlled using the Admin support web-pages.
I created customer facing and admin-support web-pages to handle the re-sale of Numbered Editions from Owners to other Customers. These were of a timed auction spread over a few days with bids being collected and at the end of the Auction period the bids reconciled to determine the Winning Bid; which was then processed. The reconciliation processing was started using a Midnight-Run web-API coupled to an Operating System Task; this API called a dedicated Service module containing the reconciliation logic and payments processing functions.
This implementation of an on-site Auctioning system, used the Stripe Checkout payments to collect bids using an Authenticate and Hold plus separate Payment collection for the successful bidder during reconciliation. A second Paradigm was also designed to use longer term Auctions as ‘Auth and Hold’ can only last for 7 days max. This version relied on e-messaging and winning bidders making their required payment within 24 hours or another bidder would be selected. However, this paradigm was only partially implemented prior to my contract finishing.
See below for company description.
Following on from a spell as a permanent employee, I was asked by my former boss to create a prototype web-site using the latest C# dotnet Core language running on the Azure cloud platform. This web-site to containing a ‘Customer Satisfaction Survey’ and ‘Sales Lead Generator’ sub-system; complete with a Questionnaire builder, a Metrics overview and details downloader. This is to prepare the company to convert their numerous web-sites for hosting on the Azure Cloud app-services. The questionnaire builder is to have multiple uses for various parts of the business, so was made flexible enough.
After the feasibility study, I produced an initial Proof-of-Concept web-site using C# ASP.net Core 3.0; this was produced using Azure DevOps repository with an App-Service on Azure Portal. This was discussed with my manager, and then augmented using EF Core 3.0 to include User Identity sign-on, using the SQL service on Azure Portal. The part working web-site was then discussed with stakeholders and the project continued. The prototype Proof-of-Concept web-site and supporting documentation for the software department was delivered to help them to appraise moving to the cloud and initiating the transition to the Azure Cloud services.
The web-site was implemented using C# ASP.net Core 3.0, Razor-Pages, EF Core 3.0 and the OAuth User Identity sub-system with full Administrator control of Users and Roles; with Azure DevOps and Azure Portal. Azure DevOps was used as the Source-Code repository, as well as for the CI/CD processes. Azure Portal was used to create and control the Web-Site using App-Service and Azure-SQL as the database. All styling is to be performed by the in-house specialists, to ensure the finished sub-system matches current web-site design rules.
You can see the prototype web-site clicking this link ‘kbd2.azurewebsites.net’ or via the link on my own web-site. No need to log-in to take the ‘Customer Satisfaction Survey’, but log-in as ‘firstname.lastname@example.org’ with password ‘Guest99Guest’ to view the Attempt-Log and Questionnaire-Builder web-pages (intentionally limited).
Job title: Contract Software Developer. Full SDLC in an agile environment using TFS, BDD and GIRA.
'Fredrickson International Limited' aka 'Freds', is a debt collection agency, and part of the Lowell Group.
'Freds' is involved in the collection of outstanding debt of customers, for a number of clients.
A large number of telephone support personnel (circa 140) using the 'CFE' application, as well as a number of Administration personnel (circa 40) using the 'AFE' application. There is also a customer web-site, to allow self-management of their debt (www.freds.com). 'Freds' IT department contained over 40 personnel.
This company site-location has been run-down and closed due to business re-orientation, with all operations transferred to Leeds.
The skills involved were initially ASP.net C# MVC web-pages updating from VB6 and VB.net applications. However when it was decided to close-down Freds, I was tasked with maintenance work; mainly VB6, VB.net and SQL queries, with Unit-Tests written in C#; along with BDD, DDD, BA and architectural design. Also I modified some web-pages using ASP.net, MVC and VB.net. All the work followed the company SDLC process, loosely based on 'Scrum' and 'Agile' techniques, using the GIRA web-based workflow application.
I produced metrics of current database tables for relevant system environments, in conjunction with current data-dictionary usage and DPA regulation implementation. Investigated current database stored procedures used to implement DPA Data-Retention with a view to modifying to reflect GDPR requirements.
I was responsible for the design of an augmented data-dictionary to support the expanded remit of the GDPR regarding Retention
and Anonymisation. This included the updating of the current data-dictionary database triggers used to control the content of
the data-dictionary to ensure the correct information is stored. The paradigm used for data-retention was re-written for greater
control of data and encompass the entire company data-set (databases, spreadsheets, word documents; in both electronic and
paper-based). Responsibility for identified data-sets and retention periods, linked to 'person' identity. This required data-cleaning
and extensive data-entry.
The first phase was to modify a number of applications (8) that were in need of maintenance work in the near future, to reflect current standards. This was data storage paths, internal e-mail addresses, and database connection strings. The second phase was to trawl through all the live applications, noting deviations from current standards and bad programming practice; to help determine future work. This was in two tranches of 34 and 46 applications; a lot of these applications were run over-night, and had not been touched for years.
There was confusion over the first and subsequent payment dates by the customer and when funds were cleared. As this was a single client, changes were made selectively. I mocked up the sub-form changes required for both CFE and AFE applications, and presented them with supporting documentation to stakeholders. This was accepted so I produced a fully working prototype of the changes to show to individual stakeholders to gain acceptance. The second stakeholder meeting agreed to my implementation, I then liaised with stakeholders to affect the completed requirement (letter production). Using VB6, VB.net, SQL and XML templates.
The original sub-system calls to handle these processes, had a number of problems, and were spread over both a VB6 DLL and a VB.net DLL; involving duplicate implementations with subtle variations. I merged the variations and moved some functions from the VB6 DLL to the VB.net DLL; adding routines to the DLLs in a manner that meant we did not need to modify or recompile existing applications. This involved overloading the original functions with more complete versions and redirecting calls from the VB6 DLL to the VB.net DLL.
The consultations with stakeholders was fully supported by diagrams, showing the impact and envisioned solution; along with a
document showing all impacted function calls in the entire code-base.
View Document, View Diagrams
A customer often had more than one account registered to them from different Clients and multiple debt defaults. However the system reported these incorrectly and a number of DPA and GDPR violations were reported, due to incorrect linking. The solution was in two phases, the first was an emergency temporary fix to eliminate the possibility of wrongly linking accounts that were alike but different Customers. The second phase was a complete solution to the problem, involving full consultation with stakeholders including B.A.s and higher management. This required modification of both of the CFE and AFE applications as well as the underlying supporting DLLs, this involved both VB.net and VB6 languages and SQL queries.
Error in web-site logic caused incorrect display of alert-message. Discussed circumstance with reporter and derived correct logic. I modified the web-page and supporting DLL to enact, using C#.net, VB.net and ASP.net MVC.
This was for any run-time errors detected; the log files produced ran to 100Mb per day. Initial investigation revealed there was a common cause to the vast majority of these entries. I found that a class instantiation included an obsolete member that was just reporting its use, no error. I removed the member from the class and the log file reduced to 1% of its former size. This change was released and the Log files re-inspected, one entry type was responsible for 95% of the remaining entries. One of four calls to a class constructor did not supply enough data in a table data-set, and the checking used was incorrect; I corrected the code paradigm and the log-entries disappeared. The log-files are now occasional run-time errors and operator finger-trouble entries. VB.net, VB6 and SQL queries.
A number of Reports were modified to reflect Client's changing requirements. Some simple, some more complex; using SQL queries, VB6 and VB.net code changes. These report changes included liaising with client support personnel.
This application was suffering from an occasional run-time error due to a query time-out. I discovered the data-set was from a 'dynamic' SQL query. I rewrote the dynamic query, into two parts; an initial dynamic statement to load a temporary database, with a normal optimisable statements. The query ran 10 - 20 times faster afterwards.
Job title: Senior Software Developer/Architect. My duties also involved 3rd line support for our Users and Customer problems.
The Stanley Davis Group is mainly concerned with financial services, with over half of all the UK's Company Formations business, and a large part of UK and Ireland's Local Authority Property Search requests; also Company Secretary Support services and Over-seas Company management. The majority of the work used C#.net MVC pages.
Due to SDG's continuing acquisitions and mergers, there were too many IT people; I was made redundant on a last-in first-out basis (also my boss's project was cancelled, so he took mine).
Produce web-page to reflect Marketing's requirement for a dedicated web-page for the capture of customer contact details. Create back-end database tables and Marketing access web-page to access stored details. Dotnet web-forms.
Convert existing development project from web-forms to web-forms plus MVC5, and implement User-Identity log-in for new SDG web-site. Allowing Single Sign-on (SSO) for company web-sites, using OWIN / OAuth modules. Adding User roles to Identity along with specific permission handling. The Migration of current log-in paradigm data-set to new SSO / OWIN data-set; involving data conversion and cleaning, whilst still supporting previous log-in credentials. Added 'Admin' layer to new web-site, using both MVC Routing and Web-Forms Restrictions; based on User-roles.
Rewrote existing VB.net web-forms page, to use MVC C#.net coding whilst updating web-service access code.
For Local Authority Property-Search processes, the 'Con29' question-set was changed by the Government. I modified the tightly- coupled questionnaire for this 'Con29' update, whilst allowing for both new and old processes to co-exist. This involved database table modifications as well as Word-Document Report Templates with access-as-XML VBA, that produces reports for our customers. Involvement with Stakeholders from our Leeds office via site-visits and tele-conferences, as they were the knowledge holders for the process paradigm. We met the deadline.
Updated DWP questionnaire web-forms page to new requirements for Property-Search report; and Report Template.
Pick-up ancient code-base, circa 2004, that had been badly maintained and hacked by contractor programmers for years; and dragged it kicking and screaming into 2017.
I included the involvement of stakeholders in the design process to ensure a good fit to user requirements and business objectives, using RAD-SSADM techniques, over 4 cycles of design and deployment. The project involved C#, VB and XML legacy code combined with a number of 'free' components from yesteryear.
The initially delivered system comprised C# coding in both MVC5 and Web-form styles depending on web-page usage, with some J-Query scripts to speed the user interface, along with extensive re-design of the database system, using SQL, LINQ and EF. Design process involved guided User Workflow process control to improve automation, coupled to 'Source-Model-Object' pattern use and State-Machines. The recording of state and user interaction,along with error messages, was a requirement.
I brought this project from conception, through Stakeholder reviews of Alpha and Beta releases, to final Initial Release V1.0 and then Pilot-run with 'Live' data and External users. The upgrade was well received by all stakeholders and users as a vast improvement.
Supported the IT department head with the introduction of proper software release control; including 'User Acceptance Testing' and 'Application Lifecycle Management' techniques. This for both new and existing projects.
Update to some previously written web-pages converting from ASP.net Web-Forms to ASP.net MVC5, to improve responsiveness and ease maintenance; using SPA techniques. With ASP.net, C#, EF6, LINQ and MVC5 combined with HTML5, CSS, and JQuery.
Castle Court, 41 London Road, Reigate Surrey RH2 9RJ.
I had worked for this company a number of times on a contract basis, before taking a permanent job. At the time they were a publisher of 'Health and Safety' training videos on CDs with associated pamphlets and software applications; but due to changing market conditions, new business dried up and existing customers were going to the competition. I created their web presence.
I worked ‘at home’ with regular visits to the company’s main premises, combined with weekly progress reports and remote sessions by phone, ‘Go-To-Meeting’ and ‘Skype’. Earlier this year (2015) the entire development department was exported to Pakistan, and then I was made redundant; developers are very much cheaper in Pakistan.
I was tasked with creating an internet based training system that would comprise both on-line training and training management control. After some prototyping solutions and a market testing exercise, a web-application was created; this improved the company's fortunes and allowed then to expand in both terms of staff and associated revenue streams.
Produce Browser based versions of 'Health and Safety' compliance, industrial risk calculators and report generators.
c) Production Release:
Update web site, move to own server running windows 2003 server, IIS 6.0, SQL Server 2000-R2 and MS-ASP.net V2. With enhanced capabilities including Industrial and Office Risk Management for H&S compliance; with Sponsor logo re-branding via cascading Master Pages, automatic alerts using e-mail from an XSLT template.
d) Second Release Update:
new dual Servers. Server 2k8 R2, C#.net, T-SQL, LINQ, Database Structure, R-Sync, Source-Gear Fortress/Vault initiation and use.
Update web-site with move to new dual servers, web-sites and databases separated from video, image and document content. Upgraded web-pages to handle hierarchical questionnaires with e-mailed reports, and control core to ease questionnaire creation. Updated Movie Player.
Update web-site servers set-up using back-up application and co-location ISP to guarantee up-time, using 'Backup Assist' application and R-Sync communications links. Server 2k8 R2, R-Sync Implemented Work-Flow Control for some complex web-pages on web-site, using Microsoft Workflow library combined with Training Entity concepts, to solve some longstanding problems. WF-4.0
I investigated the market and recommended a product fit for the company; this involved both development and office management processes and projects. I implemented the ‘Fortress/Vault’ solution from Source-Gear, a version control, project management and bug tracking system. This involved the initial set-up and acceptance testing, followed by the training other personnel in its use.
I created a stand-alone Windows Application to read an HFI supplied Trainee’s Smart-Card at Customer site premises. This identifying
information was sent to HFI, via an HTTP web API, where it was logged, and a relevant list of Training undertaken was displayed in the
Windows application. The CBTbyB web-site was extended to add External Training Certification support, and associated extra management reporting.
Smart-Cards, Win-Forms, C#.net, T-SQL, HTTP web-service.
A few years ago it was decided to create a smart-phone application to allow trainee's to watch the training videos on their mobile phones. I was involved in the project start-up and did the initial feasibility study; but it was decided to use developers from Pakistan to develop the smart phone applications, whilst I would develop the web-service sub-system. Added Service Oriented Architecture to web-site back-end, to support 'Workplace Observation and Training' Mobile Application; developed by in-house development team based in Pakistan. Developed test Android mobile application. Added support for Workplace Observation handling to web-site.
Smart-phone dedicated Mobile Applications for Android and IOS. I added the Service Oriented Architecture to web-site back-end using MCF, ReST and JSON; to support ‘Workplace Observation and Training’ Mobile Applications developed by in-house development team based in Pakistan. I guided the ‘Apps’ developers in the use of the web-services and gathered feedback to support the continued development of the ‘Apps’.
I added support for the generated ‘Workplace Observation’ handling to CBTbyB web-site; which was renamed to ‘e-Learning’. At the same time a
number of the web-site pages were converted to use the web-services calls to reduce maintenance and update the ‘Trainee’ side of the web-site.
Web-Services, S.O.A., C#.net, HTML5-Video, T-SQL, JSON, Mobile Apps. (Android, Win8 and IOS).
My boss went to an H&S Expo in the USA and gained some new ideas. I Project managed a new web-site for ‘e-Label’ concept, using ‘QR-Code’ images
linked to ordinary mobile phones, to present customer and casual Health and Safety related information display and feedback; with loose linking
to current e-Learning web-site. Subsequent expansion to use mobile ‘Apps’ handled by team in Pakistan; involved in Project hand-over.
I created an immersive user experience when viewing training material, involving interactive images and ‘spot the hazard’ questionnaire items.
This included a designed helper web-page to compose the different types of Hot-Spot questionnaire items. I also added a customer generated,
simplified versions of ‘Hot-Spots’, for use by ‘Managers’ to incorporate in their ‘Workplace Observation’ training questionnaires.
Involved in the move of all development work to Pakistan, and the web-sites move to Cloud Servers.
There were numerous other smaller projects that involved programming in C#, as well as the maintenance of the web-site, and the creation of in-house staff ‘helper’ web-pages. Most of the earlier web-pages written in VB.net were converted to C#.net as they were upgraded. A number of simple stand-alone applications were created in C# and T-SQL, but they were auto-generated with little need for extensive design; although one did use directory hard-links and soft-links to implement multiple references to the same video-clip files, without requiring duplication, combined with FTP.
8 Bedford Park, Croydon, Surrey CR0 2AP.
This company was an offshoot of the parent company to provide a specific service to the H.M.Gov Department of Works and Pensions (DWP). I was employed on an extendable contract basis to provide the Applications and back-end system. This was work done on an extensible contract at the customer’s premises. Interspersed with contracts for other companies via ‘Ken Birch Design...’.
Implementation of workflow system, from paper based system using Excel spreadsheet to MS-Access 97 application; from single site to four sites.
System Analysis and development, with PGP encryption, and replication; using a correspondence log model. A cut-down version of R2W - Workflow
system was used by co-contractor organisations, for their inter-communications with DWP via HF. Liaising with DWP staff.
Access ’97 and 2k, VB6 and Excel 2k.
Christchurch Way, Greenwich, London SE10 0AH.
This was work done on an extensible contract at the customer’s premises. Interspersed with contracts for other companies via ‘Ken Birch Design...’.
I created and maintained various MS-Access database systems, with different levels of reporting and control, to support the manufacturing of
under-sea Fibre-Optic Trans-Oceanic submarine telephone cable amplifier repeaters. This also involved the publishing of intranet web-pages for
dissemination and forwarding to their customers.
Access '97, Excel '97, extensive VBA, Access 2k, VB6
|(a)||Q.A. Quick Graph printing system, upgrade to previous version, with added functionality and improved design. Specifically tailored to IC production usage, but with well defined interface for use with other in-house database systems. Access '97 'Add-In' library. (Alcatel)|
|(d)||Fibre-optic submarine cable Chromatic Dispersion and light loss, distributed database; for installation of submarine telephone cables, at Paris head office and on-board client's customer's cable laying ships. Access '97, Excel '97, extensive VBA. (Alcatel)|
|(a)||I.C. database upgrade and consolidate, legacy code; with improved user interface, and correction of bad design flaws and 'user' written code. Access V1.0 and V2.0 to '97; VBA, data conversion.|
|(b)||Q.A. Histogram printing sub-system, legacy code. Improve, correct, and re-package. Access '97.|
|(c)||Produce database for the automation of wound resistor and coil manufacture. Access '97.|
|(d)||Automate production of reports for customer acceptance of Fibre-Optic Trans-Oceanic submarine telephone cable amplifier repeaters, RPR - CCC (Repeater Performance Report and Customer Confidence Check). Based on Access '97 database with connections to Oracle 7 database, producing paper and electronic versions of reports. Access '97, VBA, HTML.|
|(e)||Company Intranet pages for RPR-CCC reports and data. HTML.|
|(a)||Updated CDLL database, adding functionality; with greater user guidance for clients, also including importing of raw data (.csv files) and extra graphing and data types. Access 2k, VB6. (Alcatel)|
|(c)||Modification of previous 'Cable T.V. Video Player' system for installation at 'EMAP : The Box/Kiss FM'. Design and integration of 'Video Play-list' database system. Visual C++ v5, Access '97. (IMT)|
Action Time Ltd. Video tape library database, sales and production aid.
Quota Computer Associates Ltd. Provide software support for Membership system.
Bodyline Ltd. Provide technical support to start-up franchisee.
Interactive Media Technology Ltd. Cable TV Video Player, music videos, advert inserts, database.
The Convergence Company Ltd. Feasibility study, TV Broadcast plus Web-Site, 'Far East' market.
Quota Computer Associates Ltd. Video Capture OCX, Smart-Card Reader OCX, in-house databases.
Geo - Services International (UK) Ltd. Geographic data display, manipulation, contouring system.
Alcatel Submarine Systems. Test system for Fibre-Optic Trans-Pacific submarine cable repeaters.
Retail Business Systems Ltd. WinNT file conversion from AS400, for EPOS. On-site reporting.
Human Focus Ltd. Various Applications relating to Health and Safety compliance.
South Thames College. Video Edit suites and AV;helping students and staff with projects.
Centre-File, Nat. West. Bank. E.D.I. Funds Transfer, Version Control of software and documentation.
Continental Defence Electronics Ltd. Surveillance Microwave Receiver, Alarm system, MoD.
Ameeco (Hydrospace) Ltd. Software and Hardware Engineer; Sonar control systems, MoD.
Elequip Ltd., C.M.I. Electronics Div.1500 chan. system for Power Station, Sudan. Z80 F8 PLC, on-site.
C.M.I. Electronics Ltd.Development Engineer; various control systems, Z80.