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 consider myself a very pragmatic programmer who will try to find
the most efficient way to solve a problem in an extendable and maintainable way. Clean code is a passion for me.
I want to produce code that is simple, that is readable, and that is easily extended and maintained.
I am lucky to work 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, 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 those 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. Especially in conjunction with DevExpress it is possible to create an application
with a very rich UI in a very short space of time. I really enjoy MVVM design and have used many libraries (and my own) 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.
You can see a few screenshots of UIs which I have designed to the left, and there are some very simple projects on GitHub which show some MVVM patterns which I like to use.
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 possible. 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, and WPF are all 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 difficulties, 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.