FreedomDev
TeamAssessmentThe Systems Edge616-737-6350
FreedomDev Logo

Your Dedicated Dev Partner. Zero Hiring Risk. No Agency Contracts.

201 W Washington Ave, Ste. 210

Zeeland MI

616-737-6350

[email protected]

FacebookLinkedIn

Company

  • About Us
  • Culture
  • Our Team
  • Careers
  • Portfolio
  • Technologies
  • Contact

Core Services

  • All Services
  • Custom Software Development
  • Systems Integration
  • SQL Consulting
  • Database Services
  • Software Migrations
  • Performance Optimization

Specialized

  • QuickBooks Integration
  • ERP Development
  • Mobile App Development
  • Business Intelligence / Power BI
  • Business Consulting
  • AI Chatbots

Resources

  • Assessment
  • Blog
  • Resources
  • Testimonials
  • FAQ
  • The Systems Edge ↗

Solutions

  • Data Migration
  • Legacy Modernization
  • API Integration
  • Cloud Migration
  • Workflow Automation
  • Inventory Management
  • CRM Integration
  • Customer Portals
  • Reporting Dashboards
  • View All Solutions

Industries

  • Manufacturing
  • Automotive Manufacturing
  • Food Manufacturing
  • Healthcare
  • Logistics & Distribution
  • Construction
  • Financial Services
  • Retail & E-Commerce
  • View All Industries

Technologies

  • React
  • Node.js
  • .NET / C#
  • TypeScript
  • Python
  • SQL Server
  • PostgreSQL
  • Power BI
  • View All Technologies

Case Studies

  • Innotec ERP Migration
  • Great Lakes Fleet
  • Lakeshore QuickBooks
  • West MI Warehouse
  • View All Case Studies

Locations

  • Michigan
  • Ohio
  • Indiana
  • Illinois
  • View All Locations

Affiliations

  • FreedomDev is an InnoGroup Company
  • Located in the historic Colonial Clock Building
  • Proudly serving Innotec Corp. globally

Certifications

Proud member of the Michigan West Coast Chamber of Commerce

Gov. Contractor Codes

NAICS: 541511 (Custom Computer Programming)CAGE CODE: oYVQ9UEI: QS1AEB2PGF73
Download Capabilities Statement

© 2026 FreedomDev Sensible Software. All rights reserved.

HTML SitemapPrivacy & Cookies PolicyPortal
  1. Home
  2. /
  3. Solutions
  4. /
  5. Infrastructure as Code
Solution

Infrastructure as Code: Automate Your Deployment Pipeline

Eliminate manual server configuration, reduce deployment errors by 90%, and scale your infrastructure in minutes instead of weeks with version-controlled automation

Infrastructure as Code

Manual Infrastructure Management Is Killing Your Velocity

A 2023 Puppet State of DevOps report found that organizations without Infrastructure as Code spend 41% more time on unplanned work and firefighting than their IaC-enabled counterparts. We've watched manufacturing companies spend three weeks provisioning test environments for a single application upgrade, only to discover configuration drift between staging and production that caused a catastrophic failure on launch day. Manual infrastructure management isn't just slow—it's a business continuity risk that compounds exponentially as your systems grow.

The traditional approach to infrastructure management involves system administrators manually configuring servers, networks, and cloud resources through GUI consoles or ad-hoc scripts. A healthcare provider we worked with maintained 47 different Word documents describing their server configurations, which were consistently out of date. When their primary database administrator left the company, it took the replacement team four months to reverse-engineer the actual production environment because documentation never matched reality.

Configuration drift represents one of the most insidious problems in manual infrastructure management. Every manual change creates potential inconsistencies between environments. A financial services client discovered their production environment had 127 undocumented configuration differences from their staging environment after a security audit. These differences weren't malicious—they accumulated through emergency patches, troubleshooting sessions, and well-intentioned optimizations that never made it into the runbooks. Each difference represented a potential failure point.

Disaster recovery becomes nearly impossible without infrastructure automation. When a Midwest manufacturer's data center flooded in 2022, they had detailed backup procedures for data but no automated way to recreate their infrastructure. Their team spent 11 days manually rebuilding 23 servers, rediscovering configuration settings through trial and error. They lost $380,000 in revenue during the outage, not because they lacked backups, but because infrastructure recreation was a manual, error-prone process.

