
Ditching SaaS Platforms With AI
Microsoft CEO Satya Nadella was widely misquoted as saying SaaS is dead in his BG2 Podcast interview. What he was really saying is that AI is moving the build-versus-buy line—and this year we crossed it twice. …
Our blog
We’ve mapped the path for your own knowledge journey
Most Recent Blog Post

Microsoft CEO Satya Nadella was widely misquoted as saying SaaS is dead in his BG2 Podcast interview. What he was really saying is that AI is moving the build-versus-buy line—and this year we crossed it twice. …
Filter:

We've seen the same pattern at almost every client. The backlog has a top half and a bottom half, and the top half is the active list. From it features are being shipped and bugs are being fixed. The bottom half, though, just gets longer, f …

You have workloads in AWS. You have workloads in Azure. They need to talk to each other over private IPs, securely, over encrypted tunnels across the public int …

In this blog, I want to show you how I built something I estimated would take me 20-60 hours of work in about half a day. This included a React frontend, .NET A …

I’m currently a 12-time recipient of the Microsoft MVP (Most Valuable Professional) award. The Microsoft MVP award is something Microsoft grants annually …

As a software consultant, I’ve noticed a pattern play out at nearly every client over the last year. A team adopts Cursor or Claude Code or Copilot and th …

If you run workloads on Azure Kubernetes Service, you may have recently received an email from Microsoft notifying you that support for NGINX Ingress on AKS is …

It seems like everyone is doing AI-assisted development these days. For a lot of people, it feels like magic: you ask for a thing, and suddenly you have that th …

Building a cross-platform app usually starts with a deceptively simple goal: one team, one codebase, multiple targets. The reality is that your framework choice …

Microsoft has announced that starting January 2026, the C# Dev Kit and C# VS Code extension will no longer support development using the .NET 6 and .NET 7 SDKs. …

Big shout-out to Dave Miller, whose famous YouTube video inspired this project. He laid out some pretty good groundwork for how the evolutionary algorithms work …

Modern .NET applications increasingly need to store data that doesn’t fit neatly into relational tables, whether it’s per-tenant custom fields, evolving product …

Does your business operate software that sees unpredictable (or even predictable) spikes in traffic? Do these spikes give you anxiety about how your technology …

Explore how C# developers can leverage both Azure AI Language and Azure OpenAI for sentiment analysis. This post compares traditional NLP services with LLM-base …

For many years, the .NET ecosystem has relied on established testing frameworks such as xUnit.net, NUnit, and MSTest. These frameworks have served teams well fo …

Wouldn’t it be nice if I could whip up a quick .NET mail merge utility that could send out a nice HTML-formatted email to all of your customers, signed by each …

In this guide, we’ll walk you through how to easily integrate Google Maps into your Angular 20 application using the Google Maps JavaScript API Loader. This method allows for dynamic loading of the Maps API, keeping your bundle size lean, e …

Many organizations today are looking to integrate AI into their existing infrastructure without completely rewriting everything. In this blog post, I’ll w …

Asynchrony is one of the most important concepts in modern software development, widely used for everything from I/O-bound operations to keeping UIs responsive. …

In this blog, we'll explore how to configure a .NET REST API to authenticate requests using Microsoft Entra ID (formerly known as Azure AD). With a step-by-step guide, we'll cover everything from configuration and authentication setup to en …

Before Next.js 13, Pages Router was the only solution based on traditional file-system routing and client-side navigation. Starting with Next.js 13, App Routing was implemented as a default replacement. App Router uses a component-based app …

We started Trailhead ten years ago with a simple promise: to make custom software project more predictable and less risky. Along the way we turned that promise …

As a QA engineer, I’ve tested countless APIs, first by hand and now often with Playwright automation. Tools come and go, but one thing that hasn’t changed is th …

Modern UIs often need elements that float above the rest of the page, such as modals, tooltips, popovers, or notifications. But when you try to build these inside your component hierarchy, you quickly hit frustrating limits like overflow cl …

As AI-powered no-code tools become more capable, many companies are asking the same question: do we still need developers? The answer isn’t as simple as what th …

Every year, .NET Conf brings developers from around the world together to celebrate what’s new, what’s next, and what’s possible with .NET. This year’s event, . …

Most QA processes verify what the system does. Human-centered testing verifies how it feels to use. Real users often don’t follow the expected test cases. They skip “obvious” steps, use products in unexpected ways, interact with your app on …

Microsoft officially retired Visual Studio for Mac on August 31, 2024. Now, the company recommends .NET MAUI developers use Visual Studio Code with a set of extensions. In this blog post, we’ll walk through the basic setup to get started. A …

Dark mode is no longer just a trend, it is something users expect. Whether your app requires it or you want to build it in from day one, theme toggling is now a standard feature of modern web apps. The good news: if you are using Angular 20 …
In a previous post on a generic builder pattern in C#, I shared a simple approach for creating objects using a generic builder. That solution works well in testing scenarios or internal tools, where developers already understand the rules o …

APIs serve as the backbone of modern applications, but without proper security testing, they can expose vulnerabilities that hackers exploit. This article covers the essential security checks for APIs, providing real-world examples, expecte …

Blazor and MudBlazor make it easier than ever to build modern, interactive web applications entirely in C#. In this blog, I’ll teach you how to set up a .NET Blazor project with MudBlazor, scaffold a server-paged data grid, and wire it up t …

Let’s start with a bold truth: accessibility testing is no longer optional, it is essential. Accessibility Helps Everyone Digital accessibility means making websites, mobile apps, and digital tools usable by everyone, including people with …

If you spend any time in technology circles these days, or even just scroll LinkedIn for five minutes, you might think AI has already solved every problem humanity has ever faced. There is a lot of talk about the “future of intelligence,” v …

Introduction AutoMapper is a popular open source object-to-object mapping library for .NET that has been a staple in developer toolkits for years. Jimmy Bogard, its creator, recently announced that AutoMapper will be going commercial. While …

Introduced in .NET Core 2.1, Span<T> and ReadOnlySpan<T> have become widely adopted in .NET applications, both in user code and in the BCL. But what are those types used for exactly? Why is everybody talking about them? When …

Once upon a time, in a land not so far from production, there lived a growing kingdom of buttons, forms, and other UI components. What began as a peaceful realm of components slowly turned into a tangled forest of inconsistencies—every team …

See how the Trailhead Framework combined with its new support for .NET Aspire and GitHub Copilot can make you a 10x productive developer. The post Turbocharged Development with The Trailhead Framework™ and .NET Aspire appeared first on Trai …

Everyone seems to be chasing microservices these days—promises of independent teams, targeted scaling, and fault isolation make them sound irresistible. It's been said you should only reach for microservices if you have a really good reason …

