Quantum computers are advancing, and they could soon break the encryption that protects today’s data. RSA and ECC, which are standard today, may not stand up to quantum attacks. This makes post-quantum cryptography a key part of planning for long-term security. Java is already preparing for this future. New updates in the JDK add support for quantum-safe algorithms, giving developers ... Read More The post Post-Quantum Cryptography Support in Java appeared first on Keyhole Software.| Keyhole Software
Artificial intelligence isn’t just changing how we write code—it’s transforming how we think about creativity in development. In this post, I revisit the playful spirit of early programming through a series of AI-assisted experiments using ChatGPT, GitHub Copilot, and JavaScript Canvas on CodePen. Along the way, I uncover practical lessons for developers on using AI to accelerate learning, inspire exploration, and rekindle the joy of creative coding... The post AI in Coding: Using ChatG...| Keyhole Software
Every new Java release impacts how teams build and run their applications. Java 25 arrived in September 2025 as the next long-term support (LTS) version after Java 21. It adds features that cut boilerplate, enhance security, and speed up code performance. Now is the perfect time to get familiar with updates and lay the groundwork for modernization efforts later down ... Read More The post Java 25 – What’s New? appeared first on Keyhole Software.| Keyhole Software
Teams often face a tradeoff between speed and code quality. AI-assisted development helps bridge this gap by taking on routine work such as generating| Keyhole Software
Integrating AI into Java projects has traditionally been complex—requiring multiple SDKs, custom integrations, and provider-specific code. Spring AI simplifies this process by providing a single, consistent layer for working with large language models in Spring Boot. No more stitching together libraries or rewriting code for every provider. In this guide, we’ll explore what Spring AI is, why it matters for ... Read More The post Spring AI: An Overview appeared first on Keyhole Software.| Keyhole Software
Cloud platforms now sit at the center of business planning. Many teams compare AWS for its wide service range, Azure for its ties to Microsoft, and Google| Keyhole Software
This blog walks through building a clean, modular service layer in Flutter to keep mobile apps scalable, maintainable, and resilient to change. Using real examples with third-party APIs, it demonstrates how to abstract logic, structure code for API calls, and easily swap data sources without major rewrites. You’ll also learn strategies like creating request/response classes and centralizing error handling to reduce redundancy and improve code quality.| Keyhole Software
In the dynamic world of software development, the phrase “the best Java testing frameworks for high-quality software” is more than just a statement; it's| Keyhole Software
Outdated deployment practices can slow down even the best software teams. When you’re still manually moving files between servers, it’s easy for small| Keyhole Software
A familiar challenge for many businesses is knowing when it’s time to modernize. Legacy applications that once ran smoothly on in-house servers start to| Keyhole Software
Deploying a mobile app is often more difficult than building it. In this guide, we simplify the confusing, often poorly documented process of deploying a Flutter app for internal testing. Learn step-by-step how to distribute your app through Google Play Internal Release and Apple TestFlight, so real-world testers can start using your app sooner.| Keyhole Software
In this blog, we'll explore how CI/CD automation with tools like JIRA Cloud, Jenkins, Slack, GitHub, SVN, and Postman benefits Agile teams as a whole.| Keyhole Software
Industry: Supply Chain & LogisticsTechnologies: Java, Azure DevOps, Terraform, Helm, Azure Kubernetes Service (AKS), CrossplaneServices: DevOps| Keyhole Software
Google Cloud Platform (GCP) offers developers and organizations the ability to create and deploy serverless Cloud Run functions. This code – whether it’s written in Node.js, Python, C#, or another language – can interact with other parts of GCP’s infrastructure. By default, the function is triggered by a basic HTTPS request. However, that is not our only option. In this blog, we’ll introduce the concept of event-driven functions—a powerful way to automatically respond to changes a...| Keyhole Software
Virtual machine deployments are no longer the standard for running modern software. If you’re using Docker for event-driven applications, choosing the| Keyhole Software
Get ahold of the Keyhole Software team! If you have questions regarding our consulting, application development, or learning services, send us an email.| Keyhole Software
It's an exciting phase when you decide to build a web application for your business. Whether you're looking to launch a new digital product, streamline| Keyhole Software
The purpose of this demo is to show you how easy it is to leverage Power Apps to quickly create an internal Attestation page. Power Apps can easily be tailored to meet your company’s design guidelines and delivered to your platform of choice, individualized, and tied to complex workflows leveraging the tools you use. This post is organized into three, fairly simple steps. I tried to break it down into minute, succeeding tasks, so it’s easy to follow along. Without further ado, let’s jum...| Keyhole Software
As a Standard Tier Consulting Partner in the Amazon Web Services (AWS) Partner Network (APN), Keyhole joins an elite group of technology partners nationwide.| Keyhole Software
Case Study: Modernizing Legacy COBOL Batch Processing for a Leading Food Wholesaler Keyhole Software successfully modernized a legacy COBOL batch processing system, addressing inefficiencies and integration challenges through an AI-optimized POC. Keyhole accelerated development efforts by 20-30% leveraging AI-driven tools in the migration from COBOL to Spring Batch, enhancing scalability, maintainability, and cloud-native capabilities for the client’s system. Download the case study -| Keyhole Software
The process of hiring quality developers has become more complex in today’s AI-driven world. With automated resumes and advanced interview technologies on| Keyhole Software
Keyhole Software is excited to announce the release of EnterpriseGPT, a powerful web application designed to help enterprise IT organizations leverage AI| Keyhole Software
This post walks through a hands-on experiment in agentic development using an AI-powered digital twin embedded in the IDE. See how a single, well-structured prompt enabled the agent to implement a real user story, generate behavioral tests, and prepare Git commit documentation—with minimal developer input. Includes real-world code samples, implementation insights, and a candid look at what worked, what didn’t, and where human oversight is still essential.| Keyhole Software
Welcome to the Keyhole Software Development Blog Join below to subscribe to the Keyhole dev blog and receive new posts by email. Free, no spam & opt out anytime. Categories Filter - All Topic - Choose One: .NET .NET Core Agile Angular Architecture ASP.NET AWS Azure Blockchain C# Cloud Consulting Databases Design DevOps Docker Flutter Git GraphQL Java JavaScript Kubernetes Microservices Mobile Node.js React React Native Spring TypeScript Testing Vue.js Video Xamarin.| Keyhole Software
In this guide, we'll show you how to leverage Ollama, a popular tool for local LLM execution, and the Continue VS Code extension to create a powerful coding environment. Follow along, and you'll be running AI-powered code suggestions in no time!| Keyhole Software
This blog describes the basics of what it takes to get an existing LDAP server moved from the PV virtualization type to HVM. I encountered this situation personally while working for a client earlier this year. Efforts have been made to keep most of it generic enough to be useful for other situations involving system upgrades or replacements as well.| Keyhole Software
The world of technology is constantly evolving, but despite the rise of cutting-edge programming languages and modern software frameworks, COBOL| Keyhole Software
Application Development Services At Keyhole Software, our core focus is application development, creating custom applications that solve real business problems. We cater to a wide range of clients, from well-funded startups to Fortune 100 organizations. We excel in providing high-quality new development or adding new features to existing applications. Additionally, we specialize in integrating with systems or third-party gaps to ensure seamless operations.Custom Application Development We bui...| Keyhole Software
When it comes to building applications in the .NET framework, performance is a critical aspect that can make or break the user experience. However, even| Keyhole Software
I am working on a project that leverages both Azure Functions as well as Cosmos DB. In trying to get both of these components wired together, I found that there are very few examples that work with the most recent versions of these components. I also saw examples that could work at a small scale, but don’t show industry-standard best practices, and would lead to performance issues if deployed in an environment with any meaningful traffic. To that end, I put together this blog post showing h...| Keyhole Software
In this post, I show how to cajole Array.sort() into producing the following order. This: instead of this.... The answer is to pass the sort function a comparator argument from the International Collator built into every major browser and Node.js. This approach is simple and declarative for lists of flat strings. The comparison function arguments default to each string being compared. For sorting objects such as a list of dropdown choices, just pass a pair of the sort field drill-downs to the...| Keyhole Software
Is offshore software development really the best option for your business? At first glance, the lower costs and larger teams may seem appealing, but in| Keyhole Software
In Part 4 of the Keyhole Blazor Server in .NET 6 series, we covered adding events in our Blazor components. In sum, I demonstrated how to add a service that contains the events that components can listen to with methods to notify when to invoke our events. After that, we added that service to the BaseComponent. The section is complete with adding the new character to our list of current characters in storage in order to notify all listening components of this event. I hope you’re enjoying w...| Keyhole Software
Parts of this blog, including the code examples and architecture frameworks, were generated using Keyhole Software's EnterpriseGPT web client—an| Keyhole Software
We help clients to plan, prioritize, and implement DevOps strategies that reduce time from "code commit" to deployment while maintaining uptime and quality. Services include Assessment & Strategy: Analysis of current practices, tools, and workflows, identifying areas for improvement and developing a tailored DevOps strategy that aligns with unique business objectives and goals. Containerization & Orchestration: Containerizing apps and adopting container orchestration platforms to automate the...| Keyhole Software
From its humble beginnings to its current status as a cornerstone of enterprise applications, Java has profoundly shaped the world of software| Keyhole Software
In today's fast-paced web development world, Next.js is one framework that's becoming popular among developers. It’s a powerful React-based solution that offers a lot more than just a traditional React and Node.js setup. What makes it so great? Let’s take a closer look.| Keyhole Software
Keyhole Software offers a range of services related to Microsoft Azure, helping clients leverage the capabilities of the Azure cloud platform. Services include Cloud Migration: Migrating applications and infrastructure to Microsoft Azure by assessing the existing environment, developing a migration strategy, and executing the migration process while ensuring minimal disruption to business operations. Azure App Services: Building and deploying web & mobile applications using Azure App Services...| Keyhole Software
Helping nationwide clients embrace cloud technologies through custom modernization, migration, and cloud-native development services. Services include Cloud Strategy & Consulting: Assessing current status and defining cloud adoption roadmaps, identifying the right cloud for specific needs. Cloud Migration: Migrating existing apps & infrastructure to AWS, Azure, and Google Cloud Platform through lift-and-shift, re-architecting, and re-platforming. Cloud Native Development: Developing apps from...| Keyhole Software
We work with organizations in every industry, all of which employ different technologies & development processes. To demonstrate, look at our recent projects.| Keyhole Software
Joining this elite tier of Microsoft Partners signifies that Keyhole has achieved the highest level of app development competence with Microsoft technologies.| Keyhole Software
If you work with Java, you're likely aware that performance is crucial. No one wants a slow application, especially when scalability and user experience| Keyhole Software
This blog post serves as a thought experiment, delving into potential solutions for a pattern I have noticed on projects throughout my career. As a consultant, I work with many companies, each with unique ways of organizing and handling software development. However, throughout my career at Keyhole and elsewhere, I’ve noticed something that seems to be consistent across all dev teams: the existence of legacy code. Legacy code can be frustrating and time-consuming to work with, so I used AI ...| Keyhole Software
In this post, we will walk through using Terraform to create a Google Cloud function that triggers when a file is uploaded and outputs the file details in| Keyhole Software
Have you ever wondered why some companies remain committed to Java while others thrive with .NET? As technology rapidly evolves, making the right choice| Keyhole Software
The digital landscape is constantly shifting, compelling enterprises to seek out strategies that not only streamline their development processes but also| Keyhole Software
AI is already changing the way developers build, test, and deploy software. At Keyhole Software, we have been using AI tools for over five years to| Keyhole Software
MSAL, or Microsoft Authentication Library, is an essential tool for developers aiming to implement robust authentication systems efficiently. It| Keyhole Software
Keyhole Software is proud to announce its Top-Four rank as a Software and Web Development firm by the Kansas City Business Journal. The ranking is a testament to Keyhole's contributions and growth in Kansas City’s technology sector.| Keyhole Software
The pace of technological change is faster than ever, and enterprises are under constant pressure to improve their software development processes. AI has| Keyhole Software
Discover how Terraform IAC setup simplifies cloud infrastructure management, with a focus on Identity Aware Proxy (IAP) configuration on Google Cloud Platform (GCP). Learn from real-world challenges and solutions to streamline your cloud environment and automate processes.| Keyhole Software
Software development constantly evolves, with new architectural trends emerging and reshaping how we build applications. Over the years, we've seen| Keyhole Software
Mainframes have long powered critical financial transactions and government operations. However, across the U.S., particularly in Kansas, these systems| Keyhole Software
Keyhole Software has a team of experienced architects who can help clients design scalable and efficient software architectures that can handle complex business requirements.Architecture Design Designing software architectures that are tailored to client business needs. This includes identifying the best technologies, frameworks, and design patterns to use for the project.Performance Optimization Optimizing software architectures for performance, enhancing application responsiveness to handle...| Keyhole Software
We are thrilled to announce that Keyhole Software is a Bronze Sponsor of Big Slick 2024! This annual event, which combines a passion for charity with the excitement of entertainment, brings together celebrities and the community to support a cause close to our hearts. As a company deeply committed to community engagement and social responsibility, Keyhole Software is honored to contribute to this noble cause. Our sponsorship reflects our dedication to supporting initiatives that make a tangib...| Keyhole Software
Your PostgreSQL database might be handling today’s workload just fine, but what happens when traffic surges, data volume skyrockets, or queries start| Keyhole Software
With a strong foundation in machine learning and automation, Keyhole helps clients design robust AI architectures that deliver at scale.| Keyhole Software
AI is changing how mobile apps work, and it no longer requires constant internet access. With on-device machine learning, mobile applications can run AI| Keyhole Software
In software development, certain patterns can make or break the maintainability and flexibility of your codebase. If you've ever faced challenges managing| Keyhole Software
JavaScript development has transformed dramatically since its inception, mirroring the rapid evolution of the digital world. Every few years, the tools| Keyhole Software
It’s time to release your latest front-end changes to production. However, as you create a new tag, you notice a large number of commits unrelated to the| Keyhole Software
Imagine a world where coding for the web was akin to painting with charcoal on rough cave walls—primitive, cumbersome, and lacking finesse. That was the| Keyhole Software
Choosing the right development framework can directly impact your app’s performance, scalability, and long-term success. In 2025, two major options stand| Keyhole Software
In my last post, “Introduction to Web Apps with Next.js”, we went through the steps of setting up a new Next.js project, customizing a landing page, and implementing a very simple web application. In this post, we’ll implement an Open Authentication (OAuth) based Single Sign-On (SSO) API within Next.js using NextAuth.js. We’ll be using GitHub as our provider, but the steps here are very similar for other platforms, such as Google or Discord. This will allow us to place portions of our...| Keyhole Software
Automated testing is a great way to ensure that any application can continue to grow and change while still giving fast and practical feedback to developers. This feedback can tell developers whether or not the changes introduced meet the requirements of the product and don’t introduce bugs. As discussed in a previous blog series, automated testing can be a valuable resource when trying to deliver both agile and maintainable applications. But where should you get started and what technologi...| Keyhole Software
In the software development space, RAG solutions are being used to enhance productivity and streamline processes. By indexing and searching the entire codebase of a project, these solutions provide relevant, context-aware results from an LLM. Instead of simply suggesting code snippets, RAG-based tools can analyze and generate entire use case implementations across multiple programming languages. The result is a significant boost in productivity, enabling software teams to work faster and more...| Keyhole Software
In this post, I am going to demonstrate how to set up a simple Next.js web application. Next.js is a heavily opinionated JavaScript framework, in that it has a lot of conventions and recommended tools built into its design. We'll use Next.js version 14.2.2 to set up the groundwork for a simple web application. By "web application," I mean an application that is designed primarily to collect input from a user in a web browser and return some output generated from that input.| Keyhole Software
Choosing the right API protocol is an important decision for any enterprise. The wrong choice can lead to performance issues, integration problems, and| Keyhole Software
Choosing the right database can make or break your application. It affects how your data is stored, how fast your app runs, how easily it scales, and how| Keyhole Software
Welcome to the second part of our series on Codeium Windsurf. If you haven't yet, check out Part 1 to get detailed insights into what Windsurf is and the features it brings to your coding environment. In this section, we'll explore how you can leverage Codeium Windsurf's features to accelerate your coding projects using real code examples.| Keyhole Software
Choosing the right development platform can greatly enhance your operational efficiency and innovation. Among the many options available, .NET development| Keyhole Software
As enterprises increasingly adopt cloud technologies, the importance of scalable and efficient solutions like Microsoft's .NET has never been more| Keyhole Software
This post covers three options for customizing an iOS or Android keyboard in a Flutter mobile application, with a code walkthrough of using the Keyboard Actions package to easily add keyboard features that increase user efficiency. Mobile app developers, have you ever noticed that the native iOS numeric keyboard does not include certain features that might be helpful? For example, a Done button? Or how about arrow buttons to traverse form fields? To jog your memory, here’s what the native i...| Keyhole Software
As a mobile developer, I have had to create a lot of listing pages. The content, styling, and layout may all differ, but structurally, they are the same. When I first started using Flutter, I was immediately impressed by how fast they are to stand up. Nearly out of the box, the ListView and the Card work extremely well and support a wide variety of devices and use cases with no additional styling - all while remaining extensible. With this in mind, when I needed to create a listing page that ...| Keyhole Software
Keyhole Software gives readers an in-depth code walkthrough and tutorial for how to integrate Avaya Agent for Desktop using React and SignalR. This integration allows the web-based application to asynchronously receive information about an inbound call, which enriches agents' experiences and protects against context switching and double documenting. As for technology, AAfD (Avaya Agent for Desktop) is used as the softphone, React as the library to compose the SPA (Single Page Application), an...| Keyhole Software
As access to AI models has become more widely available and more and more people are using these tools on a regular basis, many organizations are| Keyhole Software
As discussed in a previous blog post, Selenium is a popular choice for automation testing, and when you pair it with Cucumber, you unlock even more benefits. By writing test cases in Cucumber’s human-readable format, teams can improve clarity, boost maintainability, and make collaboration easier — even for non-technical stakeholders. In this post, I’ll walk you through how to integrate Cucumber with Selenium to create efficient, effective tests that set your team up for success.| Keyhole Software
Windsurf Series Introduction This is Part 1 of a 2-part blog series. In Part 1, you’ll learn: How to go from 10x to 100x productivity using the AI-assisted coding tool Windsurf What Windsurf is and how it enhances your IDE with Retrieval-Augmented Generation (RAG) Best practices for using features like Autocomplete, Supercomplete, Chat, Command, and Cascade How context-aware code generation can save time and reduce errors Tips to get the most out of Windsurf without falling into common pitf...| Keyhole Software
In this blog, I’ll demonstrate how to harness .NET MAUI’s capabilities by building a Google Maps app. I’ll walk you through how to set up your environment and how to integrate native services like the Google Maps Android SDK—all within the modern, unified framework that .NET MAUI provides.| Keyhole Software
Microservices have taken the tech world by storm, and with them, the complex challenges of ensuring they run smoothly under pressure. Enter the unsung| Keyhole Software
Artificial intelligence (AI) is transforming how businesses operate by improving efficiency, decision-making, and customer engagement. At Keyhole| Keyhole Software
The best ways to improve .NET performance hinge on understanding how crucial every millisecond is to user satisfaction and business outcomes. Enhancing| Keyhole Software
I’ve been developing JavaScript through all of the major existential changes we’ve had. Browser wars? I remember those. Trying to make a complex application before Firebug? Oh yeah, tell me about it. Having to roll my own AJAX request by hand? Vividly remember. Something that I experienced in all of my large JS projects before the last few years was an eventual point of no return, a metaphorical event horizon, beyond which the amount of time it took to build the code locally as well as on...| Keyhole Software
In the final part of the Blazor Server in .NET 6 blog series, we covered how to use data binding and dropdowns with lists and enums. This included a short introduction to setting up an HttpService, making a get call to the API, and viewing the results as a string. For further clarity, I also included a demonstration on how to add an HttpService that uses the built-in .NET HttpClient class to make calls to the D&D 5e API! Finally, I presented a way to add a dropdown with the available race opt...| Keyhole Software
Are you developing an AI-powered application but unsure whether Flutter or .NET MAUI is the right framework for your project? The decision you make can| Keyhole Software
LINQ (which stands for Language Integrated Query) is a library of collection manipulation methods that makes organizing and picking data out of collections much easier. LINQ can save a lot of time that would otherwise be spent writing complicated for or foreach loops. As with the nature of collections in programming, sometimes you will be working with gargantuan data sets and other times with smaller yet complicated collections.| Keyhole Software
In today's technological landscape, Keyhole Software recognizes the critical imperative for businesses to adopt cloud-native automation in order to remain| Keyhole Software
Ever wondered how you can make your Java code cleaner and easier to maintain? Writing concise, readable code is a challenge for every developer, but| Keyhole Software
Cloud services are reshaping business operations, enhancing flexibility and efficiency in our rapidly changing tech environment. As companies transition| Keyhole Software
In this post, I'll discuss how I’m currently working to migrate a suite of apps from Docker Swarm to Kubernetes. The client chose this migration to align| Keyhole Software
What if your Azure cloud computing setup could do more for less? Many businesses unknowingly overspend on cloud services due to inefficient configurations| Keyhole Software
Matthias Pupillo joins Zach on GenAI in the Enterprise this week. Matthias got into technology the curious way, starting when he was 8, reverse| Keyhole Software
Another great episode this time featuring the CEO of Think Big Leaders and innovation enthusiast, Amir Elion. Amir has worked with clients of all sizes, from all industries, on many different sides of business. His bread and butter is helping teams hone strategy, transform processes, and expand perspectives to find success in the ever-changing technological landscape. Now, at Think Big Leaders, Amir is using his expertise to help companies successfully adopt and innovate with Generatvie AI. H...| Keyhole Software
On this episode, Zach has the pleasure of talking with Doug Shannon, a Global Intelligent Automation Leader and a LinkedIn Top AI Voice. Together, they explore what's happening in Generative AI today. The companies behind the biggest platforms have still yet to turn a profit, but they'll continue to invest and spend exponentially. Why is that? What strategies are these AI giants using to hook users and (eventually) make money? What's going on behind the scenes? Zach and Doug answer these ques...| Keyhole Software
In 2024, Python has transcended its role as a mere programming language to become a strategic asset for large enterprises. From streamlining massive data| Keyhole Software
Python has become a cornerstone of modern programming, driving everything from simple automation scripts to complex artificial intelligence systems. Over| Keyhole Software
Creating RESTful APIs with Spring Boot is a straightforward process, making it a popular choice for a variety of applications, from UI to batch| Keyhole Software
RAG architecture is revolutionizing how businesses use AI by enabling Large Language Models (LLMs) to access and utilize private, real-time data.| Keyhole Software
Test coverage is a metric that measures how much of your codebase is exercised by tests, providing insight into the effectiveness of your testing efforts. In this blog, we’ll focus on API projects, exploring the types of tests suited for code coverage, realistic goals (and tools to help achieve them), and the minimum coverage needed to reap the benefits of your tests. Testing your code—down to individual lines—is a critical practice in modern software development. It helps ensure applic...| Keyhole Software
Keyhole corporate is located in Leawood, Kansas. Additional offices are located in St. Louis, Missouri, and Chicago, Illinois.| Keyhole Software