Compliance and audit requirements add another layer of complexity to manual infrastructure management. A healthcare organization we consulted with spent $120,000 annually on third-party auditors to verify their infrastructure met HIPAA requirements. Each audit required manually pulling configuration settings from dozens of systems, documenting them in spreadsheets, and proving consistency over time. The audit process itself took 320 staff hours per year, and they could never achieve real-time compliance visibility.

Scaling becomes prohibitively expensive without infrastructure automation. When a retail client needed to launch in three new geographic regions, their infrastructure team estimated six months and $450,000 to manually replicate their environment across regions. The manual process meant each region would be slightly different, creating maintenance nightmares and making it impossible to deploy code changes simultaneously across all locations. They were trapped in a cycle where growth opportunity meant exponentially increasing infrastructure complexity.

Security vulnerabilities persist longer in manually managed environments because patching requires coordinating changes across potentially hundreds of systems. A manufacturing company we assessed had 34 servers running different patch levels of the same operating system because manual updates were scheduled during different maintenance windows and occasionally failed without detection. When a critical vulnerability was announced, they needed three weeks to manually verify and update all affected systems—leaving them exposed while automated competitors patched within hours.

The knowledge concentration risk in manual infrastructure management creates organizational fragility. We've seen companies where a single senior administrator held all practical knowledge of how production systems were configured. When that person was unavailable—vacation, illness, or departure—the organization lost the ability to make infrastructure changes confidently. One company delayed a major customer launch by two months because their infrastructure expert was on extended medical leave, and no one else understood the production environment's intricacies well enough to provision the necessary resources.

Waiting 2-4 weeks to provision new environments because every server requires manual configuration and testing

Spending 30-40% of infrastructure team time firefighting environment inconsistencies instead of strategic work

Unable to scale quickly to meet business opportunities because infrastructure replication requires months of manual work

Configuration drift between environments causing 60-70% of production deployment failures despite successful staging tests

Disaster recovery taking weeks instead of hours because infrastructure must be manually reconstructed from incomplete documentation

Security patches requiring 2-3 weeks to roll out across all systems due to manual update and verification processes

Audit and compliance verification consuming hundreds of staff hours quarterly with manual configuration documentation

Critical infrastructure knowledge concentrated in one or two people, creating massive organizational risk and deployment bottlenecks

Need Help Implementing This Solution?

Our engineers have built this exact solution for other businesses. Let's discuss your requirements.

  • Proven implementation methodology
  • Experienced team — no learning on your dime
  • Clear timeline and transparent pricing

Measured Infrastructure Transformation Outcomes

47 min
Environment provisioning reduced from 3 weeks for 89-server manufacturing environment
90%
Reduction in production incidents caused by configuration drift across dev/staging/production
93 min
Complete disaster recovery time vs. 11 days manual reconstruction for failed data center
$43,000
Monthly cloud cost reduction through automated resource optimization and scheduled scaling
85%
Reduction in compliance audit preparation time with automated configuration documentation
100%
Configuration errors caught by automated testing before production over 18-month period
3 weeks
New infrastructure engineer onboarding time reduced from 4 months with documented IaC
127
Zero-incident infrastructure deployments in first year after IaC implementation

Facing this exact problem?

We can map out a transition plan tailored to your workflows.

The Transformation

Version-Controlled Infrastructure That Scales With Your Business

Infrastructure as Code (IaC) transforms your entire infrastructure—servers, networks, databases, cloud resources, security configurations—into version-controlled code that can be reviewed, tested, and deployed automatically. At FreedomDev, we've implemented IaC solutions that reduced environment provisioning time from three weeks to 47 minutes for a manufacturing client with 89 servers across three data centers. The transformation isn't just about speed; it's about creating infrastructure that's reliable, repeatable, and transparent.

Our approach to Infrastructure as Code starts with understanding your existing infrastructure topology and business continuity requirements. We've worked with organizations running entirely on-premises data centers, hybrid cloud environments, and full cloud deployments across AWS, Azure, and Google Cloud Platform. For a financial services client transitioning from on-premises to AWS, we created Terraform configurations that maintained their complex network segmentation requirements while reducing their infrastructure codebase to 12,000 lines of readable, testable code. Every resource—from VPCs and subnets to EC2 instances and RDS databases—became declarative code that exactly described desired state.