After decades in custom software delivery, one truth stands out: it's shockingly easy to build the wrong thing. I've seen engineering masterpieces with zero users, binders full of requirements but no working code, and "agile" used as a smok …

AI Chat for your business software shouldn't be a plunge into the unknown. Design your AI chat faster with Trailhead today. Traditional AI chat design often means long cycles of prototyping and revisions, which can derail budgets and timeli …

Discover the key differences between Azure AI Agents and Azure OpenAI Assistants in .NET. Learn when to use each, how they compare in capabilities, and why Microsoft provides both options for building conversational AI—from simple GPT-based …

Recently, I was reflecting on Large Language Models (LLMs) and how they contain all or much of the knowledge of the internet in a much smaller storeage space. For example, the ChatGPT 4 model is about 570 GB, a size almost anyone could stor …

In the age of distributed applications, seamless communication between processes and services is critical. Enter NetMQ: a lightweight messaging library for .NET that brings the robust, proven patterns of ZeroMQ from the C++ world to the .NE …

Distributed systems are all the rage right now—and for good reason. Many organizations are successfully turning to distributed architectures like microservices to meet their modern scalability and maintainability challenges. However, like e …

AI is everywhere these days, from chatbots and copilots to tools that write your code or answer your emails, but just because it saves you time doesn’t mean it’s secure. These AI models can be tricked, manipulated, or pushed to say things t …

In a previous blog post, I showed how you can speed up .NET APIs using Redis to cache frequently-accessed and infrequently-changing data. If you haven't checked it out yet, it provides a solid foundation on how Redis can dramatically improv …

If you're not an expert in it, cybersecurity can seem daunting, but it doesn't have to be. Whether you're a developer or a QA engineer, this guide will help you understand the basics you need to test your applications for better security. I …

React Native provides great styling capabilities, but working with plain stylesheets can sometimes feel limiting. brings more flexibility and organization to your styles, making development smoother. In this guide, we’ll walk you through se …

Overview Property-based testing (PBT) is an approach to designing tests, in which attention is shifted from checking specific inputs and expected outputs to whether the results satisfy more general properties of a system or so-called invari …

Trailhead Technology Partners is excited to welcome Mark Adams as a new partner. With decades of leadership experience and a passion for strong client relationships, Mark is an excellent addition to our team. Mark has more than two decades …

Legacy systems are the backbone of countless organizations. Yet, as technology advances, these systems often become roadblocks, riddled with challenges like technical debt, undocumented workflows, brittle integrations, and limited scalabili …

Infrastructure as Code (IaC) is a critical practice for managing cloud infrastructure efficiently. But what happens if you already have a large set of Azure resources and want to manage them using Terraform? You can manually reverse-enginee …

Modern web applications should not only be functional, fast, and attractive, but also accessible. Accessibility (or A11y, an acronym where "11" represents the number of letters between “a” and “y” in the word accessibility) means that users …

Cookies are more than just small text files delivered by your web browser—they are also the backbone of user personalization, session management, and seamless browsing experiences on the web. In fact, if you’ve ever browsed the web, you’ve …

Google Maps is a powerful tool for any application that needs location-based functionality. However, integrating it into an Angular application can sometimes lead to performance challenges. For example, in one of our projects that use Googl …

Every time I decide which ORM to use in a project, I find myself personally conflicted between Dapper and Entity Framework (EF). Both are incredibly powerful ORMs and excel in the roles they were designed for, albeit in slightly different w …

.NET 9 was released in November 2024 at .NET Conf. It introduces a wealth of new features and improvements that make it easier than ever to build high-performance, modern applications across platforms. Microsoft covered many different new f …

Caching plays a crucial role in performance in web applications by reducing strain on backend systems. The new HybridCache library, available in preview in .NET 9, simplifies caching and addresses some limitations of previous approaches, ma …

It's not an exaggeration to say that today, most of the code we ship is someone else's code. Sonatype releases an annual State of the Software Supply Chain report. In the 2024 edition of the report they estimate that upward of 90% of softwa …

To put it simply, this article focuses on reducing the clutter that Dependency Injection (DI) can bring to your code—a powerful tool for clean architecture that, if misused, can also lead to monstrosities like this: I mean… we've all …

In this post I will describe how to deploy a .NET Web API on Azure App Services using Docker, MSSQL server instance, and a KeyVault for storing secrets. I leverage Terraform for infrastructure as code, providing detailed, step-by-step instr …

Selecting the right tech stack can be a make-or-break decision for many projects. While some applications benefit from a complex stack, many others can thrive with a simpler, more streamlined setup. Choosing a lighter stack doesn’t just cut …

Recently, Trailhead partner Jonathan "J." Tower had the pleasure of discussing the topic of building a trusted software agency on Cory House's House of Code podcast. Together, they delved into what it takes to run a successful software agen …

As an application gains popularity, it naturally attracts a larger user base and introduces new features. This growth results in a steady increase in data generation, which is a positive signal from a business standpoint. However, it also b …

This blog post introduces the "Structured Outputs" feature in the August 2024 update of GPT-4o and GPT-4o Mini. "Structured Outputs" allow developers to define the format of AI-generated responses using JSON schemas. This enhancement ensure …

In modern web development, performance is crucial for delivering responsive and efficient applications. Angular, as a powerful framework, offers various features and optimizations to enhance performance. This blog post outlines best practic …

