Tools and technology
We use various tools, frameworks, languages and technologies to help us make the complex simple.
Our team carefully select a combination of these in order to craft robust and elegant solutions for our partners.
We have be developing on the Microsoft platform since its incarnation and transitioned to .NET when it was released in 2002.
We are experts on the .NET framework; it is a vast framework that can be misused or misunderstood. It is mature and proven with a vast number of businesses scaling their operations on top of it. The future of .NET is bright with great vision coming from Microsoft and the Core teams.
Microsoft’s cloud platform ‘Azure’ is our platform of choice. We have been developing and architecting solutions targeting Azure since its initial release and have been helping businesses move and adapt their existing applications to take advantage of Azure.
Architecting and building for Azure or any other cloud platform is different to a traditional hosting infrastructure. Rather than think of servers, VM’s, database servers and ESB’s, the platform is structured as a set of services such as storage, search, web app and streaming services. The application is deployed into the platform as discrete and disparate elements which together make up the entire solution.
There are various strategies for migration, including:
- Lift and shift – replicating the existing architecture in Azure, commonly know as Infrastructure as a Service (IaaS).
- Hybrid – on-premise applications using remote services or applications in the cloud with site to site VPN.
- Longer term strategies where a ‘lift and shift’ is employed and then a gradual expansion into Azure, leveraging the relevant service. This is often referred to as Platform as a Service (PaaS).
(Big) Data, Analytics & Machine Learning
(Big) Data, Analytics and Machine Learning (ML) have been trendy buzzwords in recent years. These technologies and techniques are now more accessible and not just a powerful secret weapon of the world’s largest corporations.
We use data (small, medium and big) and machine learning to provide actionable insights and predictive analysis for our customers, focussed on driving competitive advantage and bottom line performance.
HTML5 & Browser APIs
HTML is our bread and butter and we are experts in developing efficient, semantic HTML code which complies to WCAG 2.0. Structured data, WAI-ARIA and prerender/prefetch techniques are always carefully considered.
Having a good grasp of new introductions to the HTML5 specification allows us to make use of an ever growing list of new elements, features and APIs. Experience and knowledge of the browser landscape allows our team to predict the consequences of our decisions.
We love pushing the boundaries of what the browser can do and love to experiment with the new features that browsers are releasing each day. We keep on top of it so you don’t have to!
Everything we produce is context aware. We always consider the type of device, connection speed and audience when designing and building appropriate software, but that’s just the beginning. Other environmental influences that affect user behaviour or could become a hindrance can also be considered. Device battery status, ambient brightness, location and motion information can help to create a more detailed view of the context. Given that context, we can shape the interface to suit.
We create apps for iOS, Android and the Windows platforms that provide people with access to functionality and information when they need it most.
To develop our mobile apps we primarily use Xamarin & Xamarin.Forms products built and supported by Microsoft. Xamarin enables us to build true native apps that are platform specific from a single code base, at speed. In most cases you don’t have to choose which platform to develop for first, you can have them all.
There are various languages that compile down to run on the Common Language Runtime (CLR) and we specialise in C#.
C# is an ever evolving language and is now one of the most prevalent languages for the majority of .NET applications. With its evolution, C# is becoming a language that can easily be applied to many functional paradigms and with future plans many of the F# features will be present.
We use these languages when part of a much wider project or integration where these languages either already exist or are the most suitable for the task in hand.
Datastores, Databases & Search
We are specialists with SQL Server, SQL Azure, Azure Table Storage, DocumentDB, MongoDB, Azure Search, Azure Data Lake, Azure Cosmos DB and Redis. These are the tools that we use on our projects day to day. We know how to get the very most out of these technologies and we know where their limits are.
In many cases, we use a combination of them to gain the most effective throughput, durability and scalability to meet the demanding requirements of your business. We are also comfortable with Oracle, MySQL, PostgreSQL, Cassandra, DB2, SolR and Elastic. When things get a little more legacy enterprise with technologies such as Progress, we will use data pumps to extract data into more appropriate stores for the task in hand.
Almost any data store can be consumed; from an excel spreadsheet all the way through to a green screen in the corner.
Sass for CSS
Sass is a preprocessor for CSS. We use Sass to make our CSS more modular and flexible; more intelligent. It allows us to maintain control when changes are required, or updates are made to software.
Along with the technology, it is important that we have the right processes in place to ensure that what we build is right, fit for purpose and high quality.
We are big advocates of agile practices and have been practicing them for many years. We have continuous integration (CI) servers, practice test driven development (TDD), refactor continuously, continuously deliver and where appropriate pair program to ensure what we build is the best it can be.
We have scrums, stand-ups, product backlogs, user story maps, post-it notes, lots of white boards and all the other great things you would expect in an agile software delivery firm. We don’t always use everything; just what is needed in order to deliver efficiently and effectively.
Beacons are a low-cost, hyperlocation technology that uses Bluetooth low energy (BLE) to emit location pulses to bluetooth enabled devices such as a smartphone.
They can be thought of as tiny lighthouses emitting a multi directional signal with identification information. This information can then be layered upon additional data to provide accurate hyperlocal, context aware experiences.
We can utilise this technology to provide a vast range of improved localised experiences; everything from live events through to travel and transport. Combining this technology with our mobile app development, machine learning and big data processing skills, we have been able to produce innovative solutions that haven’t been previously been possible using technology such as Near Field Communication (NFC).
We have adopted Umbraco as our content management system (CMS) as it is open source, proven and is built on top of .NET and C#, the framework and language we are specialists in.
Umbraco has a clear separation of content and views enabling designers and developers to build in the right way and not the way prescribed by the CMS vendors.
Open Source Work
The Razor Jam team use a number of open source projects. Open source is a wonderful thing and as well as benefiting from existing open source projects, we also like to give back to the community.
We have already open sourced a number of tools and extensions and have an initiative to publish many more.