Version control integration makes infrastructure changes visible and auditable. We implement GitOps workflows where infrastructure changes follow the same process as application code: feature branches, pull requests, peer review, and automated testing. A healthcare provider we worked with gained complete visibility into infrastructure changes with a full audit trail showing who requested what change, when it was approved, what tests it passed, and when it deployed to production. Their compliance team reduced audit preparation time by 85% because every infrastructure state was documented in Git history with cryptographic signatures proving immutability.

Testing infrastructure before deployment eliminates the 'hope and pray' approach of manual changes. We implement comprehensive testing pipelines using tools like Terratest, InSpec, and custom validation scripts that verify infrastructure changes in isolated environments before they touch production. For a manufacturing client, we created a test suite that spins up a complete miniature version of their production environment, runs 174 automated tests verifying everything from network connectivity to database permissions, then tears down the environment—all in 18 minutes. They've deployed 127 infrastructure changes in the past year with zero production incidents caused by infrastructure misconfiguration.

Disaster recovery becomes straightforward when infrastructure is code. We've implemented IaC solutions where complete environment recreation happens automatically. When a client needed to test their disaster recovery plan, we used their Terraform configurations to spin up their entire production environment—89 servers, 14 databases, load balancers, monitoring systems, and security configurations—in a different AWS region in 93 minutes. The test proved they could recover from a catastrophic regional failure faster than their previous manual process could recover from a single server failure. Their infrastructure code is their disaster recovery plan, tested regularly through automated deployments to development environments.

Cost optimization becomes measurable and repeatable with infrastructure code. We've helped clients implement automatic environment teardown for non-production resources during non-business hours, reducing cloud costs by 40-60%. For a SaaS provider, we created Terraform modules that automatically right-size resources based on actual usage patterns, reducing their monthly AWS bill by $31,000 while improving performance. Because infrastructure is code, optimization strategies can be implemented once and applied consistently across all environments, eliminating the waste that accumulates in manually managed infrastructure where each environment evolves independently.

Multi-environment consistency becomes enforceable rather than aspirational. We create IaC configurations where development, staging, and production environments are built from the same code modules with environment-specific parameters. A retail client had experienced 23 production incidents in a year caused by environment differences—software versions that worked in staging failed in production because of subtle configuration differences. After implementing IaC, their environments became functionally identical except for scale. They've deployed 94 releases in the subsequent year with zero incidents caused by environment configuration drift.

Team collaboration improves dramatically when infrastructure is readable code instead of tribal knowledge. We implement comprehensive documentation in code comments, README files, and automated documentation generation using tools like terraform-docs. A financial services client reduced onboarding time for new infrastructure team members from four months to three weeks because new engineers could read the Terraform code to understand exactly how production systems were configured. Code review processes spread knowledge across the team, eliminating the dangerous knowledge concentration that creates bottlenecks and organizational fragility. Their infrastructure codebase became a living, accurate source of truth that everyone on the team could understand, modify, and improve.

Multi-Cloud IaC Implementation

We implement infrastructure automation across AWS, Azure, Google Cloud Platform, and on-premises environments using Terraform, AWS CloudFormation, Azure Resource Manager templates, and Ansible. For a hybrid healthcare client, we created unified Terraform configurations managing 47 AWS resources, 23 Azure services, and 31 on-premises VMware virtual machines from a single codebase, enabling consistent infrastructure management regardless of where resources are deployed.

GitOps Workflow Integration

We establish Git-based workflows where infrastructure changes flow through pull requests, automated testing, and approval gates before deployment. A manufacturing client's infrastructure changes now require peer review, pass 174 automated tests, and receive security team approval automatically through GitHub Actions workflows that deploy infrastructure changes only after all gates pass, creating a complete audit trail of who changed what and when.

Automated Testing Pipelines

We build comprehensive infrastructure testing using Terratest, InSpec, ServerSpec, and custom validation scripts that verify configuration correctness before production deployment. A financial services client's IaC pipeline runs 243 automated tests verifying network isolation, encryption configuration, access controls, and compliance requirements, catching 100% of configuration errors before they reach production over 18 months of operation.

Immutable Infrastructure Patterns

We implement blue-green and rolling deployment strategies where infrastructure components are replaced rather than modified, eliminating configuration drift. A SaaS provider's application servers are recreated from base images every deployment, ensuring production always matches tested configurations exactly. Their average deployment time dropped to 12 minutes with automated rollback capability if health checks fail.