ASP.NET Web Forms has been a cornerstone of a lot of enterprise web development for the last two decades. However, in 2019 Microsoft made it clear that all of their new development will focus on ASP.NET Core and modern .NET (formerly known …

Trailhead Technology Partners recently undertook a project for a client in the sports nutrition industry. The client approached us with a critical need: to develop a system that would support athletes in identifying supplements that pose an …

Introduction .NET 8 introduced several exciting features that improve the developer experience and expand the flexibility of dependency injection (DI). Among these features is one called Keyed Services, which allows you to register and reso …

The blog raises questions about how to reduce the risk of memory overflow while processing images in a browser when users pick several images from device storage simultaneously. A common pitfall is browser memory overflow, which often rende …

With the latest update to LM Studio (v0.3.2), adding documents to your conversations has become a seamless process. Simply drag and drop or use the Attach button at the bottom of the app, and you'll be able to engage with large language mod …

Building on my previous guide, this blog post dives into setting up debugging for Ionic mobile apps on macOS, with a particular focus on iOS debugging using Visual Studio Code. I'll walk you through the steps to configure breakpoints, lever …

Machine learning (ML) is transforming industries by enabling businesses to make data-driven decisions, personalize user experiences, and improve operational efficiency. But for many organizations, the thought of adding ML capabilities to th …

Razor is a powerful tool that combines templates with data model to produce resulting text. Originally released in 2011, it has since evolved significantly, and now it is de-facto Microsoft recommended template engine. While it is standard …

Introduction Tag management and organization play a critical role in the efficiency and effectiveness of software testing. Tags can help categorize and organize test cases, test results, and other test deliverables, making it easier to mana …

We regularly test the functional requirements of our applications, but what about the architectural requirements like scalability, maintainability, and quality? Because these are harder to measure, we're must less likely to be testing these …

Have you ever maintained a software application where a change to one feature almost always broke another feature elsewhere in the application? Or have you ever tried to make a simple change to your software only to realize that it required …

When you are a developer or QA engineer working on a complex mobile app, you will want to test its functionality across various devices and operating systems. It is difficult to have all possible physical devices at your disposal, though, s …

Azure OpenAI Service enables easy deployment of powerful language models like GPT-4o. This guide walks you through the process, from securing access and creating resources in the Azure portal to navigating the updated Azure AI Studio for mo …

Ensuring that users understand and agree to the terms and conditions (T&C) of your applications is a very important step for every application developer. Most software teams don't think to test this page, and so I created this blog post …

In software projects, making informed and consistent architectural decisions over the long-haul is crucial to creating and maintaining good software. However, without proper documentation and a structured approach to these architectural dec …

In today's digital age, we're all about getting things instantly – from news updates to social media notifications. But have you ever wondered how those real-time updates work behind the scenes? That's where real-time web applications come …

When you are building a cross-platform mobile app, being able to debugger that application is crucial to make sure you've built something that is robust and works well on all devices. When you're using Ionic and Angular, that can be a littl …

This post covers how to effectively handle responses from concurrent API calls made to the same endpoint. I recently faced this situation and found a reliable solution, so I decided to share the experience. I'll start by looking at the issu …

In this post, I'll be diving deep into the world of hybrid mobile app development, pitting three of the most popular frameworks against each other: Ionic, React Native, and Flutter. Whether you're a seasoned developer looking to expand your …

Autofill is an essential feature for web forms. It saves time and minimizes errors by automatically filling in previously entered data. However, certain things might not work when you use autofill in your forms, such as validation. In this …

In this post I will describe how to host a .NET Web API on AWS Lambda – it's actually really easy! I will also explain step-by-step, how to add Terraform support to be able to set up the AWS resources automatically. Create a Lambda ASP.NET …

CSS variables are not anything new in the CSS world, but they are a powerful and flexible way to centralize and manage styling properties, provide consistency, make maintenance easier, and give dynamic control over visual elements across an …

Integration Testing In software testing, integration tests are used to test the interaction between different parts of the system, such as the interaction between the database and other APIs and services. Observing the testing pyramid, inte …

In recent years, serverless architecture has emerged as a game-changer, promising scalability, cost-efficiency, and ease of deployment. However, amidst the hype surrounding serverless, it's crucial to recognize that it's not a one-size-fits …

Recently, Trailhead's very own Jonathan "J." Tower was at NDC Sydney, and sat down with Matt Wicks from SSW TV to discuss YARP: Your Gateway to Effortless Project Migrations. During this insightful conversation, J. walks Matt through Micros …

In JavaScript, the data structures you use plays an important role in how you organize and manage data in your applications. Occasionally, you might find yourself deciding between using Objects and Maps. Both of these can store and manage d …

Introduction Ensuring the health and reliability of your applications is important for minimizing lost revenue and maximizing the user experience. By adding health checks to your application, you can continuously monitor the pulse of applic …

Overview Continuous delivery is a cornerstone of contemporary software development, enabling teams to deliver high-quality software quickly. However, it can be a challenge to integrate software security scanning practices like static analys …

Cryptographic algorithms hide behind the curtain of so much of the digital communication that supports our daily lives online. As quantum computers continue to advance, the likelihood increases of computers that can defeat all of our curren …

Managing different environment configurations for a modern Angular web application can be daunting. However, with the help of Azure DevOps Release Pipelines, you can streamline this process to ensure efficient and hassle-free environment ma …

We understand that trust is a key component of our partnerships with our clients. When you work with Trailhead to design, architect, and build software that is key to your business, you want to be certain that the result is what you expect …

In modern software, using CSV files (and other similar flat file formats) for imports and exports has become very common as a way to integrate between systems. The processes of importing CSVs can be deceptively intricate, and full of potent …

AI is already at our doorstep, signaling that it's time for everyone to learn how to use it more effectively and responsibly. In exploring how to utilize ChatGPT, I found no ready-made solutions for helping with software QA processes. Howev …

At Trailhead, we understand that a successful business will often need to have a variety of software systems, leading to disparate systems that don't always talk to each other. This demands a seamless way to connect those systems to avoid o …

When I started to look at the Flutter framework as a powerful and flexible tool for cross-platform mobile development, I was pretty fascinated with the idea of transforming a Flutter mobile app into a web application. To test it out, I deci …

The builder pattern stands out as a design pattern that is a particularly useful solution to object creation problems in object-oriented programming. It is particularly suited to dynamically creating objects in a step-by-step process. Typic …

Defects in software are not merely glitches; they are golden opportunities for refining our craft, enhancing user experience, and building software that stands the test of perfection. Unknown Author In this article, I would like to look at …

What's a Design System? A design system is a set of standards to manage design at scale by reducing redundancy. They also create a shared language and visual consistency across different pages and channels. At Trailhead Technology Partners, …

Amazon AWS is rather slow when it comes to supporting new .NET versions on its Lambda feature. This is where running your functions from a docker image comes in handy, allowing you to run any version of .NET. In this short blog article, I w …

In this blog post, I'll explore what is required to thoroughly test push notifications in mobile apps. I'll start by exploring the functionality behind these notifications and then provide you with the comprehensive checklist I use for test …

With cyber threats multiplying daily, it can be overwhelming to try to stay on top of security in our software applications. When faced with the daunting task of writing code to mitigate the risk of malware, viruses, and other types of thre …

Artificial Intelligence (AI) and Large Language Models (LLMs) have impacted every aspect of technology work, giving software engineers (programmers, QA, designers, and leadership) a useful new tool to enhance their daily work. As it relates …

Have you ever built an application that needed to generate and display thumbnail images? Thumbnail images for any type of image: PNG, JPG, GIF, HEIC, HEIF, SVG… And not just thumbnails for image files but for PDFs, documents, and othe …

In this blog article, I will show you how I split my development environment for a single application between macOS and a Parallels virtual machine (VM) running Windows. But, before we jump into it, I want to elaborate briefly on what my mo …

Many C# and .NET developers are grappling with aging ASP.NET projects still running on the .NET Framework. If that's you, you're not alone. Many of us have invested heavily in these applications, so the prospect of a full-scale upgrade can …

Introduction The .NET Options Pattern is a powerful and flexible way to handle configuration settings in your applications. Whether you are building a web application, a desktop application, or a microservice, effective configuration manage …

Living in a Data-Driven World Advancements in technology often create more complexity, which underscores the pivotal role that metrics play in shaping our understanding of what is happening in these complex systems. It should be no surprise …

So, you have decided to take the plunge and implement a tool for Software Composition Analysis (SCA). This is a big step toward improving the security of your applications and the security posture of your organization as a whole. Congratula …

Winget, Microsoft's native package manager for Windows 10 (version 1709 and later) and Windows 11, offers a streamlined CLI for efficient application management. This blog post introduces Winget's installation and basic commands for install …

In the early days of the .NET Framework, releases were infrequent and timed with Windows releases. The shift to an open-source platform brought a welcome change. Now, we anticipate an annual .NET release tied to the .NET Conf event every No …

Front-end performance plays a crucial role in the success of all web applications, including the ones build with React. Users expect fast-loading pages and smooth interactions, making it imperative for front-end developers to optimize their …

At Trailhead Technology Partners, we understand that in the fast-paced world of technology, every business must continuously innovate and evolve. However, in the quest for rapid development, there's a lurking challenge that can impede progr …

Testing a mobile app with Bluetooth features is all about making sure that the app can connect to Bluetooth devices and that all Bluetooth-related features within the app work as expected. In this article, I use a mobile app as an example t …

Introduction In a previous post, we discussed foundational practices for Software Security. Several of these practices require selecting and implementing purpose-built software security tools. These are the most frequently tools used to sca …

In the fast-paced world of software development, brevity is often hailed as a virtue. Software engineers, with their affinity for efficiency, are notorious for distilling complex concepts into succinct messages–sometimes even a little too s …

Introduction In this blog, I will show you the pivotal role Quality Gates (QGs) can have within the software development process. I will delve into their application, benefits, and indispensable function in guiding your software projects to …

In the quickly evolving landscape of software, keeping pace with advancements is crucial to avoid having your application become a dreaded "legacy" application. Recently, Trailhead's very own Jonathan "J." Tower had the privilege of being a …

Introduction In the rapidly evolving realm of content management systems, the notion of a "headless" content management system (CMS) has gained significant traction due to its adaptability and scalability. Strapi is an exceptional example o …

In October 2022, Microsoft announced that Xamarin and Xamarin.Forms apps will no longer be supported after May 1, 2024, which is just eight months from the writing of this post. The reason for this deadline is that Xamarin is being replaced …

As you may already know, there's no App Center support for .NET MAUI yet (and possibly won't be). Trailhead is using Azure Pipelines for many of our projects, including for generating our mobile builds and distributing them to the app store …

