For the last 6 years, I have worked at a medium sized fund management company, designing and implementing systems to provide edge to the front office and back office teams. In this time I have helped design systems to assist in almost all areas of the business, but I have been lucky enough to be most involved with Front Office, Risk Management and Portfolio Administration.
Primarily I have used WPF-MVVM to design the front-ends, WCF where required for the
middle-tier and SQL Server for the back-end. More recently I have started working with
for some middle-tier requirements. I have been lucky to use DevExpress with the UI work I have done.
You can explore more detail below, or download a boring C.V. (PDF).
C# is in everything I currently do and Object-Orientated-Programming is something a 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.
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 pattern, the Repository pattern, IoC patterns, and many others.
WPF has been my preferred technology for UI since joining this company. It very much suits a company of this size and allows for rapid progress. 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. I am also a subscriber of the DevExpress WPF control library and have a lot of experience in using that in applications.
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.
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 regular 2-tier applications. I have loved WCF, especially for duplex connections, and to avoid the HTTP protocol with TCP or Named Pipes.
I have also been using Web API in a number of projects. I've found it very good and in many ways a lot simpler than WCF, but I haven't found a great replacement for the duplex modes of WCF. I am un-decided as to whether make the switch completely.
My career started as a web developer, using ASP.NET Web Forms in a two different software houses. I spent 6 good years working for a huge array of different companies, ranging from milk distibutors to Devon County Council. When I joined my current employ, it was as a web developer too. The reality has been, though, that most UI work has been done with WPF. That said, I have completed a couple of MVC and Web API projects, and several ASP.NET Web Forms projects.
I would be very keen to get a better grip on MVC, and with ASP.NET 5.0 on the horizon I hope to find the opportunity to try it out.
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 often am 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 have been in software development since 2001 when I graduated from Exeter University with a 2.1 in Computer Science. I have worked in 4 roles since.
When I am not writing software I have a few hobbies. I love skiing, rock climbing, scuba diving and cycling. I try to get away skiing and diving as much as I can but obviously those are things that are less available in London! I climb regularly at the Castle in north London, and cycle (recreationally - no lycra!) on the weekends when the weather is up to it.