WEB: Typescript, Angular, Visual Studio Code, Node, tsLint, HTML, ASP.Net, XML, XSLT, Azure, Web services, Zen programming in Angular, Reactive Forms, Template Driven forms, Single page applications, HTML5, CSS3, Javascript. Classic ASP, VBScript, web forms. SGML, vanilla javascript, CSS, jQuery.
DESKTOP: .Net Core, C#, WPF, MVVM, MVC, XAML, Winforms, Silverlight.
.Net Core, C#, C++, VB6, VB.Net, Winforms, Delphi, VBA, SSIS, SSBI, EDI, NHibernate, Entity Framework, Dapper, WCF, performance optimisation. Acceleration of code. Design patterns. Message based ESB implementations and middle tiers. Multi-threaded implementations. Thorough understanding of thread safety and multi-threaded models and behaviours.
I obey single responsibility and consider designs in depth to help future-proof candidate class hierarchies.
Design - realising business requirements into implementation specifications. Employ strictness of mind. Rely on abstractions not concretions!
Oracle, SQL Server, SSMS, .Net Core, C#, C++, VB6, VB.Net, VBA, SSIS, SSBI, SSRS, SQL, DDL, PL-SQL, T-SQL, EDI, NHIbernate, WCF, Oracle/SQL Server performance tuning. Data design, database structure design, scripting and build. Stored procedures, triggers, schema.
Oracle/SQL Server to DBA level. Indexes, triggers, constraints, jobs, transactions, Pl-SQL/Transact-SQL. Materialized Views. Performance optimisation.
I'm fully confident around Oracle, SQL Server, and PostgreSQL databases and I understand how to make the best use of either powerhouse!
My IT Director at the time appeared at my desk and gave me a problem. A major customer in Ireland had suffered a full system outage due to a problem with an Oracle database that threatened the monthly staff salary payments run expected later the same day. Without a fix from me, every Intel employee in the world would not be paid! I didn’t have sufficient time to fly out to site, and I couldn’t remote into the affected tin. I retreated to a quiet office and emerged after 2 hours with a script to be executed from a ‘go.bat’ start by the customer, along with precise instructions for roll-out. The client followed my instructions and executed the script against their database which achieved a full database rebuild and re-initialisation and data rescue from a moment prior to the system crash. 15 minutes later the system came back online, and later that day all Intel staff salary payments were transferred to staff accounts as expected!
I was once provided with a specification realising a set of requirements for a new system to support a newly built production facility at the client site in Wisconsin, USA. However, recognising that the specification did not seem to adequately provide a fit for purpose solution I had to query the specification with my seniors. Too many unanswered questions remained and relevant SME level people couldn’t provide the answers. I volunteered to make the 9.1/2 hr flight to visit the Operations Manager at the new facility – I got to the actual client! Through intensive workshops we revisited the specification and bottomed-out all questions and re-issued the spec. I implemented as agreed, and revisited a few weeks later to install a working system.
Another customer had a difficult project that suffered high staff and PM turnover and seemed to never progress. This was a relatively small system, but it could not pass through UAT with a Hedge Fund client. More and more senior people up to Worldwide Board level were becoming involved as fines and late delivery penalties began to kick in. As a nearby developer, I heard the ongoing daily commotion around the office, and I sat next to a newly promoted department manager who had been a close colleague and my prior team lead. Upon realising that he had inherited the problem, I intervened. I offered my thoughts about problems as I saw them, and assured him of a gut-feeling that the system shouldn’t be so complicated, and that its problems could be solved, and that I would solve them. We had a single video conference with the much frustrated client, and I pushed and questioned until I understood the exact nature of the customer complaints. Later analysing the code I confirmed the system was indeed flawed in many aspects that contributed to the list of complaints from the client. I proposed a plan of action, and committed to using my free time over the Xmas change embargo period. After trying to achieve UAT for 2 years, with heavy contractor resources coming and going, within a further 3 weeks the problems were resolved and the customer successfully signed off UAT, and asked only one question – ‘Why wasn’t Gary Wilson involved 2 years ago?’.
A small company of scientists in Manchester won a new contract but couldn’t achieve basic performance due to the size of their new client’s project definition - which covered an entire country’s Oil & Gas inventory and caused user interface issues like a 12 minute blocking save operation, and many other issues related to how they were using their SQL Server database against such a large project. I proposed a multi-threaded data load and persistence layer be added to their application to minimally but quickly do things in parallel. I used better data patterns and replaced less optimal logic and an 8 second save was achieved, with similar significant gains over all other problem areas, resolving all performance issues.
An insurance client brought me in to connect up JavaScript front end views with models pulled from existing java based web services over SOAP. I soon realised the extent of their legacy web and middleware offerings and made a case to re-architect both the web UI and service layers using HTML5 with Angular and a suite of C# based web services against Entity Framework over SQL Server. I helped establish a thread-safe web architecture and steered and enhanced internal staff capability to take the project forward to success.
Varied front end project work covering classic ASP, VBScript, ASP.Net, javascript, jQuery, CSS, Photoshop, AngularCLI, Node.js, tsLint, Visual Studio Code. This online resume was built in AngularCLI ontop of NodeJS, with CSS. Not the smartest of websites, but it shows my level, all my IT skills are an ongoing labour of love.
I'm not a web developer, i'm a system builder and tester, but the presentation layer has to be the best, because it's visible. Middleware must be fast, well-written, maintainable and extensible. Database must be understandable, fast and a powerful resource for applications to use. Stakeholder engagement & customer facing. Understand the needs. Asking the right questions to identify those candidate interface segregation points. Build the system, then test the system, prove it has been built to requirements and is fit for purpose.