The Power of ChatGPT for Quality Assurance Greetings, dear readers! This exploration focuses on how the integration of AI language models like ChatGPT into Quality Assurance (QA) operations can serve as a transformational tool. It is import …

In this blog, I want to dive into a debate that is happening in software teams all over the world right now as I write this sentence: Should we use GitHub or Azure DevOps for our source control, team collaboration, and DevOps? At Trailhead, …

In this post, I want to show you how to publish a .NET MAUI app via TestFlight from an Azure Pipeline. These tools allow you to create cross-platform Android and iOS apps, then use pipelines to build the app any time its code changes, and d …

Time Zones Are Challenging Without a doubt, time and time zones is one of the most "painful" and difficult topics for everyone who is involved in software development in one way or another. And we are not even talking about major internatio …

Why Do I Need to Design an App Logo? Whenever Trailhead starts designing an app logo, we believe it's more than just creating something that looks good. Rather, an app logo should convey your app's purpose, as well as your company's values, …

In this blog, I want to shine a light on the practical benefits that Infrastructure as Code (IaC) brings to software development projects. I’ll show you how defining our applications’ infrastructure needs in the form of code can more easily …

What is ADA? The American with Disabilities ACT (ADA) was passed and signed into law in July 1990. It prohibits discrimination against people with disabilities in areas such as employment, transportation, communications, education, health a …

This document provides a comprehensive overview of Architecture Design Records (ADRs), a crucial tool for documenting key decisions in software development. Initially coined by Michael Nygard, ADRs encapsulate the reasons and context behind …

Everyone is talking about containers and serverless, but when should you use each in your projects? Anyone who has worked with containers and orchestration much will tell you how much more complex they can make your application’s infrastruc …

When you’re using a shell command, it’s common to pass options to that command using dashes—which are also called hyphens. These options can be specified with either a single dash (-) or a double dash (—). But have you ever wondered when to …

At Trailhead, we have built many enterprise-grade .NET APIs that deal with managing documents – files, photos, PDFs, etc – and in this blog I will distill some best practices that will help you optimize your API and download performance, re …

Could not create SSL/TLS secure channel  Recently, a legacy ASP.NET Web API application that we support started logging an exception and also giving back a HTTP 500 response on some of its API endpoints. The exception, or at least an i …

It can be difficult to choose a development stack for your custom mobile apps today due to the number of possibilities currently available. Though there are many options, each of them falls into one of three basic categories: native, cross- …

Just like venturing into the wilderness requires the proper gear, developing REST APIs with ASP.NET Core also requires the right tools and equipment for your application to perform at its best.  At Trailhead, Redis caching is one such …

Ensuring a software application is thoroughly tested is crucial for most software projects. By conducting comprehensive testing, any potential bugs or defects can be identified and addressed before they have a chance to cause any negative e …

What’s the big deal about file uploads? Well, the big deal is that they are tricky operations. Implement file uploads the wrong way, and you may end up with memory leaks, server slowdowns, out-of-memory errors, and worst of all, unhappy use …

Most C# developers have of heard of .NET MAUI by now, but maybe not everyone knows exactly what it is, why it's so important, and how to get started using it. That's why we are so proud of our teammate Rodrigo Juarez for co-authoring a book …

One of the oldest debates for businesses that use software is the question of “buy versus build.”  On the one hand, you have off-the-shelf or software-as-a-service (SaaS) offerings which are tried and true and spread the cost for their …

Material UI (MUI) library is a well-known React UI tools that help you build UIs in React more easily and quickly. It provides its own set of material icons, but also allows you to use your own SVG icons. It works perfect when you have s si …

At Trailhead Technology Partners, we often help our customers navigate the complex world of migrating custom software applications to the cloud. For anyone thinking about undertaking such a project, I’ve outlined the whys and hows of Trailh …

It's easy to add an iOS or Android splash screen into an Ionic Angular app using the @capacitor/splash-screen package. This is a simple and effective way to provide a pleasing visual experience to the user while the app is loading. In this …

Have you ever wished you could publish your existing web application as a mobile app? In this article I will provides a detailed guide for building cross-platform mobile and desktop applications using Ionic, Angular, Capacitor, and Electron …