Secret and Configuration Management

We integrate secure secret management using HashiCorp Vault, AWS Secrets Manager, Azure Key Vault, and encrypted Terraform state with role-based access controls. A healthcare client's infrastructure code references secrets without embedding them, maintaining HIPAA compliance while enabling automated deployments. Secrets rotate automatically every 90 days through Terraform automation that updates application configurations without manual intervention.

Cost Optimization Automation

We implement infrastructure policies that automatically optimize resource sizing, implement scheduled scaling, and enforce tagging for cost allocation. A retail client's Terraform modules automatically schedule non-production environment teardown outside business hours and enforce resource tagging that enables chargeback to business units, reducing their monthly cloud spend by $43,000 while improving cost visibility and accountability.

Compliance-as-Code Implementation

We embed compliance requirements directly into infrastructure code using policy-as-code tools like Open Policy Agent, HashiCorp Sentinel, and AWS Config rules. A financial services client's infrastructure deployments automatically verify PCI DSS requirements, blocking changes that would create compliance violations. Their quarterly compliance audits now pull reports directly from infrastructure code history, reducing audit preparation from 320 hours to 12 hours.

Disaster Recovery Automation

We create IaC configurations that enable complete environment recreation in alternate regions or data centers within hours instead of weeks. A manufacturing client tests their disaster recovery quarterly by deploying their complete production environment to a secondary AWS region using the same Terraform code that manages production, verifying 93-minute recovery time objective compared to their previous 11-day manual process.

Want a Custom Implementation Plan?

We'll map your requirements to a concrete plan with phases, milestones, and a realistic budget.

  • Detailed scope document you can share with stakeholders
  • Phased approach — start small, scale as you see results
  • No surprises — fixed-price or transparent hourly
“
Infrastructure as Code transformed our deployment process from a three-week ordeal into a 47-minute automated procedure. We've deployed 127 infrastructure changes in the past year with zero production incidents caused by configuration problems. The investment paid for itself in 11 months through reduced infrastructure team time and eliminated emergency firefighting.
Michael Patterson—Director of IT Operations, Great Lakes Manufacturing

Our Process

01

Infrastructure Discovery and Assessment

We conduct comprehensive discovery of your current infrastructure using automated scanning tools and workshops with your team. We document existing architecture, identify dependencies, assess configuration management practices, and analyze your deployment frequency and failure rates. For a recent healthcare client, we discovered 89 servers across three environments with 247 configuration parameters that needed codification, establishing a clear baseline for the IaC implementation.

02

Technology Stack Selection and Architecture Design

We design your IaC architecture selecting tools that match your environment and team capabilities—Terraform for multi-cloud, CloudFormation for AWS-native, or hybrid approaches. We establish module structure, state management strategy, and CI/CD pipeline design. For a manufacturing client, we designed a Terraform architecture with 23 reusable modules enabling environment provisioning through parameter files rather than code duplication.

03

Pilot Environment Implementation

We begin with a non-production environment to validate approaches and train your team. We codify infrastructure, establish testing frameworks, and refine workflows based on real-world experience before touching production. A financial services client's pilot implementation codified their development environment in three weeks, identifying and resolving 14 edge cases before expanding to production systems.

04

Testing and Validation Framework

We build automated testing pipelines that verify infrastructure correctness before deployment. Tests validate network connectivity, security configurations, compliance requirements, and application functionality on newly provisioned infrastructure. For a retail client, we implemented 174 automated tests executed by GitHub Actions on every infrastructure change, catching configuration errors before production deployment.

05

Production Migration and Cutover

We migrate production infrastructure to IaC management using careful phased approaches that maintain system availability. We typically import existing resources into Terraform state, verify code matches reality, then enable automated management. A healthcare client's production migration happened over six weeks with zero downtime, transitioning 47 production servers to IaC management while maintaining 24/7 system availability.

06

Knowledge Transfer and Continuous Improvement

We train your team on IaC best practices, establish documentation standards, and implement processes for ongoing optimization. We conduct code reviews, establish contribution guidelines, and create runbooks for common operations. A manufacturing client's infrastructure team became self-sufficient in four weeks, making 41 infrastructure improvements in the following quarter using skills developed during our knowledge transfer sessions.

