C# & OOParound 20 years of experience
C# is behind everything I currently do and Object-Orientated-Programming is something I really love.
I am a firm believer in SOLID principals. I am a very pragmatic programmer always working to find
the most efficient way to solve a problem in an extendable and maintainable way. Clean code is a passion for me.
I produce code that is simple, readable, and that is easily extended and maintained.
I have worked on lots of projects of varying size, allowing me to explore lots of different design patterns.
This has included the Observer, Repository, Unit of Work, Strategy patterns,
and many others.
You can see some simple examples of simple projects
on GitHub.
Angulararound 5 years of experience
I'm a big advocate of Angular having started working with it around Angular 7. We have several SPAs at TT
ranging from simple CRUD applications to large workflow applications. I have designed and built these from scratch and upgrade them through the
versions regularly. Angular is moving in an exciting direction and I look forward to working with it more and more.
ASP.NETaround 20 years of experience
I've worked with ASP.NET since the early days of Web Forms. I also have worked on a number of MVC projects.
At Nexus (2005 - 2009), almost all development was with Web Forms, and much of my early days at TT featured it heavily as well. I also worked a
lot with PHP and ASP in my early days, with libraries like jQuery, which together with Web Forms, gives me a
really good understanding of the web stack and how we got where we are today with frameworks like Angular.
WPF & MVVMaround 14 years of experience
WPF is fantastic when it comes to rapid application development. When used in conjunction with DevExpress it is possible to create
applications withs very rich UIs in a very short space of time. I really enjoy MVVM design and have used many libraries (PRISM,
DevExpress-MVVM, MVVM-Light, FluentWPF, MVVM-Toolkit, and libraries of my own creation) to implement that pattern. I have also played with UWP
and many of the best practices apply to this too.
I have used lots of different parts of the WPF framework. I have worked on real-time systems, putting out a great number of changes to
the UI without locking. I have worked on systems with complicated asynchronous operations which can often be long running and still allow
the user to continue their work.
Previous to this I used WinForms to create applications as part of my work at CMT, so I have been using the Windows API for over 20 years.
Xamarinaround 8 years of experience
We use Xamarin to develop mobile apps. We have several apps and one which is business critical. The critical
application needs to be able to work offline, to deal with complex data, and refresh whenever possible to give the Portfolio
Managers the best data. It is a great challenge to build for mobile phones and Xamarin is a great framework.
I hope that MAUI will soon be ready for production, and that we may be able to go to a single framework for
mobile and desktop development. Given all Xamarin, MAUI, UWP, and WPF are XAML based, it is an easy transition from one to
the other.
aspnetcorearound 5 years of experience
I have often found that a simple 3-tier architecture enormously simplifies a project. The ability to do batch work,
scheduled jobs, caching, and many other tasks, on a central service presents many advantages over 2-tier applications.
I have become more and more of an advocate for aspnetcore WebAPIs. The ease with which you can add middleware, configure your dependency
injection, create authorisation workflow, and a million other things, is really impressive.
WCFaround 14 years of experience
I have loved WCF, especially for the simplicity of duplex connections, and to avoid the HTTP protocol
with TCP or Named Pipes. At TT we have several very large legacy systems running WCF middle
tiers, so I am very used to designing and maintaining systems running with WCF services.
T-SQL & PL SQLaround 20 years of experience
Where I currently work there are a lot of databases, and most of the work I do ends up requiring information from many of those
databases for all sorts of reasons. While this presents many challenges, it has given me the ability to keep up with my SQL skills in
an age when more and more people rely on EF or other persistence frameworks.
I am often required to write reports off the back of several databases, joining, grouping and processing the data from several sources into a format
for SSRS and DevExpress XtraReports. I understand most of what SQL Server has to offer, from functions,
triggers and stored procedures, to CTEs and Windowing Functions.
I am also used to optimisations using the query plan, understanding how indexes work and how to build them and use them, breaking down or
giving hints for queries that otherwise would run very slowly.
Dev-Opsaround 11 years of experience
Dev-Ops has become a real love of mine. I created the infrastructure we use at TT and designed all the pipelines with YAML
(and a little WYSYWYG). Using continuous integration and continuous deployment (CI/CD) allows me to concentrate
on the fun work of development and not worry about ensuring I have run all the tests and the deployment is taken care of!
Designing the pipelines is pretty fun. Azure DevOps is an incredible tool, and I have designed pipelines allowing us to release
to UAT or Production, both on request and automatically, for just about every technology I've worked with, including iOS and
Android all the way to the stores.