Technical Skills

C#

Expert, 8 years

Has been developing in C# for 8+ years. Including MVC, Webforms, WPF, console and Windows Service applications. Primarily in .NET 4.0 and above

ASPNET MVC

Advanced, 3 years

Has been both a team member and lead architect for various MVC 4 and 5 applications

Web API

Proficient, 1 year

More recent applications have involved taking advantage of ASPNET Web API. Our AngularJS applications made heavy use of these

SQL Server & EF 6

Advanced, 6 years

Has worked primarily with SQL Server. Entity Framework with Code First Migrations has been used for the last two years with great success

Full stack Development

Advanced, 5 years

Developed and architected multiple N-tier applications. From small websites to large SPA used across 9 countries

JQuery

Proficient, 3 years

Has been developing JQuery enabled websites through out his career

AngularJS 1.3

Proficient, 1 year

Recent apps have been development as SPA with AngularJS. Including a large multi national application

HTML(5) & CSS(3)

Proficient, 4 years

Designs clean and well formed HTML using LESS, bootstrap, HTML5 and CSS3 standards

Agile Development

Proficient, 3 years

Has followed the Agile Scrum process. Following 2 weeks sprints and iterative development, continuous integration and regular deployments

CQRS

Beginner, 3 Months

Recently has been refactoring some parts of our system to use CQRS. Denormalizing data to improve applicaiton performance

DDD

Beginner, 2 Months

Has started looking into DDD to improve system architecture and increase the system relevance to the end user

NHibernate

Beginner, 2 Months

NHibernate has been used on a couple of personal projects

Application Architecture

Design Principles, Clean Code & Testability

Designing a system that will truely meet the clients requirements takes planning and thought. One system does not meet everyone's needs.

If a system can not be tested there is little assurance it will always work as required. Unit testing is the first step in assuring this quality. Integration and smoke testing also helps ensure quality.

A system is nothing if it can not be deployed and used by the end client. Automated and repeatable deployments are vital.

Interface Design

User Experience

If a system's interface is not well designed it makes little difference how well it performs as the user will struggle and probably give up using it.

It is not good enough to produce CRUD interfaces. Users should be guided through the application. Each action having a purpose, guiding the user intuitively to their end goal.

Web Site Development

Customized experience with real functionality

Websites come in various forms; blogs, a point of contact for a person or business, an online shop front through to managing a business' end to end process. Choosing which form to use is important.

A website application can manage many things. They can provide real functionality, improve a users experience and improve a business' progress.

Quotes