Here, you’ll find insights on programming languages, frameworks, and techniques that shape the web and software landscape. Whether you’re a developer looking to refine your skills or simply curious about how things work behind the scenes, this space offers practical knowledge and thoughtful perspectives.
I had the privilege of being Jennifer’s boss—and more importantly having her as my friend for almost 13 years. Not everyone has a way about them. You know that feeling you get that someone is something special, even when you first meet them. And as you get to know them, their way takes on new dimensions.
– Jennifer had a way.
Her way was the opposite of pretentious. She was beautiful—she could have been pretentious—but she wasn’t. She would rather go fishing or ride 4-wheelers than waste time or money on appearances. Not that she didn’t like to dress up and go out, that’s just not what mattered most in her life.
–Her way was being genuine.
Friendship should be easy. And with her, it was. She didn’t have unrealistic expectations from others in a friendship. If you made a mistake and missed a birthday, she didn’t mind. If she didn’t get back to you for 10 minutes or two days, it didn’t mean anything was wrong—it was just her way. Whether you talked every day or once a month, you could always pick up right where you left off. No awkwardness. No gaps. She could be friends with a software developer, an executive, or a mechanic—it didn’t matter.
–Easy friendships were her way.
Strong relationships require honesty. And she never held back. If it came to mind, she’d say it. She didn’t worry about how it came out—just that it came from a place of truth. Years ago, after giving an annual speech to the company I asked her what she thought. She said, “You shouldn’t read from your notes.” I said, “Anything else? (fishing for a compliment) But she was right. And I’ll remember her advice forever. Well Jennifer—I’m reading this now because I want to get it right. For you.
–Honesty was her way.
Achievement takes hard work and dedication. Jennifer didn’t come from the tech world, but she carved out a place in it anyway. She started at our front desk right out of college. A year in, she said she wanted to be a developer. Not many took her seriously. So she taught herself. Nights. Weekends. She found friends who helped her learn. And over time, she proved everyone wrong.
–Hard work and never giving up were her way.
Loyalty is putting others first, and I saw Jennifer do that time and time again. She got offers from other companies—she never took them. She saw red flags in people, in relationships—but she fought for them anyway.
–Loyalty was just her way.
Kindness is doing the little things that make life better for others. And in all the years I knew her, I never once heard her say an unkind word about anyone. She went out of her way—again and again—for the people she loved.
–Kindness was her way.
Faith is believing in something better. And as Jennifer got older, her faith grew stronger. She gave generously to her church. She shared her belief in Christ with everyone. She believed in a better future—for herself, her daughter, for everyone.
–Faith was her way.
If Jennifer had a fault, it was living too much in the moment. Some people plan every step. She didn’t. She lived for the day, the hour, the minute. In the last five years, I saw her struggle with that—trying to find a balance between now and the future. She fought it, but she was always young at heart and her yearning for excitement never went away.
–Living for the present was her way.
I’m going to miss Jennifer like hell. But maybe if we can live life a little more her way—more honest, more kind, more loyal, more faithful, more genuine—then her love can be enduring.
Because after all, and above all… Love was always her way.
When it comes to website hosting and management, two names dominate the conversation—WordPress and WP Engine. If you’re already a WordPress aficionado, you know it’s the king of flexibility, giving you the freedom to customize just about everything. But what happens when WP Engine enters the picture? Designed to supercharge WordPress, it promises a high-performance, headache-free experience.
On the surface, WP Engine feels like a dream come true for website owners. It’s packed with features, boasts stellar performance, and provides a level of security that could make your site feel invincible. Yet, as Atlantic BT’s experience has shown, beneath that shiny exterior are some important considerations that aren’t always apparent at first glance.
WP Engine’s Shine: The Allure of Premium Hosting
Let’s start with what WP Engine does right. It offers managed hosting tailored specifically for WordPress, taking care of all the technical heavy lifting—think automatic backups, built-in caching, and other performance enhancements that keep your site running smoothly. Here’s why it stands out:
Speed and Performance: WP Engine uses proprietary caching technology, giving your site a speed boost that makes it feel turbocharged. For businesses where every millisecond counts, this can be a game-changer.
Security: The platform’s focus on security is hard to match, with features like firewall protection, DDoS prevention, and malware scanning. Your website can rest easy knowing it’s well-guarded.
Automatic Updates: Forget about scrambling to apply updates—WP Engine handles them, keeping your site current with the latest WordPress versions and security patches.
But while all this sounds fantastic, there’s more to the story.
A Deeper Dive: Atlantic BT’s Expert Insights
Atlantic BT has worked closely with many clients hosting on WP Engine, which gives us a front-row seat to its strengths and shortcomings. Here are some deeper considerations that might not be on your radar:
Lack of Support: Effective support plays a key role. While WP Engine does offer 24/7 support, some issues can be hard to resolve due to the platform’s intricacies. When your site’s performance is directly linked to your business outcomes, the quality of support matters just as much as the platform’s capabilities.
Black Box Customization: One of the challenges with WP Engine is the limited transparency around certain configurations. For instance, the platform imposes a 1 MB size limit on rows in the wp_options table. This table stores essential configurations for the site and its plugins, and if a row exceeds the limit, it can be deleted without notice during an overnight cron job. We experienced this firsthand with a client using the WPML localization plugin. After some routine editing of international pages, the configuration row for WPML grew past the limit, resulting in the row being deleted overnight and the site’s layout breaking by morning. This kind of “black box” customization, where certain limitations aren’t clearly communicated or easily configurable, can be frustrating when troubleshooting issues.
Limited Upgrade Testing Environments: Another challenge emerged when WP Engine upgraded all sites to MySQL 8 from MySQL 5.7. While we had received ample notice, WP Engine didn’t provide a way to test the new version on their development servers. Instead, we had to rely on our personal setups, which didn’t fully replicate the production environment. If you’ve ever worked on web development, you know that matching the development and production servers as closely as possible is essential to catching niche configuration issues. In this case, the lack of a true testing environment sent us on a time-consuming detour, as we initially assumed the issue was related to the database upgrade, rather than the wp_options table limitation.
These are just few examples of challenges we’ve encountered while working with WP Engine. With our own hosting solutions at AWS, we can control the entire platform and customize it as needed to suit our clients’ unique requirements.
The Atlantic BT Way: A Different Approach to Client Support
At Atlantic BT, we take a more hands-on, personalized approach to customer support. We don’t just host your site; we actively collaborate with you to ensure its success. Whether it’s new development or ongoing maintenance, we know our clients and understand their business priorities. This close partnership means that when problems arise, you can count on clear communication and timely solutions. Your project is our priority, and we do what’s necessary to keep it running smoothly—because we’re not just another hosting provider; we’re your partner in digital success.
The Middle Ground: Is WP Engine the Right Fit for You?
If Your Site Isn’t Mission-Critical: WP Engine works well if your primary focus is solid performance for non-critical sites. It’s a good choice for businesses that can tolerate occasional quirks or limitations and don’t require absolute control over every technical detail. It’s managed hosting, after all, designed to simplify your workload, not give you the keys to the entire kingdom.
If You Need Quality and/or Control: On the other hand, if your site’s success hinges on uptime, security, and robust support or if you thrive on fine-tuning every aspect of your WordPress setup, you might find traditional hosting more fitting. Providers that let you manage every plugin, server configuration, and update might be better aligned with your needs, especially if your site’s performance is directly tied to your bottom line.
Conclusion
WP Engine and WordPress each offer unique benefits but cater to different needs. If your website’s performance and security are essential to your business’s success, WP Engine’s managed hosting could be worth the investment. For others, the hands-on control and flexibility of self-hosted WordPress might be a better fit.
Understanding your site’s requirements and how business-critical your web presence is will help guide the decision—whether that means choosing WP Engine for its managed convenience or opting for a hosting solution where you have the freedom and support to tailor everything to your needs.
Microservices and containers have revolutionized the way CI/CD pipelines operate, improving agility and efficiency. By breaking down large applications into smaller, independent services, teams can work faster and with more flexibility. Containers package these services, ensuring consistency across various environments.
Key Benefits of Microservices and Containers:
Benefit
Description
Better Fault Handling
If one service fails, the rest of the application remains operational.
Easier Updates
You can update or modify one microservice without affecting others.
Faster Development
Teams can build, test, and deploy smaller, independent components more quickly.
Steps to Implement Microservices and Containers:
Break down your application into smaller, manageable services.
Use orchestration tools like Kubernetes to manage your containers at scale.
Working with Serverless Systems
Serverless architectures, such as AWS Lambda, allow you to focus on writing code without worrying about managing infrastructure. This can lead to cost savings and faster deployment times.
Best Practices for Serverless Systems:
Utilize frameworks like AWS SAM or Serverless Framework to simplify the creation and deployment of serverless applications.
Design your applications to respond to specific events (event-driven architecture).
Continuously monitor your serverless functions’ performance and optimize them for better efficiency.
Managing Multi-Cloud Pipelines
Multi-cloud environments introduce additional complexity into CI/CD pipelines, but they offer flexibility and resilience.
Tips for Managing Multi-Cloud Pipelines:
Approach
Description
Use Cloud-Neutral Tools
Choose tools like Terraform or Jenkins that work across multiple cloud providers.
Unified Pipelines
Build a single CI/CD pipeline such as bitbucket pipelines or Jenkins that can deploy across different cloud platforms.
Monitor Performance
Implement monitoring tools to track the performance of your pipeline across clouds.
Applying AI and ML in Orchestration
AI and machine learning are transforming CI/CD pipelines, helping to predict and prevent issues, optimize performance, and improve testing processes.
How AI and ML Can Enhance Pipelines:
Error Prediction: AI can predict potential failures based on historical data.
Pipeline Optimization: Machine learning can automate performance tuning, making pipelines run faster.
Intelligent Testing: AI can identify high-risk areas of the application to prioritize testing.
Getting Started with AI/ML in CI/CD:
Collect pipeline performance data.
Choose an AI platform like Google Cloud AI or AWS SageMaker.
Develop models to automate and enhance your pipeline processes.
Common Challenges in CI/CD Pipeline Orchestration
CI/CD pipelines, while powerful, come with their own set of challenges. Here are common issues and how to address them:
Mistake
Solution
Insufficient Testing
Implement comprehensive testing: unit, integration, and end-to-end tests.
Lack of Monitoring
Use monitoring tools like Prometheus or Grafana to track pipeline health.
Outdated Dependencies
Automate dependency updates using tools like Dependabot or Renovate.
Resource Inefficiency
Optimize resources with containerization, serverless services, or cloud resources.
Manual Processes
Automate repetitive tasks, such as testing, building, and deploying.
Handling Large-Scale Projects
Managing large-scale projects can be daunting, but with the right strategies, you can break down the complexity.
Strategies for Managing Large Projects:
Break the project into smaller, modular parts.
Design reusable pipelines to speed up development.
Run parallel tasks to save time and improve efficiency.
Use Git and other version control systems to track code changes effectively.
Dealing with Complex Pipelines
Complex pipelines require careful management to maintain efficiency and avoid bottlenecks.
Simplifying Complex Pipelines:
Use pipeline visualization tools like Jenkins Blue Ocean to get a clear view of your pipeline flow.
Break down large pipelines into smaller, manageable segments.
Automate repetitive tasks and monitor pipeline performance regularly to identify areas for improvement.
Evaluating CI/CD Pipeline Success
Measuring the success of your CI/CD pipeline requires tracking specific key performance indicators (KPIs).
Key Performance Indicators for CI/CD Pipelines:
Indicator
Definition
Pipeline Success Rate
The percentage of pipeline runs that complete without errors.
Pipeline Failure Rate
The frequency of pipeline failures or errors during execution.
Average Pipeline Duration
The average time it takes for a pipeline to complete.
Deployment Frequency
How often code is deployed to production environments.
Mean Time to Recovery (MTTR)
The average time taken to fix an issue after a failure.
Measuring Pipeline Efficiency
Pipeline efficiency can be assessed by analyzing a few crucial metrics:
Metric
Description
Cycle Time
Time taken for new code to go live.
Lead Time
The time from ideation to delivery.
Throughput
Number of new features delivered over a specified time period.
Work-in-Progress (WIP)
The number of tasks currently being worked on in the pipeline.
By tracking these metrics, you can identify bottlenecks and continuously improve your CI/CD process.
Continuous Improvement of CI/CD Pipelines
To maintain and improve your CI/CD pipeline over time:
Add more automated tests to catch issues early in the process.
Continuously monitor pipeline performance using tools like Datadog or New Relic.
Regularly review metrics and make data-driven decisions to optimize pipeline steps.
Foster a culture of collaboration by encouraging team members to suggest improvements.
Stay updated on the latest CI/CD tools and techniques to keep your pipeline cutting-edge.
What’s Next for CI/CD Pipeline Orchestration?
As the tech landscape evolves, new advancements in CI/CD pipeline orchestration are emerging.
Upcoming Technologies Impacting CI/CD:
Technology
Impact on CI/CD
AI and Machine Learning
Makes pipelines smarter, automating error detection and optimization.
Serverless Computing
Reduces the need for managing infrastructure, enabling faster deployment.
Kubernetes
Enhances the management of large, complex microservice architectures.
DevSecOps
Integrates security practices directly into the pipeline process.
Future Changes in CI/CD Practices
With the introduction of new technologies, CI/CD practices will continue to evolve:
Change
What It Means
More Complex Pipelines
Pipelines will incorporate multiple branching paths and conditional logic.
Enhanced Security
Increased focus on integrating security throughout the CI/CD process.
Stronger Collaboration
Dev, QA, and Ops teams will work more closely for faster, seamless deployments.
Increased Automation
Machine learning and AI will further automate testing and deployment tasks.
How does Atlantic BT fit in this picture?
We empower clients to leverage their existing tools like Bitbucket, Packer, and Terraform, augmented by cutting-edge AI, to create advanced CI/CD pipelines. Our approach optimizes deployment across multi-cloud environments by combining automation with intelligent insights for continuous improvement.
Key Features:
Microservices & Containers: We break down monolithic applications into modular microservices using containers (Docker) to ensure scalability and fault tolerance. Packer automates the creation of machine images while Bitbucket Pipelines handles efficient code integration and testing.
Infrastructure as Code (IaC): Using Terraform, we automate multi-cloud infrastructure provisioning, ensuring a consistent and repeatable deployment process across AWS, Azure, or Google Cloud.
AI-Powered Automation: We integrate AI to predict errors and optimize performance by analyzing historical pipeline data. Machine learning models help improve test prioritization and auto-tune deployment times, making pipelines faster and more reliable.
Smart Monitoring & Security: With AI-driven monitoring, we detect potential issues in real-time, providing actionable insights for resource optimization. Additionally, DevSecOps practices are embedded directly into the pipeline, ensuring security at every stage of the development lifecycle.
By leveraging your current tools and integrating AI, AtlanticBT helps clients achieve faster, smarter, and more resilient CI/CD pipelines, driving efficiency and agility in their software development workflows.
Healthcare organizations rely heavily on software systems to manage patient data. However, with the increasing risk of data breaches and cyberattacks, testing for HIPAA compliance is extremely important to protect patient health information (PHI) and ensure regulations are met. This involves a rigorous evaluation of the software’s security measures, privacy protocols, and data protection mechanisms to safeguard sensitive patient data.
Understanding HIPAA Compliance
The Health Insurance Portability and Accountability Act (HIPAA) sets standards for the privacy and security of PHI. It outlines specific requirements that healthcare providers and their business associates must follow to protect patient information. These requirements include:
Access controls and monitoring: Limiting access to authorized personnel.
Data integrity: Ensuring the accuracy and completeness of PHI.
Data transmission: Protecting PHI during transmission.
Security safeguards: Implementing technical, administrative, and physical safeguards to protect PHI data.
Testing for HIPAA Compliance
By conducting comprehensive testing, healthcare organizations can verify that their software systems meet the necessary standards for protecting patient privacy and security. The following is recommended:
Develop a risk management plan to address identified vulnerabilities.
Verify Security Controls:
Test access controls to verify that only authorized individuals can access PHI and that appropriate permissions are in place to prevent unauthorized disclosure.
Evaluate encryption mechanisms to ensure that PHI is protected during transmission and storage.
Assess data backup and recovery procedures to ensure that PHI is protected against loss or corruption.
Check the software’s ability to audit and monitor user activities, providing a record of who accessed PHI and when.
Evaluate Data Integrity:
Test data validation and error checking to prevent incorrect or incomplete data entry.
Verify data backup procedures and disaster recovery plans.
Make sure that data is stored in a consistent and accurate format and is protected against loss or corruption.
Assess data auditing and monitoring capabilities to detect unauthorized access or modifications.
Transmission Security:
Test secure communication protocols (e.g., HTTPS) to protect PHI during transmission.
Evaluate encryption algorithms used to secure data in transit.
Ensure that business associates have appropriate safeguards in place to protect PHI.
Verify that business associate agreements comply with HIPAA requirements.
Testing for HIPAA compliance is an ongoing process that requires continuous evaluation and improvement. By conducting thorough testing and addressing identified vulnerabilities, healthcare organizations and their business associates can protect patient privacy and maintain regulatory compliance.
Recently, we encountered an issue while upgrading a client’s WordPress site that utilizes The Events Calendar plugin from theeventscalendar.com. The upgrade caused a significant spike in database CPU usage, leading to severe performance degradation and eventual downtime. The site would become unresponsive within 1 to 12 hours post-deployment, forcing us to revert to the previous version.
Identifying the Issue: A Slow Query
After investigation, we isolated the problem to a specific SQL query that was being executed repeatedly:
SELECT SQL_CALC_FOUND_ROWS wp_4_posts.ID, CAST(wp_4_tec_occurrences.start_date_utc AS DATETIME) AS event_date_utc FROM wp_4_posts LEFT JOIN wp_4_term_relationships ON (wp_4_posts.ID = wp_4_term_relationships.object_id) LEFT JOIN wp_4_term_relationships AS tt1 ON (wp_4_posts.ID = tt1.object_id) LEFT JOIN wp_4_term_relationships AS tt2 ON (wp_4_posts.ID = tt2.object_id) LEFT JOIN wp_4_term_relationships AS tt3 ON (wp_4_posts.ID = tt3.object_id) LEFT JOIN wp_4_term_relationships AS tt4 ON (wp_4_posts.ID = tt4.object_id) LEFT JOIN wp_4_term_relationships AS tt5 ON (wp_4_posts.ID = tt5.object_id) LEFT JOIN wp_4_term_relationships AS tt6 ON (wp_4_posts.ID = tt6.object_id) JOIN wp_4_tec_occurrences ON wp_4_posts.ID = wp_4_tec_occurrences.post_id WHERE 1=1 AND ( ( wp_4_term_relationships.term_taxonomy_id IN (147,148,149,150,96) AND tt1.term_taxonomy_id IN (147,148,149,150,96) AND tt2.term_taxonomy_id IN (147,148,149,150,96) AND tt3.term_taxonomy_id IN (147,148,149,150,96) AND tt4.term_taxonomy_id IN (147,148,149,150,96) AND tt5.term_taxonomy_id IN (147,148,149,150,96) AND tt6.term_taxonomy_id IN (147,148,149,150,96) ) ) AND CAST(wp_4_tec_occurrences.start_date_utc AS DATETIME) > '2024-06-24 03:59:59' AND wp_4_posts.post_type = 'tribe_events' AND wp_4_posts.post_status = 'publish' GROUP BY wp_4_tec_occurrences.occurrence_id ORDER BY wp_4_tec_occurrences.start_date_utc ASC, wp_4_posts.post_date ASC LIMIT 0, 1;
Each execution of this query was taking over 23 seconds, leading to a bottleneck that caused the CPU to max out at 100%. Clearly, this query needed optimization.
Investigating the Query: EXPLAIN Command to the Rescue
To better understand what was causing the delay, we turned to MySQL’s EXPLAIN command. By analyzing the query execution plan, we could pinpoint inefficiencies related to the joins and groupings, particularly involving the wp_4_term_relationships and wp_4_tec_occurrences tables.
We found that key indexes were either missing or not being utilized optimally. The absence of appropriate indexing on columns like object_id, term_taxonomy_id, and post_id meant that the database had to scan entire tables repeatedly—leading to high CPU usage and slow response times.
The Fix: Adding Indexes
To resolve the issue, we added three specific indexes. These were designed to speed up the joins and comparisons that were bogging down the query:
CREATE INDEX idx_wp_4_posts_id ON wp_4_posts (ID); CREATE INDEX idx_wp_4_term_relationships ON wp_4_term_relationships (object_id, term_taxonomy_id); CREATE INDEX idx_wp_4_tec_occurrences ON wp_4_tec_occurrences (post_id, start_date_utc);
By introducing these indexes, we were able to reduce the query execution time from 23 seconds down to just 1.3 seconds—a significant performance boost.
Monitoring the Results
To ensure everything was working smoothly in production, we continuously monitored our query performance using the following command:
SHOW FULL PROCESSLIST;
This allowed us to track the running queries and verify that our optimization was successful. The CPU usage stabilized, and the site performance returned to normal without further issues.
Conclusion: Indexing Matters
If you’re running into similar performance issues after upgrading The Events Calendar plugin or any other database-intensive WordPress plugin, we recommend analyzing your queries using EXPLAIN and considering appropriate indexing. Note that your table names might differ depending on your WordPress setup, so adjust accordingly.
Optimizing database performance can be tricky, but with the right tools and approach, even complex queries can be tuned for efficiency.
Updated: October 23, 2024, as new details and perspectives have emerged.
WP Engine and WordPress
It is not surprising that WordPress.org is blocking WP Engine and that Matt Mullenweg is publicly discussing what they have refused to commit to or give back. At some point, communities feel taken advantage of and absolutely must enforce the terms of their licenses. Open Source licensing adherence is critical to the future success of Open Source communities.
WordPress holds a special place in the open-source collaboration and innovation CMS ecosystem. Moreover, Matt Mullenweg’s vision and Automattic’s reach have empowered countless individuals and businesses to build and maintain their online presence. Recent events have sparked discussions within the WordPress community, highlighting the delicate balance between open-source ideals and commercial interests. This begs the question, where do we draw the line? Should open-source platforms force contributions? We think not. Should open-source software get paid dividends from successful businesses built on them? Obviously no.
The essence of open-source
Open-source software is more than just freely available code; it’s a philosophy that promotes transparency, collaboration, and collective progress. WordPress, as an open-source content management system (CMS), has thrived because of its community-driven approach. Developers worldwide contribute to its core, ensuring it remains secure, flexible, and up-to-date with the latest web standards.
Mullenweg’s vision
Matt Mullenweg co-founded WordPress with the aim of democratizing publishing. His commitment to keeping WordPress free and open has enabled a diverse ecosystem of themes, plugins, and services. This ecosystem not only fosters innovation but also provides opportunities for businesses and developers to offer specialized solutions that enhance the core functionality of WordPress. Atlantic BT leverages WordPress, amongst other open-source technologies, to power many of the sites we build. Admittedly, we could do more to give back, and this conversation illuminates that for me.
The role of commercial entities
Companies like WP Engine have built successful businesses within the WordPress ecosystem, offering managed hosting and other premium services. While commercial entities play a significant role in expanding WordPress’s reach, their operations must align with the fundamental principles of the open-source community. It’s also critical that we follow the terms of the licensing models very closely when we discuss and leverage these tools.
Tensions can arise when commercial interests potentially overshadow or conflict with open-source values. It’s during these times that the community must engage in constructive dialogue to ensure that the platform’s integrity remains intact. What has happened recently makes one wonder what the argument is really about in this case. There are lawyers involved and billionaires battling it out over money with the future of open-source at stake. Can you imagine a world where the Apache Software Foundation wanted a portion of profits for using their tools? I
Why We No Longer Support Matt Mullenweg and WordPress.org
Preservation of Open Source Values: Upholding the principles of open source ensures that WordPress remains accessible and beneficial to all users, not just those who can afford premium services. However, the actions targeting the actual contributions from a company like WP Engine to the community in plugin takeover and other actions go against the ethos of open-source.
Community-Centric Development: Decisions made through the WordPress.org community involve diverse perspectives, leading to more robust and inclusive solutions but the decisions of one individual seem to outweigh that collective.
Transparency and Trust: Open-source projects thrive on transparency, fostering trust among users and contributors alike. This trust is paramount for the continued success of WordPress.
As advocates for open-source software and long-time supporters of Matt Mullenweg’s vision, we believe that staying true to the foundational values of WordPress is essential for its future. We encourage all members of the WordPress community, including commercial entities like WP Engine, to collaborate in a manner that respects and promotes these shared ideals.
We invite our readers and fellow WordPress enthusiasts to join the conversation. Let’s work together to ensure that WordPress continues to be a platform where innovation thrives, and where the interests of the community are always at the forefront.
At Atlantic BT, we are committed to leveraging the power of WordPress to deliver exceptional digital experiences. Contact us to learn how we can help you make the most of this incredible platform.