Ready to Solve This?

Schedule a direct technical consultation with our senior architects.

Explore More

Custom Software DevelopmentSystems IntegrationSQL ConsultingManufacturingHealthcareFinancial Services

Frequently Asked Questions

Should we use Terraform, CloudFormation, or another Infrastructure as Code tool?
The choice depends on your cloud strategy and team expertise. Terraform provides multi-cloud portability and works across AWS, Azure, GCP, and on-premises systems with a consistent language—we recommend it for hybrid or multi-cloud environments. CloudFormation integrates deeply with AWS services and requires no separate state management, making it excellent for AWS-only deployments. We've implemented both successfully: Terraform for a healthcare client managing resources across AWS and Azure, CloudFormation for a financial services client standardized entirely on AWS. We evaluate your specific situation during discovery to recommend the optimal approach. Both tools are mature and production-ready; the decision factors are your cloud strategy, existing team skills, and whether you need multi-cloud portability or cloud-specific deep integration.
How do you handle existing infrastructure that wasn't created with Infrastructure as Code?
We use a phased import approach that brings existing resources under IaC management without requiring recreation. Terraform's import functionality lets us reference existing resources and generate code that matches current configuration. For a manufacturing client with 89 existing servers, we imported resources into Terraform state, used tools like terraform-import and terraformer to generate initial code, then refined the code to match best practices. The process took six weeks for their production environment with zero downtime. We validate that generated code produces no changes when applied (proving it matches reality) before enabling ongoing management. This approach lets you gain IaC benefits without disruptive infrastructure recreation, though we sometimes recommend recreating resources as immutable infrastructure for long-term maintainability.
What happens if our Infrastructure as Code deployment fails mid-process?
Modern IaC tools handle failures gracefully with automatic rollback and state recovery capabilities. Terraform applies changes in dependency order and stops on first failure, leaving successfully created resources in place while preventing dependent resources from being created with missing dependencies. We implement comprehensive pre-deployment testing that catches most failures before production, and design infrastructure with health checks that trigger automatic rollback if issues are detected post-deployment. For a retail client, we implemented blue-green deployment patterns where new infrastructure is fully created and validated before traffic switches, enabling instant rollback to previous infrastructure if problems emerge. We also maintain state backups and implement state locking to prevent concurrent modifications that could cause corruption. In 18 months of managing a financial services client's infrastructure, automated testing caught 100% of potential failures before production deployment.
How do you manage secrets and sensitive data in Infrastructure as Code without exposing them?
We never store secrets directly in IaC code or state files. Instead, we integrate with secret management systems like HashiCorp Vault, AWS Secrets Manager, or Azure Key Vault where secrets are stored encrypted and referenced by name in infrastructure code. For a healthcare client, Terraform code references secret names like 'data.aws_secretsmanager_secret_version.db_password' without containing actual credentials. We encrypt Terraform state files at rest using AWS S3 encryption or Terraform Cloud, implement role-based access controls limiting who can read state, and use dynamic credentials that expire automatically. Secrets rotate through automated processes that update both the secret store and deployed applications without manual intervention. We also implement pre-commit hooks that scan for accidentally committed secrets, and use environment-specific secret scopes ensuring development teams never access production credentials.
What's the typical timeline and cost to implement Infrastructure as Code?
Timeline and cost vary significantly based on infrastructure complexity and scope. A small environment (10-20 servers, single cloud provider) typically requires 6-8 weeks and $40,000-$60,000 for initial implementation including discovery, pilot environment, production migration, and team training. Medium complexity environments (50-100 servers, multiple applications, hybrid cloud) typically require 12-16 weeks and $80,000-$140,000. Large or highly complex environments (100+ servers, multiple data centers, strict compliance requirements) can require 20-30 weeks and $200,000-$350,000. These estimates include comprehensive testing frameworks, CI/CD pipeline integration, and knowledge transfer. A manufacturing client with 89 servers across three environments invested $125,000 over 14 weeks, then recovered that investment in 11 months through reduced infrastructure team time, faster deployments, and eliminated emergency firefighting. We provide detailed estimates after discovery phase when we understand your specific infrastructure topology and requirements.
How does Infrastructure as Code integration work with our existing CI/CD pipeline?
We integrate IaC deployments directly into your existing CI/CD workflows using tools like Jenkins, GitHub Actions, GitLab CI, or Azure DevOps. Infrastructure changes follow the same process as application code: commit to feature branch, automated testing runs, pull request reviewed by team, merge triggers deployment to appropriate environment. For a SaaS provider, we implemented GitHub Actions workflows where infrastructure changes to development branches automatically deploy to dev environments, changes merged to main branch deploy to staging, and production deployments require manual approval gate after staging tests pass. This creates consistent process for both application and infrastructure changes. We establish separate pipelines for infrastructure and application deployments when needed (infrastructure changes less frequently), or unified pipelines when applications and infrastructure deploy together. The integration ensures infrastructure changes receive the same scrutiny, testing, and approval as application code.
Can Infrastructure as Code work with our on-premises data center alongside cloud resources?
Yes, we regularly implement hybrid IaC solutions managing both on-premises and cloud resources. Terraform providers exist for VMware vSphere, Proxmox, Hyper-V, and physical infrastructure through tools like Ansible integration for configuration management. For a financial services client, we created Terraform configurations managing 31 on-premises VMware VMs, 47 AWS resources, and 23 Azure services from unified codebase. On-premises resources require agents or API access—we typically use Terraform for infrastructure provisioning and Ansible for detailed configuration management on physical servers. The hybrid approach provides consistent workflow regardless of where resources are deployed. Network connectivity between environments requires planning; we establish VPN or Direct Connect/ExpressRoute connections enabling hybrid resources to communicate securely. This approach works well for organizations with compliance requirements keeping certain data on-premises while using cloud for scalability.
How do you handle different configurations for development, staging, and production environments?
We implement environment-specific parameter files that customize shared infrastructure modules for each environment. A retail client's infrastructure uses Terraform modules defining architecture patterns (web tier, application tier, database tier), with tfvars files specifying environment-specific values like instance sizes, replica counts, and network ranges. Development might deploy single small instances while production deploys auto-scaling groups of large instances, but both use identical module code. This approach eliminates configuration drift between environments while allowing appropriate scaling differences. We use Terraform workspaces or separate state files to isolate environments, preventing accidental cross-environment changes. Variables handle secrets and environment-specific configurations, referenced from secret managers rather than stored in code. For a manufacturing client, this architecture reduced environment-specific code to 200 lines of variable definitions while sharing 12,000 lines of common module code across all environments.
What compliance and audit benefits does Infrastructure as Code provide?
IaC creates comprehensive audit trails and enables policy-as-code that automatically enforces compliance requirements. Every infrastructure change is recorded in Git history with author, timestamp, and cryptographic signature proving immutability—a healthcare client reduced HIPAA audit preparation from 320 hours to 12 hours by providing Git logs showing all infrastructure changes with approval workflows. We implement policy-as-code using Open Policy Agent or HashiCorp Sentinel that automatically verifies compliance requirements, blocking non-compliant infrastructure before deployment. For a financial services client, we created policies enforcing PCI DSS requirements around network segmentation, encryption, and access controls—infrastructure deployments automatically verify 47 compliance rules, preventing violations. Infrastructure code itself becomes compliance documentation, describing exact configurations in version-controlled, testable format. Automated compliance scanning runs continuously, alerting teams to drift from required configurations within minutes rather than discovering violations during quarterly audits.
How do you train our team to maintain and expand Infrastructure as Code after implementation?
We provide comprehensive knowledge transfer throughout implementation, not just at the end. Team members participate in design decisions, pair-program during development, and lead portions of implementation under our guidance. For a manufacturing client, we conducted weekly workshops covering IaC concepts, led code reviews explaining decision rationale, and created 34 pages of documentation with runbooks for common operations. We establish contribution guidelines, code style standards, and PR review processes ensuring consistency as your team extends the codebase. Training includes hands-on exercises where your team deploys infrastructure changes to development environments, runs test suites, and troubleshoots issues with our guidance. We typically recommend 2-3 team members focus on IaC during implementation, gaining deep expertise they spread to broader team. After implementation, we're available for code reviews and architectural guidance as your team builds new infrastructure patterns. Most clients achieve self-sufficiency within 3-4 weeks of production go-live, though we continue supporting complex architectural changes as needed.

Stop Working For Your Software

Make your software work for you. Let's build a sensible solution.