Software Development
Key technical skills:
- Oracle 8i, 9i, 10g, 11g, 12c, 19c Window/Linux/Unix; skill set includes Oracle data cartridge development, SQL/DML/DDL & PL/SQL for PSM development of Java stored procedures, packages, triggers, views, user defined aggregate functions, Oracle analytic functions, XMLDB, Row Level Security (RLS)/Virtual Private Database (VPD) policy development, data partitioning; SQL real time and PSM performance tuning through examination of PLAN tables, Oracle 10046 & 10053 traces, and tkprof. Very familiar with supplimentary Oracle development & command line tools for application development and ETL tasks, eg. SQL Developer, SQL Loader, external tables, ….
- Microsoft C# (C# 2 – 6) Winforms & ASP.NET full stack development skills, LINQ/PLINQ, WPF, WCF/web services, generics, threading, serialisation, TPL/async/await etc, MVC and MVP architecture, exceptional undertanding of software architecture principles, patterns, and development methodologies, strong advocate of unit testing (NUnit/MSTest/VS addins including NCrunch, and the more discrete offerings of utPLSQL and SpecFlow) & PostSharp AOP.
Supplementary technical skills:
- VB, VBA, VB6, COM, XML/XSLT, SQL Server, SSIS, SSRS, HTML, Javascript, Java [up to Java 1.4 (not recent Java versions)], C, C++, LabVIEW, MatLAB, Perl, MySQL; application and shell script development on Linux (Debian/Ubuntu), Unix (Solaris 8 and OS X), and Windows.
- Real-time Data Experience Skilled in the development and maintenance of multi-threaded multi-channel data acquisition systems (LC/MS acquisition data/ADC channel data) operating in real time with low latency; memory management, data caching, data aging, and in the techniques to ensure deterministic garbage collection of unmanaged (COM) and no garbage collection of managed immutable PONO objects.