For the first time in many years, the public has recently become aware of artificial intelligence (AI) again after OpenAI released their much-publicized chatbot, ChatGPT. Something about its uncanny intelligence and human-like fluency captu …

As you know, Android is always adding features in its new versions and now the Post Notifications permission has been introduced from Android 13. In this blog, we are going to explore how to request it in our Xamarin.Android projects. Sampl …

The full reference to the API can be found in the Google Maps API Docs and the Angular implementation in the source code. The post Google Maps Markers for Angular appeared first on Trailhead Technology Partners. …

Many organizations have their own tried-and-true components or in-house tools which they use from project to project. Instead of copying these from project to project, it's a good idea to share them as private packages. If you're already us …

When analyzing a lot of information, it's always a challenge to retain things in memory. In order to facilitate this process, mnemonics were invented — simple mechanisms of tweaking your brain to memorize and later recall some sequence of a …

Preview and Definition In this blog I will describe the techniques of domain testing. These techniques are popular with a lot of testers because of the way they have absorbed a little bit of the best of several other simple-but-effective te …

Angular has a very powerful feature called reactive forms. As powerful as this feature is, though, reactive forms have had one significant drawback for while—the lack of strict typing. Finally, this shortcoming was improved in Angular v14. …

Being able to exchange data between the front-end and back-end of web applications is a primary component of their architectural design. For enterprise projects, neither part of the application should trust they data they receive. For examp …

Android 12 has a few surprises for mobile developers, and its new splash screen is one of the most notorious. In previous versions of the SDK, you needed to create an activity if you wanted to customize the splash screen. However, we now ha …

Google Maps provides powerful mapping technology that is available to use inside your own applications. In this blog, I'll explain how you can get started using it inside an Angular web app. Before You Start Before you can start working wit …

This article is part of C# Advent 2022. During the month of December, two new articles are posted each day until December 25th. These articles will be about something in the C# language, and are written by experts from around the C# co …

With the recent release of OpenAI's ChatGPT, a powerful chatbot trained on a massive amount of internet data, many people are wondering whether they should be worried about the implications of this technology. In this blog post, we'll take …

Most greenfield software projects start with a database design, usually followed by an API implementation that often happens in parallel with the user interface (UI) implementation. Before the UI is ready to wire up to the API with real dat …

As you know, Xamarin.Forms (and now .NET MAUI) allows us to create cross-platform mobile apps. However, one of the biggest challenges with these technologies is knowing how to customize your Controls and UI. In this blog, we are going to ex …

QA engineers often must jump in to already running projects and start testing and adding value as soon as possible. When this occurs, we must gain knowledge of the system architecture, business logic, project process, QA process, legacy iss …

In .NET, there is built-in API that supports logging (Microsoft.Extensions.Logging) and there are many third-party logging providers that implement that API. For simple use cases, the built-in logging can be sufficient, but for many or our …

Web components are custom, reusable HTML, CSS, & JS elements with their own complex behavior which is encapsulated away from the rest of the code and can be used independently in web apps. We can create and compile web components in man …

I've been catching up with Azure Functions recently, and one thing I learned is that setting up your development environment, project structure and Azure DevOps pipeline is not as straightforward as I'd expect. The goal of this article is t …

The mightiest rivers lose their force when split up into several streams. Ovid What Is Decomposition? The academic definition of decomposition is “a method that allows us to replace the solution of a complex problem with the solutions of ma …

At Trailhead, we think that .NET is the world’s most powerful and flexible framework for custom development. That’s why we are so excited that .NET 7 was officially released this week. When you see what’s new in .NET 7, we think you will ag …

