How We Create Great Software

We use the latest best-of-breed software development tools to enable us to work as effectively and efficiently as possible. We pride ourselves in creating good quality, maintainable code which results in a more stable, bug-free product that your end users will love. To help achieve this goal, we use Continuous Integration (CI) and Continuous Deployment (CD) automation mechanisms on platforms such as Microsoft Azure DevOps, Docker and Rancher. All code we write is analysed for bugs, code smells and security flaws by SonarQube.

Find out a bit more about how we create great software from the highlights below.


Visual Studio 2019

The default tool for virtually all of our software development. We also support most previous versions of Visual Studio, including Visual Studio Code.

Read More


Microsoft Azure

Although there is still a need for on-premise deployment of .Net, .Net Core and SQL Server workloads on Windows Server and IIS, there are many great benefits to deploying to the cloud. We have experience with 100% cloud-orientated systems leveraging Microsoft Azure as well as hybrid solutions where parts of the system remain on-premise. Azure can be used to deploy traditional .Net applications that would normally be hosted in IIS, as well as containerized front ends, APIs and other tools. We can advise on how to best use Azure SQL databases, Azure Service Bus message queuing and other Azure resources.

Read More


Docker

For today's mission-critical, super-scalable and highly available applications, we recommend .Net Core (or Asp.Net Core) and Docker. We generally prefer to build Linux-based images, which are smaller and can be deployed without the need for expensive operating system licensing.

Our free Microsoft Azure DevOps Build Screen app for displaying the status of your builds is distributed on Docker Hub.

Read More


Microsoft SQL Server

For critial transactional database systems, and in keeping with our utilisation of the Microsoft stack, SQL Server is a high performing and highly available RDBMS that forms the data tier of many of our bespoke applications. For price sensitive projects, and where data storage volumes are low, we also use the free edition, SQL Server Express.

We can support all versions of Microsoft SQL Server including 2012, 2014, 2016 and 2017 - including versions running on Linux. We also have experience with running SQL Server in a containerized environment using the offical Microsoft SQL Server Docker images.

Read More


Azure Dev Ops

Azure Dev Ops is our first choice for both Git source control and agile .NET development workflow management. We have in-depth experience of setting up automated builds that are tailored to your team's needs. We regularly set up Continuous Integration (CI) and Continuous Deployment processes for our clients, and also have a selection of custom Build Actions available - such as auto assembly versioning, service password generators, and more. Last year, we managed the migration of very large TFSVC code repository into nearly 100 individual Git repos. This was done in such a way that the 60-strong development team experienced no inconvenience or downtime, and the process was completed in its entirety on a Saturday afternoon.

Read More


Rancher

Rancher is a complete software stack for teams adopting containers. It can manage multiple Kubernetes clusters across any infrastructure, while providing DevOps teams with integrated tools for running containerized workloads. Compatible with Kubernetes hosted on your favourite cloud provider including Amazon EKS, Microsoft Azure AKS and Google GKE, or with your own on-premise clusters installed on your own virtual or physical servers.

Rancher has a quick learning curve and a beautifully simple web UI, and can be integrated easily with your DevOps workflows such as Azure DevOps build and release pipelines, or Jenkins.

Read More


SonarQube

SonarQube is an excellent system for automating the code review process. It works with several popular languages such as C# and Javascript out-of-the-box for free, and has additional paid-for plugins for others like T-SQL. Integrated into the build pipeline, every commit can be analysed which results in a report and in-line annotated code with potential errors and bugs clearly highlighted. It will show the trends over time for various metrics including unit test coverage, code smells and security flaws. It also allows comparison between branches, including a calculation of how a Pull Request will affect the project's statistics once completed. As well as highlighting problems, every rule has a useful section detailing why that particular code has been flagged, and how to fix it.

Read More

ReSharper

This renowned productivity tool has truly awesome code inspections, automated refactoring features and simply brilliant all-round coding assistance. This tool improves the speed and quality of our code, and after many years of using it we wonder what we'd do without it. We are always happy to introduce ReSharper to new users, and teach them how to code smarter and perform complex but risk-free refactoring.

Read More


nCrunch

nCrunch is our favourite tool for automated execution of unit tests in the background while we are writing code. It provides instant indication inline with our actual code to indicate which lines are covered, which aren't and which unit tests are passing or failing.

Read More


Beyond Compare

There are several free file comparison tools on the market, but we use Beyond Compare - which really lives up to its name. We prefer Beyond Compare's smart diff view and three-way merge - a must when integrating complicated pull requests. Integrates seamlessly with Visual Studio and Git to replace the default merge/diff tools.

Read More


Git Tower

After testing several productivity alternatives to using the Git command line - including the popular Git Kraken and Source Tree - we settled on Git Tower. Tower works perfectly with Visual Studio, TFS and Azure DevOps (with repository cloning direct from the Web UI), this tool also supports Git Flow, Git LFS and GitHub out of the box. Tower has a neat, beautifully clean user interface and is available for both Windows and macOS.

Read More


SQL Sentry

SQL Sentry is a great way of crunching the information that SQL Server spits out in the form of a Query Plan. The visualization of complex stored procedure call trees allows us to identify the root cause of performance bottlenecks quickly and accurately.

Read More


ANTS Performance Profiler

We use the ANTS suite of tools for finding performance bottlenecks in .NET and SQL code. To date our greatest success with this tool was to reduce a custom Windows service from using 20GB of RAM to just under 8GB. Although ANTS Performance Profiler has a fairly steep learning curve, we are always pleased to transfer knowledge to your dev teams. The latest profiling tools in Visual Studio mean we are using ANTS less and less these days, but it's still useful when we need to roll out the big guns.

Read More


Selenium

We like to use Selenium for creating robust, browser-based regression and other automated UI tests. It's free and supports most browsers, and we can implement a testing framework for you that targets multiple browsers simultaneously, thus vastly reducing the time required to run your entire test suite.

One less common use of Selenium involves using it as a headless browser to implement automated web bots. For example, we might implement a web bot to perform 'screen scraping' of data from legacy web based applications, or to automate processes from closed or third party systems.

Read More