In a nutshell, this post is going to be about using natural and surrogate keys in Entity Framework. Definitions and a Simple Example A surrogate key is a key (the type doesn't really matter) with no business meaning that is used to uniquely …

In this blog I've compile some of my API testing guidelines for testing RESTful APIs. I've tried to cover most of the basic cases as well as some more advanced ones. When you're testing an API, it can be hard to think of everything, so I ho …

Xamarin Community Toolkit is an official library provided by Xamarin which includes animations, behaviors, converters, effects, and many other things that help speed up development. Its first stable version was released in January 2021 and …

.NET MAUI is out, Xamarin.Forms support will end on May 1, 2024, and you are probably thinking "How can I migrate my Xamarin.Forms app to this new .NET MAUI framework?" Fear not, my fellow developers! I shall provide an example of how …

React has changed web application development. It has become quite a bit easier to make a good interactive website than it used to be. A React application in its compiled and deployed state is just a static website, or website that contains …

Building custom business software is difficult. In my two-and-a-half decades of experience in the industry, I've seen many different mistakes that contributed to custom software development projects being late or even failing. As I've worke …

A popular topic nowadays is integration or migration between GitHub and Azure DevOps. Most people who work with .NET are used to working with Azure DevOps, but GitHub is getting more and more popular with that crowd as a topic of conversati …

The Problem The principle of code reuse is a foundational axiom of software development. This best practice has manifested itself, in part, in the form of centralized package repositories like Nuget and NPM from which developers can access …

The Problem Recently, I was working on a Xamarin.Forms project consuming a private NuGet feed. Because the account I use to log in to Visual Studio has permissions to consume that feed, I just added the feed address to Visual Studio and I c …

I recently updated the Nuget packages of an Xamarin.Forms application which accesses health and physical activity data in iOS and has been doing it successfully for a long time. One of the libraries to update was the third-party library res …

About gRPC Google Remote Procedure Call (gRPC) is a modern, high-performance framework for APIs that evolves the age-old remote procedure call (RPC) protocol. At the application level, gRPC streamlines messaging between clients and back-end …

Definition and Main Characteristics In this blog I want to talk about using checklists as an important—and even necessary—part of the testing process. You might use a checklist to smoke test an application after a release or to regression t …

Ugly Console Applications On several occasions, I have had to create console applications that update the screen as time passes or some background task progresses. When I do, I often end up with something that looks like the following scree …

The world of cross-platform app development is undergoing a major revolution right now thanks to .NET MAUI—the next evolution of Xamarin.Forms.  Using .NET MAUI, developers can build a single project and compile it into native code and …

Usually, I work with more than one computer and reinstall my operating system from time to time, so I spend a lot of time downloading and configuring Visual Studio. To make this process easier, we can add parameters to the Visual Studio ins …

Note: you can download the source code for this blog post here. As you know, Xamarin.Forms application usually will generate code at compilation time using your XAML definition, and after building and distribution, the application is ready …

Hello folks! Did you ever think about how cool it would be to re-use an already working and tested Java library to save a couple of months of development time? Well, you're not alone. The third-party library ecosystem for Android is vast an …

How secure is your software? Pondering this question can provoke uncertainty (or even fear) depending on the experience level of your software team and the maturity of your control processes. However, this does not need to be the case for m …

A lot is being said these days about microservices. It's enough of a popular trend online, at conferences, and in software architect chit-chat, that one could easily get the idea that microservices are always the superior architecture to th …

Introduction What are Design Patterns in Software Programming? There are many definitions of the design pattern. For example, from Wikipedia: "In software engineering, a software design pattern is a general, reusable solution to a commonly …

You've heard about responsive web apps (or websites), but did you know you can also make responsive emails, and also make them react to a users' actions? To begin, let me show you how the basic HTML email below looks like when it is display …

SignalR from Microsoft .NET is a great tool for adding real-time websocket functionality to web applications. The latest libraries simplify the process to add Hubs to your .NET API projects, and the technology makes sending messages between …

Today I want to talk about how you can improve your test automation scripts, and give you two of my favorite tips on how to accomplish that. If you are new to test automation, these two tips will definitely help you. If you have some AQA (a …

Microservices – have you heard the buzzword? Does this describe you? You are responsible for the architecture or product management of an enterprise sized software system. This could be an in-house system, or some software as a service syst …

As you know, traditional testing follows a fairly simple model in which there are test cases written beforehand for all the possible use cases and then, after the test cases are reviewed and approved, they are executed until they reach spec …

We occasionally want to include a specific UI design in our mobile apps that should look exactly the same on both Android and iOS, but we don't want to construct custom controls to do so. This is when the NControl package comes into play an …

This is the second post in the custom control series. You can read the first one where we created a custom control to select dates. In this second post in the series, I want to show you when and how to use control templates. A primary reaso …

In a previous blog post, I did a brief introduction to Architecture Software Visualization using the C4 Model. On this one, I want to show you some of the available tooling and give you a quick walkthrough on how to create our architecture …

I recently upgraded a project to .NET 6 and immediately started getting an error on your hosted build pipeline in Azure DevOps. Error NETSDK1045: The current .NET SDK does not support targeting .NET 6.0. Either target .NET 5.0 or lower, or …

Introduction In this blog post, I will try to briefly condense my understanding of the work of Simon Brown, the creator of the C4 Model, a set of hierarchical diagrams that you can use to describe your software architecture. I will talk abo …

SignalR is the best way to enable real-time communication in modern .NET web applications. So let's say you have built your first app with SignalR, deployed it to Azure, and everything is working great. After seeing a huge influx of new use …

Modern aspnetcore Web APIs are relatively easy to protect using Bearer Tokens issued by Duende IdentityServer. But there is a lot of legacy .NET framework code out there. This blog contains some simple tips to bring modern authentication to …

I learned a lot in college that is applicable to my life and career…and some of it was even in my classes. Nowhere was that more true than with my time doing comedy improvisation. At the beginning of my sophomore year in college, I tr …

Slow SQL or incorrect or missing indexes can cause performance issues in an API. And those issues can be difficult to fix or even find. I use a variety of tools when investigating slow APIs, but if the API uses a SQL database I have a few t …

When we want to reuse some of our user interface elements in a Xamarin.Forms application, one of the best ways to do it is by using custom controls. In this Github repository, I created a sample application with a custom control that is a c …

Why Use Automated API Tests In the world of modern software development and testing, the word "automation" has become a familiar one, and for good reason. When automation permeates our processes, it often serves our ultimate goal of saving …

Xamarin REPL (read-eval-print-loop) is one of the most important tools for building Xamarin.UITest tests. It’s a console-like environment in which we can see the structure of the visible part of our application using queries and commands. I …

Every day we see a lot of new projects, sites, and companies that appear on the Internet. Each one works to attract more and more users. For a company to grow successfully, they must be sure that their products and the products they have cr …

.NET 5 has been available for some time now and .NET 6 will be released in late 2021, but perhaps your team is still using .NET Framework 4.7 or 4.8. You may have preferred to stick with what your team knows, or with the time-tested platfor …

Creating a free Azure account Did you know you could create a free Microsoft Azure account for learning and testing purposes? Doing so will provide you with 12 months of free access to popular services, a $200 credit for the first 30 days, …

Scenario: Your API needs to call another REST API – or your Console App or Web Job needs to call some other REST API. You can acquire an access token to that API from an OAuth2 Security Token Service such as Duende Identity Server, Okta, Au …

Azure Functions is a serverless solution to run code in the cloud. The functions run inside a function app. You can develop functions directly in the Azure portal, or use VS Code or Visual Studio. I see the functions as a way to write small …

Microsoft Build 2021 just wrapped up, and a lot of the new coverage was about things like the upcoming major updates to Windows, the retirement of IE and pre-Chromium Edge, and the new Windows app store that is being developed. However, thi …

Most of the time, we software developers focus on optimizing our code. We want it to be fast, easy to understand, and easy to maintain. Many of those codes are related to data handling, API queries, record updates, etc. But how many times d …

What is Azure Command-Line Interface (CLI) Azure CLI is a set of commands used to manage Azure resources. The advantages to using it are that you can access functionality not available in the portal, and you can automate your work. You can …

Basics JMeter is an open-source software application that can be used for both performance and load testing. Performance testing focuses on how a system performs overall under a given configuration. It gives you diagnostic information which …

I finally have a time-tracking process that I love, and it only took me 22 years of trial and error to figure it out. With how often I hear others complain about tracking their time, I figured I needed to share this big news with the whole …

With modern mobile devices supporting both dark & light modes, users expect applications to respect those settings. Since Xamarin.Forms version 4.6.0.967, we can easily add support to our apps using the AppThemeBinding markup extension. …

So, what is visual software testing? In short, it’s the process of checking the interface that is displayed to the user for compliance with stated requirements. There are several reasons why I want to share the practice of visual software t …

Untangling Inclusive Design Inclusion is more than accessibility. Inclusive design is about making the most out of your user base and creating better digital products, whatever situation your users find themselves in. It’s better for busine …

I was recently working on a project where a fillable PDF form was populated with data and a QR code needed to be placed on the form. Here an easy way to accomplish that: First, load the form – in this example I just read it from a file. I a …

Software projects are notoriously difficult to estimate accurately. After years of building successful custom software projects, I've learned a lot of helpful DOs and DON'Ts for creating accurate estimates and had the opportunity to test th …

We were inspired recently when Microsoft announced that it was going carbon neutral by 2030, and completely paying back its historic carbon debt by 2040. Amazon has also made the similar, though slightly less lofty pledge to be carbon neutr …

When you're using a shell command, it's common to pass options to that command using dashes–which are also called hyphens. These options can be specified with either a single dash (-) or a double dash (–). But have you ever wondered when to …

In this post, I'm going to explain object rotation from the mathematical point of view and demonstrate different methods of how to draw rotated objects in SkiaSharp. Rotation and Math So, what is rotation? Usually, when someone says that he …

The Float Label Pattern was introduced as a UI concept back in 2013 by Matt (@mds). Less than a year later it became a part of the "Material" design guidelines. There are a number of ways to implement floating labels in a Xarmarin Forms pro …

As Xamarin.Forms developers we often face cases when controls are not customizable enough to meet our requirements. Luckily for us, the Xamarin team has foreseen these needs and offered a way of how the rendering process can be overridden t …

In this article, I will show you an easy way to create a PDF document and style it properly with Razor engine and the DinkToPdf library. The source code of this project can be found on GitHub. Setting up the project For simplicity, we will …

Many years ago I was working on a wind turbine app and had to create a gauge control for it. I was searching for any available library that would do the job for me. It was the first custom control project of my life with no prior experience …

To get authenticated SignalR hubs to work, you need to allow credentials in CORS, so your aspnetcore code might look like this: services.AddCors(action => action.AddPolicy(policyName, builder => builder .AllowAnyMethod() .AllowAnyHe …

Almost all apps use some kind of graphic icons to make the UI more attractive and easy to use. Here I will demonstrate a quick way of adding icon fonts in Xamarin applications. There are plenty of icon sets available as web fonts for free, …

Could not create SSL/TLS secure channel Recently, a legacy ASP.NET Web API application that we support started logging an exception and also giving back a HTTP 500 response on some of its API endpoints. The exception, or at least an inner e …

Mobile devices are getting better and better at solving sophisticated tasks. Not only because of better hardware, but also due to modern trends towards AI – such tasks as face detection, barcode recognition, rectangle detection, text r …

Expandable UITableViewCells with variable height, beautiful animations and no 3rd party libraries – all with just a few lines of code. Interested? Let me show you how I got all of these. Let’s start by taking a look at the final result: The …

I've been working remotely–or telecommuting, as it is often known–for nearly 10 years, and in that time I've learned a few DOs and DON'Ts for being a successful remote worker. I'm far from perfect, and am still learning and getting it wrong …

When I talk to .NET developers, I find that there's still a lot of confusion about what .NET Standard is and how it relates to .NET Core. In fact, this weekend I'll be giving a talk at the Music City Tech conference in Nashville, Tennessee …

In two recent posts, I blogged about SignalR in .AspNet Core 2.1, and automating boilerplate multitenancy code in Entity Framework Core 2.1. Both these blogs alluded to knowing the identity of the calling user through claims and dependency …

In any real world enterprise application, you end up writing a lot of similar, tedious boilerplate code for bookkeeping . This logic results in a data model where each table is adorned with a lot of non-domain specific columns – does this l …

UPDATE, 2018 May 30: It's alive. The dotnet team officially announces 2.1 on their blog! The newest version of ASP.NET Core will be released in just a few days, the team announced this week. They're targeting Wednesday, May 30, 2018, with a …

In a previous post, I wrote about using SignalR in AspNetCore. Today, I tried the next step up – SignalR as a service! You will find the announcement here. This page has more details. So why would you want to run SignalR as a service, rathe …

We've all been waiting for the first production release of SignalR for AspNetCore, and supposedly it's going to be out there any day now. Impatient as I am, I started using 1.0.0-preview2-final – and it rocks!  Here are some tips and t …

I recently needed to write a routine that exports a query to an Excel file, and came up with a generic solution I thought might be helpful to share. The code is in an AspNetCore project, but the same principles would work in other .NET scen …

Did you notice that graphic designers love gradients? It was a trend in mobile designs that started in 2017 and now it’s getting even more popular. Let me share a few useful code snippets that will help you to make awesome looking iOS appli …

Xamarin.Forms includes its own animation infrastructure that allows for easy creation of simple animations, while also being versatile enough to create complex animations. Let’s take a look how we can reproduce some popular animations with …

In the previous blog we discovered how to set up our environment. I prefer using the solution with Webstorm, Truffle and Ganache, but feel free to use what's appropriate for you. Now we are going to write our first smart contract. …

A decade ago, Silverlight was king and I loved every minute of it. XAML provided precise and flexible layout, the Silverlight plugin alleviated most browser compatibility issues, MVVM and data binding allowed you to reduce coupling, and WCF …

Automation testing is usually considered to be a separate process which requires the automation QA team to write tests in a separate solution with their own build process and workflow. But I will show how we can easily build an automated te …

Nowadays, everything related to the crypto-world is becoming more and more popular. I bet you've also thought about launching your own successful startup with millions in investments! As the saying goes, though, no pain no gain. But at …

Single Page Applications or SPA have become the gold standard for modern web applications. Almost every application contains two major areas: secured and unsecured. Today we will learn how to restrict access to the secured area for non-auth …

I was recently doing some load testing of a client’s site, using Visual Studio Load Tests. I was running 1000 simulated users in Azure and measuring the response of the site. This is a great way to see how your site behaves under load. To m …

Great mobile apps and luxury cars are similar, in that a lot of attention is paid to even the smallest details. Since Android version 7.1 (API 25) there is a new feature that lets users get to a specific screen or an action right from the h …

At Trailhead, we've recently been noticing an increase in a couple of questions from our clients. They are: 1. Is Web Forms dead?, and 2. Is ASP.NET still a good framework to use to build a new application? First off, there is some confusio …

Microsoft CEO Satya Nadella says "bots are the new apps." If that's the case, then developers are going to need a cross-platform way to build those bots, just like they have cross-platform frameworks for building mobile app. Good news, beca …

At Trailhead, we've been making the switch from Angular 1 to Angular 2 for our new web front-end projects. The selection of tools and components for Angular 2 has been slowly expanding, but it is still young and somewhat limited at times, w …

Visual Studio Team Services provides an excellent cloud-based solution for project management and code repositories (both TFS and Git). Part of our standard process at Trailhead is to set up Continuous Integration builds and deployments so …

The other day I was faced with this task, and ran into quite a few issues on the way. Despite intense googling and corresponding on the AWS forums, I ended up having to resolve it myself, so by blogging about it I hope it might make someone …

I don’t know about you, but in my circles I hear a growing buzz about Containers, Docker, and how this will revolutionize the way we deploy software. What is this new thing and how will it affect you? The Short Version The short version is …

Trailhead Technology Partners is very pleased to announce the addition of our newest partner, Josh Eastburn. Current partners, J. and John, give their thoughts about the expanded partnership below, and welcome Josh to the team. Josh also sh …

In this Edition Introducing ASP.NET Core 1.0 Trailhead's Experience with .NET Core Our ASP.NET Core services: "ASP.NET Core" Online Training > Consulting Services > Introducing: ASP.NET Core 1.0 On June 27, Microsoft announced the o …

.NET Core 1.0 just shipped, and we just finished converting one of our projects from .net core RC2 to RTM. Thanks to Shawn Wildermuth and Rick Strahl for your helpful tips. It was way easier than going from RC1 to RC2! Ths pr …

A real life example A couple of months ago, we delivered a mobile app along with a middle tier API component, used by a fleet of drivers in direct delivery of goods. The app integrated with the back end sales and routing system, with GPS lo …

Today I had a lot of fun cobbling together lots of the puzzle peices of the Internet of Things (IoT), Cloud and Mobile that everyone is talking about. My project allows a Raspberry Pi 3 running Windows IoT to control 12V landscape lighting, …

Recap of Build 2016 day-two announcements: Mono going MIT, Xamarin free for VS users, Microsoft Graph, conversation-as-a-platform, and the broader cross-platform/open-source pivot. …

Recap of Build 2016 day-one announcements: Windows 10's 270M install base, Xamarin on Windows, the Anniversary Update, Bash on Windows, Microsoft Ink, the unified Windows/Xbox store, HoloLens dev kits shipping, conversation-as-a-platform, and Cortana growing up. …

We had the pleasure of discussing this important industry happening with Jesse, head on over to listen! The post J and John on Jesse Liberty's podcast, on Microsoft Xamarin Acquisition appeared first on Trailhead Technology Partners. …

The startup staffing conundrum Congratulations! You are a startup with a great software product idea, and have secured enough funding to get a first version to market! You know time to market is critical, you are concerned someone else migh …

Recently, we sent out the following newsletter that explains some exciting recent developments in cross platform mobile development. You can use the signup form to the right to add yourself to the newsletter list, we would love to stay in t …

Recently, we sent out the following newsletter to those we thought might be interested in what's happening on the technology front this year. You can use the signup form to the right to add yourself to the newsletter list, we would love to …

J. Tower About a year-and-a-half ago, I had a dream of starting a company with several of my favorite friends and colleagues, and today that dream is starting to come true. Please allow me to introduce Trailhead Technology Partners. Trailhe …
Along with checking back here from time to time, another great way to stay current on trends in software development is to subscribe to the Trailhead newsletter. If you’re interested, just sign up below and you’ll receive our newsletter—and only that. You can always unsubscribe whenever you like.
And this blog enables us to do exactly that for you.
Feel free to come back whenever you’re interested in seeing what’s new or broadening your own knowledge base.
Ready to come with us?
Together, we can map your company’s software journey and start down the right trails. If you’re set to take the first step, simply fill out our contact form. We’ll be in touch quickly – and you’ll have a partner who is ready to help your company take the next step on its software journey.
We can’t wait to hear from you!
Together, we can map your company’s tech journey and start down the trails. If you’re set to take the first step, simply fill out the form below. We’ll be in touch – and you’ll have a partner who cares about you and your company.
We can’t wait to hear from you!
Montage Furniture Services provides furniture protection plans and claims processing services to a wide selection of furniture retailers and consumers.
Montage was looking to build a new web portal for both Retailers and Consumers, which would integrate with Dynamics CRM and other legacy systems. The portal needed to be multi tenant and support branding and configuration for different Retailers. Trailhead architected the new Montage Platform, including the Portal and all of it’s back end integrations, did the UI/UX and then delivered the new system, along with enhancements to DevOps and processes.
We’ve logged countless miles exploring the tech world. In doing so, we gained the experience that enables us to deliver your unique software and systems architecture needs. Our team of seasoned tech vets can provide you with:
We collaborate with you throughout the entire process because your customized tech should fit your needs, not just those of other clients.
The modern world demands versatile technology, and this is exactly what your mobile and cloud-based apps will give you.
We want your end users to have optimal experiences with tech that is highly intuitive and responsive.
This combination of Agile software development and IT operations provides you with high-quality software at reduced cost, time, and risk.
– BOB DOERKSEN, Vice President of Technology Services
at Montage Furniture Services
When you hit the trails, it is essential to bring appropriate gear. The same holds true for your digital technology needs. That’s why Trailhead builds custom solutions on trusted platforms like .NET, Angular, React, and Xamarin.
We partner with businesses who need intuitive custom software, responsive mobile applications, and advanced cloud technologies. And our extensive experience in the tech field allows us to help you map out the right path for all your digital technology needs.
We partner with businesses who need intuitive custom software, responsive mobile applications, and advanced cloud technologies. And our extensive experience in the tech field allows us to help you map out the right path for all your digital technology needs.
Ready to come with us?
Together, we can map your company’s tech journey and start down the trails. If you’re set to take the first step, simply fill out the contact form. We’ll be in touch – and you’ll have a partner who cares about you and your company.
We can’t wait to hear from you!
You’ll be getting an email from our team shortly. If you need immediate assistance, please call (616) 371-1037.
Montage Furniture Services provides furniture protection plans and claims processing services to a wide selection of furniture retailers and consumers.
Montage was looking to build a new web portal for both Retailers and Consumers, which would integrate with Dynamics CRM and other legacy systems. The portal needed to be multi tenant and support branding and configuration for different Retailers. Trailhead architected the new Montage Platform, including the Portal and all of it’s back end integrations, did the UI/UX and then delivered the new system, along with enhancements to DevOps and processes.
We’ve logged countless miles exploring the tech world. In doing so, we gained the experience that enables us to deliver your unique software and systems architecture needs. Our team of seasoned tech vets can provide you with:
We collaborate with you throughout the entire process because your customized tech should fit your needs, not just those of other clients.
The modern world demands versatile technology, and this is exactly what your mobile and cloud-based apps will give you.
We want your end users to have optimal experiences with tech that is highly intuitive and responsive.
This combination of Agile software development and IT operations provides you with high-quality software at reduced cost, time, and risk.
– BOB DOERKSEN, Vice President of Technology Services
at Montage Furniture Services
When you hit the trails, it is essential to bring appropriate gear. The same holds true for your digital technology needs. That’s why Trailhead builds custom solutions on trusted platforms like .NET, Angular, React, and Xamarin.

We partner with businesses who need intuitive custom software, responsive mobile applications, and advanced cloud technologies. And our extensive experience in the tech field allows us to help you map out the right path for all your digital technology needs.
We partner with businesses who need intuitive custom software, responsive mobile applications, and advanced cloud technologies. And our extensive experience in the tech field allows us to help you map out the right path for all your digital technology needs.
Ready to come with us?
Together, we can map your company’s tech journey and start down the trails. If you’re set to take the first step, simply fill out the contact form. We’ll be in touch – and you’ll have a partner who cares about you and your company.
We can’t wait to hear from you!
You’ll be getting an email from our team shortly. If you need immediate assistance, please call (616) 371-1037.