<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Web of Mike</title><link>https://webofmike.com/</link><description>Recent content on Web of Mike</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sun, 23 Feb 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://webofmike.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Building an LLM Agent Playground: A Deep Dive into AI Orchestration and Evaluation</title><link>https://webofmike.com/building-an-llm-agent-playground/</link><pubDate>Sun, 23 Feb 2025 00:00:00 +0000</pubDate><guid>https://webofmike.com/building-an-llm-agent-playground/</guid><description>&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>In the rapidly evolving landscape of artificial intelligence and machine learning, Large Language Models (LLMs) have emerged as powerful tools for natural language processing and generation. However, the real potential of these models lies not just in their ability to understand and generate text, but in their capacity to act as intelligent agents that can perform concrete actions in response to natural language instructions.&lt;/p>
&lt;p>Inspired by the course at DeepAtlas.ai in AI orchestration and agent systems, an open-source LLM Agent Playground has been developed that allows developers and researchers to experiment with, evaluate, and compare different LLM providers through a unified interface. This project serves as both a practical tool and an educational resource for understanding how to build agentic systems with modern AI technologies.&lt;/p></description></item><item><title>The Future of AI and Robotics: A Look at What's Next</title><link>https://webofmike.com/the-future-of-ai-and-robotics/</link><pubDate>Sat, 15 Feb 2025 00:00:00 +0000</pubDate><guid>https://webofmike.com/the-future-of-ai-and-robotics/</guid><description>&lt;h2 id="the-world-is-changing-fast">The World is Changing Fast&lt;/h2>
&lt;p>Imagine waking up in a world where &lt;strong>robots perform surgeries&lt;/strong>, self-driving cars fill the highways, and AI assistants handle everything from booking your meetings to writing reports better than you do. That future? &lt;strong>It&amp;rsquo;s already happening.&lt;/strong>&lt;/p>
&lt;p>Artificial Intelligence (AI) and Robotics are advancing at &lt;strong>an unprecedented pace&lt;/strong>, transforming industries, reshaping economies, and challenging us to rethink what it means to work and live alongside machines. But with all this potential, we also face &lt;strong>serious questions&lt;/strong>:&lt;/p></description></item><item><title>Beyond the Algorithm: Why Industry Veterans are Still Vital in the Age of AI Consulting</title><link>https://webofmike.com/beyond-the-algorithm/</link><pubDate>Tue, 29 Oct 2024 00:00:00 +0000</pubDate><guid>https://webofmike.com/beyond-the-algorithm/</guid><description>&lt;p>In an era where artificial intelligence consulting dominates tech headlines, a thoughtful perspective from ActualHumans reminds us of an often-overlooked truth: the irreplaceable value of industry veterans in enterprise architecture and technology solutions. While AI solutions continue to revolutionize how we work, the deep expertise, intuition, and adaptability of seasoned technology consulting professionals remain crucial for enterprise success.&lt;/p>
&lt;p>The article makes a compelling case for why human expertise cannot be fully replicated by algorithms. Industry veterans bring decades of domain-specific knowledge enabling navigation of complex DevOps and cloud-native computing challenges with nuanced understanding. Their ability to think creatively, adapt to unprecedented situations, and foster meaningful collaboration distinguishes them from AI-powered systems. These professionals excel where AI typically falls short: ethical decision-making, customizing solutions for unique enterprise needs, and integrating new technologies with legacy systems.&lt;/p></description></item><item><title>Unlocking Unlimited Observability: How groundcover's eBPF Powers Full Visibility Without Limits</title><link>https://webofmike.com/unlocking-unlimited-observability/</link><pubDate>Fri, 02 Aug 2024 00:00:00 +0000</pubDate><guid>https://webofmike.com/unlocking-unlimited-observability/</guid><description>&lt;p>In today&amp;rsquo;s constantly evolving digital world, ensuring your applications and AI platforms run smoothly is more critical than ever. From user experience to system security, every aspect of your application relies on how well you can monitor its performance. But with the complexity of modern infrastructures, achieving complete observability can be challenging. This is where groundcover, powered by eBPF, comes into play as the ultimate solution for full visibility, offering unlimited logs, metrics, and traces.&lt;/p></description></item><item><title>How to Get Ready for the AI Revolution: Embrace, Learn, and Innovate</title><link>https://webofmike.com/how-to-get-ready-for-the-ai-revolution/</link><pubDate>Tue, 30 Jul 2024 00:00:00 +0000</pubDate><guid>https://webofmike.com/how-to-get-ready-for-the-ai-revolution/</guid><description>&lt;p>The advent of generative AI is not something to be feared&amp;mdash;it&amp;rsquo;s an exciting opportunity to elevate your business and career. Getting ready for this AI-driven future involves a blend of embracing new technologies, continuously learning, and fostering an innovative mindset. Here&amp;rsquo;s how you can prepare effectively and stay ahead in this rapidly evolving landscape.&lt;/p>
&lt;h2 id="1-dive-into-ai-education-and-training">1. Dive Into AI Education and Training&lt;/h2>
&lt;p>&lt;strong>Online Courses and Certifications:&lt;/strong> Start by enrolling in online courses that cover the basics of AI, machine learning, and generative AI. Platforms like Coursera, edX, and Udacity offer courses designed by leading institutions and industry experts.&lt;/p></description></item><item><title>Revisiting Observability: A Deep Dive Into the State of Monitoring, Costs, and Data Ownership</title><link>https://webofmike.com/revisiting-observability/</link><pubDate>Thu, 02 May 2024 00:00:00 +0000</pubDate><guid>https://webofmike.com/revisiting-observability/</guid><description>&lt;p>&lt;em>Originally posted on DZone&lt;/em>&lt;/p>
&lt;p>Hey internet humans! I&amp;rsquo;ve recently re-entered the world of observability and monitoring after a short detour in the Internal Developer Portal space. Since my return, I have felt a strong urge to discuss the general sad state of observability in the market today.&lt;/p>
&lt;p>I still have a strong memory of myself, knee-deep in Kubernetes configs, drowning in a sea of technical jargon, not clearly knowing if I&amp;rsquo;ve actually monitored everything in my stack, deploying heavy agents, and fighting with engineering managers and devs just to get their code instrumented only to find out I don&amp;rsquo;t have half the stuff I thought I did. Sound familiar? Most of us have been there.&lt;/p></description></item><item><title>Mastering Kubernetes: Key Metrics for Cluster Monitoring</title><link>https://webofmike.com/mastering-kubernetes-key-metrics/</link><pubDate>Sun, 14 Apr 2024 00:00:00 +0000</pubDate><guid>https://webofmike.com/mastering-kubernetes-key-metrics/</guid><description>&lt;p>Kubernetes administration is like navigating through a perpetually expanding puzzle, where distinguishing essential components from duplicate information presents ongoing challenges.&lt;/p>
&lt;p>Beyond surface-level monitoring lies the opportunity to extract meaningful signals from container telemetry, pod performance, CPU and memory utilization, API interactions, and environmental metrics.&lt;/p>
&lt;p>Mastery comes from transforming raw data into strategic insights that optimize performance, improve efficiency, and strengthen infrastructure resilience. Embrace the complexity as a pathway toward operational proficiency in container orchestration environments.&lt;/p></description></item><item><title>Maximizing DevOps Efficiency: Best Practices, KPIs, and Realtime Feedback</title><link>https://webofmike.com/maximizing-devops-efficiency/</link><pubDate>Wed, 08 Mar 2023 00:00:00 +0000</pubDate><guid>https://webofmike.com/maximizing-devops-efficiency/</guid><description>&lt;p>Inefficient DevOps practices can lead to reduced productivity, delayed releases, and increased costs. A Developer Portal can help teams understand best practices, KPIs, and provide real-time feedback to optimize performance.&lt;/p>
&lt;p>As a DevOps team, it&amp;rsquo;s important to adopt best practices to ensure that your organization can deliver high-quality software products efficiently and reliably. Let&amp;rsquo;s take a closer look at some of the most important best practices for DevOps teams, as well as the risks of not implementing them.&lt;/p></description></item><item><title>Open Source Solutions: Cost-Saving or Free Like a Puppy?</title><link>https://webofmike.com/open-source-cost-saving-or-free-like-a-puppy/</link><pubDate>Mon, 06 Mar 2023 00:00:00 +0000</pubDate><guid>https://webofmike.com/open-source-cost-saving-or-free-like-a-puppy/</guid><description>&lt;p>Open-source software may be free, but it can come with significant maintenance and security risks that businesses should consider. While highly effective in some situations, it may not be the best option for specialized software or high levels of support.&lt;/p>
&lt;p>So, you&amp;rsquo;ve heard of open-source software, right? It&amp;rsquo;s that free software that&amp;rsquo;s developed by a bunch of tech enthusiasts in their free time. But, have you ever stopped to think about why it&amp;rsquo;s free? Well, let me tell you friends and already offended internet folks, &amp;ldquo;open-source software is free in the same way that a puppy is free.&amp;rdquo;&lt;/p></description></item><item><title>Maximizing Your Developer Efficiency: Scaffolding for Faster Time to Market</title><link>https://webofmike.com/maximizing-developer-efficiency-scaffolding/</link><pubDate>Fri, 10 Feb 2023 00:00:00 +0000</pubDate><guid>https://webofmike.com/maximizing-developer-efficiency-scaffolding/</guid><description>&lt;p>As software development continues to evolve, developers are faced with the challenge of delivering high-quality applications at an ever-increasing pace. The pressure to deliver more and faster can be overwhelming, especially for teams working on large, complex projects. However, with the rise of low-code platforms and scaffolder tools, developers can now achieve faster time to productivity and focus on delivering high-quality software.&lt;/p>
&lt;h2 id="what-is-a-scaffolding-tool">What is a Scaffolding Tool?&lt;/h2>
&lt;p>A scaffolder tool is a software application that generates the boilerplate code for a project, saving developers time and effort in writing code from scratch. The generated code serves as a starting point, providing a foundation for developers to build upon. With a scaffolder tool, developers can focus on writing the custom code required to bring their vision to life, rather than spending countless hours writing the same repetitive code that every project requires.&lt;/p></description></item><item><title>Boosting Your Developer Onboarding Efficiency: Why Investing in a Developer Portal is Smarter Than Building Your Own</title><link>https://webofmike.com/boosting-developer-onboarding-efficiency/</link><pubDate>Wed, 08 Feb 2023 00:00:00 +0000</pubDate><guid>https://webofmike.com/boosting-developer-onboarding-efficiency/</guid><description>&lt;p>APIs (Application Programming Interfaces) play a crucial role in modern software development, allowing different systems and applications to communicate and exchange data with each other. To ensure that APIs are used effectively and efficiently, it&amp;rsquo;s important to provide comprehensive documentation that developers can reference.&lt;/p>
&lt;h2 id="why-good-documentation-is-important">Why GOOD Documentation is Important&lt;/h2>
&lt;p>Good API documentation acts as a reference guide for developers, helping them understand how to use an API, what it does, and what to expect from it. Comprehensive documentation helps to reduce friction in the integration process, speeds up the development process, and ensures that APIs are used correctly.&lt;/p></description></item><item><title>Maximizing Developer Onboarding for Improved Retention and Growth: A Comprehensive Guide</title><link>https://webofmike.com/maximizing-developer-onboarding/</link><pubDate>Mon, 06 Feb 2023 00:00:00 +0000</pubDate><guid>https://webofmike.com/maximizing-developer-onboarding/</guid><description>&lt;p>The onboarding experience sets the tone for new developers and shapes their initial perception of the organization and role. A well-structured program should equip developers with necessary tools and information for autonomy and success.&lt;/p>
&lt;h2 id="setting-goals-and-working-backwards">Setting Goals and Working Backwards&lt;/h2>
&lt;p>Effective onboarding begins by reflecting on your own early experiences as an employee. Determine what developers should accomplish by the end of their onboarding period&amp;mdash;whether handling tickets, contributing to architecture, or pushing code. Consider codebase complexity and realistic timelines. Breaking the process into phases with daily objectives helps developers track progress visually.&lt;/p></description></item><item><title>Mastering the Art of Platform Engineering: The Latest Secret to Digital Transformation</title><link>https://webofmike.com/platform-engineering/</link><pubDate>Thu, 02 Feb 2023 00:00:00 +0000</pubDate><guid>https://webofmike.com/platform-engineering/</guid><description>&lt;p>As technology continues to evolve and disrupt traditional business models, organizations are constantly seeking ways to streamline and optimize their operations. This is where platform engineering comes in.&lt;/p>
&lt;p>But what exactly is platform engineering? In simple terms, it&amp;rsquo;s a discipline that focuses on the creation, deployment, and management of platforms and tools that enable the development and delivery of software products.&lt;/p>
&lt;p>It&amp;rsquo;s no secret that DevOps has been a hot topic in recent years, and many companies have embraced this methodology to automate and streamline their software development and delivery processes. Platform engineering can be seen as an extension of DevOps, but with a broader focus on creating a more holistic platform for technology operations.&lt;/p></description></item><item><title>Maximize your ROI with a Developer Portal: How Improving DevOps, DevX, and SRE Can Drive Visibility, Productivity, and Profitability</title><link>https://webofmike.com/developer-portal/</link><pubDate>Tue, 31 Jan 2023 00:00:00 +0000</pubDate><guid>https://webofmike.com/developer-portal/</guid><description>&lt;p>Implementing and maintaining a developer portal involves complexity, but a fully-featured and well-implemented developer portal can have a significant impact on your DevOps processes, developer experience (DevX), site reliability engineering (SRE), and overall efficiency.&lt;/p>
&lt;h2 id="technical-benefits">Technical Benefits&lt;/h2>
&lt;ul>
&lt;li>Streamlined workflows reduce onboarding time&lt;/li>
&lt;li>Enhanced collaboration across teams&lt;/li>
&lt;li>Increased visibility through centralized documentation&lt;/li>
&lt;li>Improved support via FAQs and resources&lt;/li>
&lt;/ul>
&lt;h2 id="business-benefits">Business Benefits&lt;/h2>
&lt;ul>
&lt;li>Higher productivity and reduced costs&lt;/li>
&lt;li>Better customer experience&lt;/li>
&lt;li>Increased product adoption&lt;/li>
&lt;li>Improved user engagement&lt;/li>
&lt;/ul>
&lt;h2 id="strategic-value">Strategic Value&lt;/h2>
&lt;p>A well-designed portal gives leadership a bird&amp;rsquo;s eye view of the entire development process, enabling informed decision-making. It centralizes resources, accelerating project timelines and improving profitability.&lt;/p></description></item><item><title>DORA Metrics: Understanding the Importance for Developers, SRE, DevOps, and Platform Engineering</title><link>https://webofmike.com/dora-metrics/</link><pubDate>Mon, 30 Jan 2023 00:00:00 +0000</pubDate><guid>https://webofmike.com/dora-metrics/</guid><description>&lt;p>Have you ever wondered how successful organizations manage to deliver high-quality software at lightning speeds? The secret lies in DevOps practices and key performance indicators known as DORA metrics.&lt;/p>
&lt;p>DORA stands for DevOps Research and Assessment. These metrics were developed by Dr. Nicole Forsgren, Jez Humble, and Gene Kim through the State of DevOps report, compiled from data provided by over 30,000 technical professionals worldwide.&lt;/p>
&lt;h2 id="the-four-key-dora-metrics">The Four Key DORA Metrics&lt;/h2>
&lt;ol>
&lt;li>&lt;strong>Lead Time:&lt;/strong> Time from code commitment to successful production deployment&lt;/li>
&lt;li>&lt;strong>Deployment Frequency:&lt;/strong> How often code deploys to production (daily, weekly, or monthly)&lt;/li>
&lt;li>&lt;strong>Mean Time to Recovery (MTTR):&lt;/strong> Average recovery time from production incidents&lt;/li>
&lt;li>&lt;strong>Change Failure Rate:&lt;/strong> Percentage of production changes causing failures or outages&lt;/li>
&lt;/ol>
&lt;h2 id="why-dora-metrics-matter">Why DORA Metrics Matter&lt;/h2>
&lt;p>These metrics offer valuable insights into the speed and quality of software delivery. By measuring DevOps effectiveness, organizations identify improvement areas and benchmark performance against industry standards.&lt;/p></description></item><item><title>Thwarting Innovation with Entrenched Mindsets</title><link>https://webofmike.com/innovation-failure/</link><pubDate>Mon, 30 Jan 2023 00:00:00 +0000</pubDate><guid>https://webofmike.com/innovation-failure/</guid><description>&lt;p>In today&amp;rsquo;s fast-paced business environment, innovation is key to staying ahead of the competition. However, many organizations struggle with promoting and encouraging innovation due to the prevalence of entrenched mindsets that stifle creativity and progress. The phrase &amp;ldquo;that&amp;rsquo;s just the way it is&amp;rdquo; and its variants are often heard in various industries, indicating a lack of motivation to change and a tendency to accept the status quo.&lt;/p>
&lt;h2 id="entrenched-mindsets-as-innovation-killers">Entrenched Mindsets as Innovation Killers&lt;/h2>
&lt;p>The mindset of &amp;ldquo;that&amp;rsquo;s just the way things are&amp;rdquo; demonstrates a failure to empower individuals to drive change and innovate. It reflects a lack of motivation and a path of least resistance, resulting in stagnation. Innovation and change are closely tied, and if we remain content with the status quo, there can be no progress.&lt;/p></description></item><item><title>Getting Started with FDM 3D Printing</title><link>https://webofmike.com/fdm-3d-printing/</link><pubDate>Thu, 22 Jul 2021 00:00:00 +0000</pubDate><guid>https://webofmike.com/fdm-3d-printing/</guid><description>&lt;p>Contemplating a 3D printer purchase? This guide covers the fundamentals of FDM technology and practical considerations for beginners.&lt;/p>
&lt;h2 id="what-is-fdm">What is FDM?&lt;/h2>
&lt;p>Fused deposition modeling (FDM), also known as fused filament fabrication (FFF), is simply the most widely used type of 3D printing at a consumer level.&lt;/p>
&lt;p>The process involves pushing thermoplastic filaments&amp;mdash;including PLA, PETG, and ABS&amp;mdash;through a heated nozzle. Material melts and applies in successive layers to a build platform until the object is complete.&lt;/p></description></item><item><title>A Microservices Primer</title><link>https://webofmike.com/microservices-primer/</link><pubDate>Fri, 04 Jan 2019 00:00:00 +0000</pubDate><guid>https://webofmike.com/microservices-primer/</guid><description>&lt;p>Microservices represent a modern architectural approach distinct from traditional monolithic systems. Rather than building applications as single, interconnected code bases, organizations divide functionality into smaller, independent services.&lt;/p>
&lt;h2 id="the-current-state-of-things">The Current State of Things&lt;/h2>
&lt;p>Many organizations currently operate using either Service-Oriented Architecture (SOA) or monolithic application designs. These approaches create fragility&amp;mdash;a single bug can cascade throughout the entire system. Microservices offer an alternative path forward.&lt;/p>
&lt;h2 id="digital-transformation-and-microservices">Digital Transformation and Microservices&lt;/h2>
&lt;p>The term &amp;ldquo;digital transformation&amp;rdquo; gains real meaning when organizations embrace microservices alongside containers, service discovery, and agile development methodologies. This approach breaks down monolithic systems into smaller, logically distinct functions typically aligned with organizational teams. The loosely coupled nature of microservices enables organizations to improve and deploy specific functions independently, avoiding full system regression testing with each deployment.&lt;/p></description></item><item><title>API Modeling and Design with Hypermedia and Contextual Information</title><link>https://webofmike.com/api-modeling-and-design/</link><pubDate>Fri, 04 Jan 2019 00:00:00 +0000</pubDate><guid>https://webofmike.com/api-modeling-and-design/</guid><description>&lt;p>This presentation explores adding contextual and actionable information to APIs through Hypermedia types including JSON-LD, HAL, and Collection+JSON specifications. These standards enable richer API responses with embedded context and navigation capabilities.&lt;/p>
&lt;p>The core focus is on how hypermedia approaches can make APIs more self-descriptive and navigable, allowing clients to discover available actions and related resources dynamically rather than relying on out-of-band documentation.&lt;/p>
&lt;p>If you have any questions on anything API&amp;mdash;be it development, management, design, or security, don&amp;rsquo;t hesitate to reach out.&lt;/p></description></item><item><title>Best Practices for Securing Your APIs</title><link>https://webofmike.com/best-practices-for-securing-your-apis/</link><pubDate>Fri, 04 Jan 2019 00:00:00 +0000</pubDate><guid>https://webofmike.com/best-practices-for-securing-your-apis/</guid><description>&lt;p>This presentation covers best practices for securing your APIs, including everything from encryption, to UUIDs, the differences between authentication and authorization, OAuth and OpenID Connect, and a host of other information around SSL, TLS, and more ways you can secure your APIs from those pesky would-be hackers.&lt;/p>
&lt;p>Much has been said around securing APIs and fortunately people do try to implement some of these practices. Unfortunately, most do not implement multiple legged security thereby relying solely on a single measure or two simplistic and easy-to-defeat mechanisms to secure their APIs. Alas, some even rely on not publishing the documentation for their APIs as a measure of &amp;ldquo;security&amp;rdquo;. These methods are simply not acceptable and it&amp;rsquo;s important to approach security by believing that &amp;ldquo;there are indeed smarter hackers than you out there and that your information is always at risk.&amp;rdquo;&lt;/p></description></item><item><title>Creation...</title><link>https://webofmike.com/creation/</link><pubDate>Fri, 04 Jan 2019 00:00:00 +0000</pubDate><guid>https://webofmike.com/creation/</guid><description>&lt;p>Well&amp;hellip; I finally got around to creating the &amp;ldquo;Web of Mike&amp;rdquo;! I fully expect highly random articles around code, music, life, and whatever crazy idea comes to mind.&lt;/p>
&lt;p>So here we go!&lt;/p></description></item><item><title>Custom File Check for Datadog Agents</title><link>https://webofmike.com/custom-file-check-for-datadog-agents/</link><pubDate>Fri, 04 Jan 2019 00:00:00 +0000</pubDate><guid>https://webofmike.com/custom-file-check-for-datadog-agents/</guid><description>&lt;p>One of the most valuable aspects of the Datadog agent is its extensibility. Although the platform provides numerous out-of-the-box integrations, edge cases frequently emerge that demand custom solutions.&lt;/p>
&lt;p>This article presents a straightforward custom check that monitors file existence. When a target file is found, the check reports success; if absent, it logs an error tagged with the filename. Additionally, the solution captures &lt;code>file.age&lt;/code> and &lt;code>file.modified&lt;/code> metrics when files exist, both tagged by filename for easy identification and aging tracking.&lt;/p></description></item><item><title>Custom Shell Check for Datadog Agents</title><link>https://webofmike.com/custom-shell-check-for-datadog-agents/</link><pubDate>Fri, 04 Jan 2019 00:00:00 +0000</pubDate><guid>https://webofmike.com/custom-shell-check-for-datadog-agents/</guid><description>&lt;p>The Datadog agent stands out for its extensibility. While many out-of-the-box integrations exist, edge cases often require custom solutions.&lt;/p>
&lt;p>This article presents a standalone custom check that executes shell commands and retrieves numeric values from their output, publishing results to Datadog as metrics named &lt;code>shell.your_metric_name&lt;/code> at regular agent check intervals.&lt;/p>
&lt;p>The check overcomes versioning challenges where previous implementations relied on agent-included code that changed across updates. This rewritten version operates independently.&lt;/p></description></item><item><title>Datadog Squid Proxy Example for Agent Proxies</title><link>https://webofmike.com/datadog-squid-proxy/</link><pubDate>Fri, 04 Jan 2019 00:00:00 +0000</pubDate><guid>https://webofmike.com/datadog-squid-proxy/</guid><description>&lt;p>SQUID proxies serve as a practical solution to get your data out of your datacenter when you have a number of security restrictions. This approach enables Datadog Agent communication from hosts within isolated networks that lack direct internet connectivity.&lt;/p>
&lt;p>Consult the official Datadog documentation for detailed setup instructions&amp;mdash;specifically the Agent Proxy Configuration documentation for comprehensive guidance on configuring agents to communicate through proxy servers.&lt;/p></description></item><item><title>Enabling Real-time Analytics with FPGAs</title><link>https://webofmike.com/fpga-analytics/</link><pubDate>Fri, 04 Jan 2019 00:00:00 +0000</pubDate><guid>https://webofmike.com/fpga-analytics/</guid><description>&lt;p>With the surge in analytics and big data, organizations need efficient methods to process massive data volumes from IoT devices, mapping systems, and consumer interaction insights. Traditional platforms like Hadoop and Cloudera have provided adequate solutions, yet processing data in-motion with real-time capabilities remains challenging.&lt;/p>
&lt;h2 id="blurring-the-lines-between-hardware-and-software">Blurring the Lines Between Hardware and Software&lt;/h2>
&lt;p>Field Programmable Gate Arrays (FPGAs) represent reconfigurable silicon gate blocks configured through high-level languages like Verilog or VHDL. These devices compile into portable bit-files enabling hardware-level performance for specific functions. FPGAs power H.264 television decoding, high-speed trading algorithms, Tesla vehicle control systems, and F-35 monitoring capabilities.&lt;/p></description></item><item><title>Full-Stack Kubernetes Monitoring</title><link>https://webofmike.com/kubernetes-monitoring/</link><pubDate>Fri, 04 Jan 2019 00:00:00 +0000</pubDate><guid>https://webofmike.com/kubernetes-monitoring/</guid><description>&lt;p>Getting comprehensive visibility into a Kubernetes cluster requires gathering data across multiple layers. This involves collecting information about nodes, pods, applications, and cluster state while considering three key observability pillars: Infrastructure, Applications, and Logs.&lt;/p>
&lt;p>The core value proposition centers on correlation between these pillars. By enabling teams to connect insights across layers, organizations can improve their Mean-time-to-detection (MTTD) and Mean-time-to-resolution (MTTR)&amp;mdash;ultimately enhancing customer satisfaction and user experience.&lt;/p>
&lt;p>This presentation showcases practical approaches to instrument Kubernetes infrastructure and applications, providing deep and wide visibility into operational and development aspects of our applications.&lt;/p></description></item><item><title>Using A Cache to Reduce Your API Response Time</title><link>https://webofmike.com/using-a-cache-to-reduce-your-api-response-time/</link><pubDate>Fri, 04 Jan 2019 00:00:00 +0000</pubDate><guid>https://webofmike.com/using-a-cache-to-reduce-your-api-response-time/</guid><description>&lt;p>This presentation covers strategies for implementing caching to improve API performance. Using a cache as a method to reduce your response time requires understanding both when and why caching should be employed.&lt;/p>
&lt;p>A critical consideration is avoiding misuse of caching technology, which could paradoxically harm performance or cause data loss. When implemented thoughtfully, however, caching delivers substantial speed improvements and reduces service load.&lt;/p>
&lt;p>Key aspects covered include:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>When to Cache&lt;/strong>: Evaluate resource usage frequency, database performance strain, and redundant requests for identical or similar information&lt;/li>
&lt;li>&lt;strong>Technology Options&lt;/strong>: Various caching solutions and their appropriate use cases&lt;/li>
&lt;li>&lt;strong>Performance Factors&lt;/strong>: Proper implementation requires balancing cache benefits against potential complications&lt;/li>
&lt;/ul>
&lt;p>Strategic caching decisions can make your APIs faster, better, and truly make your developers happier by enhancing the developer experience through improved responsiveness.&lt;/p></description></item><item><title>Why You Should Use UUIDs in Your APIs</title><link>https://webofmike.com/why-you-should-use-uuids-in-your-apis/</link><pubDate>Fri, 04 Jan 2019 00:00:00 +0000</pubDate><guid>https://webofmike.com/why-you-should-use-uuids-in-your-apis/</guid><description>&lt;h2 id="what-is-a-uuid">What is a UUID?&lt;/h2>
&lt;p>A UUID is a 128-bit identifier represented as 32 hexadecimal digits in the format &lt;code>8-4-4-4-12&lt;/code>, totaling 36 characters. An example is &lt;code>123e4567-e89b-12d3-a456-426655440000&lt;/code>. The total number of possible UUIDs is approximately 3.4 x 10^38, providing virtually unlimited unique identifiers.&lt;/p>
&lt;h2 id="why-use-uuids">Why Use UUIDs?&lt;/h2>
&lt;p>The primary advantage centers on &lt;strong>security&lt;/strong>. By using difficult-to-guess identifiers instead of sequential numbers (1, 2, 3, etc.), developers establish a fundamental security layer for their APIs.&lt;/p></description></item><item><title>WordPress Optimization: Configuring CloudFlare as Your DNS Provider</title><link>https://webofmike.com/wordpress-optimization-configuring-cloudflare/</link><pubDate>Fri, 04 Jan 2019 00:00:00 +0000</pubDate><guid>https://webofmike.com/wordpress-optimization-configuring-cloudflare/</guid><description>&lt;p>Welcome to Part 4 of an 8-part series on implementing CloudFlare as a DNS provider for WordPress optimization. This guide assumes readers have either set up their own web server or use external hosting.&lt;/p>
&lt;h2 id="what-is-cloudflare">What is CloudFlare?&lt;/h2>
&lt;p>CloudFlare functions as a content delivery network and security service. It protects and accelerates any website online by routing traffic through a global network that optimizes page delivery while blocking threats and malicious bots. The service has demonstrated significant performance improvements for websites using its platform.&lt;/p></description></item><item><title>WordPress Optimization: Installing and Configuring WordPress</title><link>https://webofmike.com/installing-and-configuring-wordpress/</link><pubDate>Fri, 04 Jan 2019 00:00:00 +0000</pubDate><guid>https://webofmike.com/installing-and-configuring-wordpress/</guid><description>&lt;p>Welcome to part 5 of 8 in a series on Kick-Ass WordPress Optimization. This guide covers database and WordPress installation on a Digital Ocean droplet following server and DNS setup.&lt;/p>
&lt;h2 id="installing-mysql-and-configuring-your-database">Installing MySQL and Configuring Your Database&lt;/h2>
&lt;h3 id="actually-installing-mysql">Actually Installing MySQL&lt;/h3>
&lt;p>The foundation for WordPress requires a database to store posts, settings, and content. Installation begins with a console command:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>sudo apt-get -y install mysql-server
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>During installation, you&amp;rsquo;ll be prompted to set a root password&amp;mdash;this is critical to record for future access.&lt;/p></description></item><item><title>Brew Day: Black IPA</title><link>https://webofmike.com/brew-day-black-ipa/</link><pubDate>Sun, 15 Feb 2015 00:00:00 +0000</pubDate><guid>https://webofmike.com/brew-day-black-ipa/</guid><description>&lt;p>So it&amp;rsquo;s here again! BREW DAY. That glorious few hours where I get to drink beer while making beer. There&amp;rsquo;s really something chicken and egg about the whole thing. Which came first? Beer or beer? But I digress for now.&lt;/p>
&lt;p>As this is still somewhat of the beginning to my brewing adventures, I&amp;rsquo;ve been starting with some small batch 1-gallon kits to get a feel for where I&amp;rsquo;m headed next. Ideally I&amp;rsquo;ll be migrating onto some 5-10 gallon batches over the next year or so, getting some automation involved, and preparing a sweet taproom setup.&lt;/p></description></item><item><title>Beer Brewing Adventures</title><link>https://webofmike.com/beer-brewing-adventures/</link><pubDate>Wed, 11 Feb 2015 00:00:00 +0000</pubDate><guid>https://webofmike.com/beer-brewing-adventures/</guid><description>&lt;p>As I begin expanding my website, I want to share my initial experiences with home brewing. This new hobby combines three of my passions: coding, automation, and beer consumption.&lt;/p>
&lt;p>My first batch is a small 1-gallon pale ale from a kit gifted by my wife, nearing completion. My inaugural attempt involved poor straining techniques, an all-grain approach, and unsuccessful siphoning efforts that resulted in about 9 bottles achieved out of the whole effort.&lt;/p></description></item><item><title>Kick-Ass WordPress Optimization</title><link>https://webofmike.com/kick-ass-wordpress-optimization/</link><pubDate>Tue, 03 Feb 2015 00:00:00 +0000</pubDate><guid>https://webofmike.com/kick-ass-wordpress-optimization/</guid><description>&lt;p>I&amp;rsquo;ve managed multiple WordPress sites with substantial traffic (up to 60K daily visits) on a single server. This article serves as an introductory roadmap for a multi-part series covering complete WordPress setup and optimization.&lt;/p>
&lt;p>I promise to break down complex server management into digestible sections for average bloggers, enabling them to operate independently from hosting providers.&lt;/p>
&lt;p>The guide encompasses eight major topics:&lt;/p>
&lt;ol>
&lt;li>Getting Started essentials&lt;/li>
&lt;li>Initial server setup procedures&lt;/li>
&lt;li>Web server configuration (nginx and PHP)&lt;/li>
&lt;li>CloudFlare DNS provider setup&lt;/li>
&lt;li>WordPress installation and configuration&lt;/li>
&lt;li>Website caching strategies&lt;/li>
&lt;li>Server performance tuning&lt;/li>
&lt;li>Search engine integration&lt;/li>
&lt;/ol>
&lt;p>Each section addresses specific components, from domain registration through security hardening, to advanced caching systems using Varnish and Redis, and memory optimization across multiple services.&lt;/p></description></item><item><title>WordPress Optimization: Setting Up a Web Server</title><link>https://webofmike.com/wordpress-optimization-setting-web-server/</link><pubDate>Tue, 03 Feb 2015 00:00:00 +0000</pubDate><guid>https://webofmike.com/wordpress-optimization-setting-web-server/</guid><description>&lt;p>Welcome to part 3 of an 8-part series on WordPress optimization focusing on web server configuration. This guide assumes completion of the previous installation steps for virtual server setup.&lt;/p>
&lt;h2 id="why-nginx">Why Nginx?&lt;/h2>
&lt;p>We&amp;rsquo;re in this for performance and nginx is an open source web server written to address some of the performance and scalability issues associated with Apache.&lt;/p>
&lt;h2 id="installation-steps">Installation Steps&lt;/h2>
&lt;h3 id="nginx-installation">Nginx Installation&lt;/h3>
&lt;p>Basic installation requires one command to deploy nginx with extras.&lt;/p></description></item><item><title>WordPress Optimization: Getting Started</title><link>https://webofmike.com/wordpress-optimization-getting-started/</link><pubDate>Sun, 01 Feb 2015 00:00:00 +0000</pubDate><guid>https://webofmike.com/wordpress-optimization-getting-started/</guid><description>&lt;p>Welcome to Part 1 of a comprehensive 8-part series on WordPress optimization! This introductory chapter covers the essential prerequisites for getting started.&lt;/p>
&lt;h2 id="domain-name">Domain Name&lt;/h2>
&lt;p>Before beginning, you&amp;rsquo;ll need to secure a domain name. Select one that reflects your blog&amp;rsquo;s subject matter, ideally incorporating your primary keyword. As long as you are genuine, follow the steps here, and give love and care to your content, the people will come!&lt;/p>
&lt;h2 id="a-server-you-can-work-with">A Server You Can Work With&lt;/h2>
&lt;p>I strongly advise moving away from wordpress.com hosted blogs to gain access to advanced optimization techniques. Acquire your own server through a provider like Digital Ocean, which offers affordable hosting solutions. You&amp;rsquo;ll need a server with command-line access to implement the performance enhancements covered in subsequent chapters.&lt;/p></description></item><item><title>WordPress Optimization: Setting Up A Virtual Server</title><link>https://webofmike.com/wordpress-optimization-setting-server/</link><pubDate>Sun, 01 Feb 2015 00:00:00 +0000</pubDate><guid>https://webofmike.com/wordpress-optimization-setting-server/</guid><description>&lt;p>This is Part 2 of an 8-part series on WordPress optimization, focusing on setting up your first virtual server.&lt;/p>
&lt;h2 id="why-anyone-can-do-this">Why Anyone Can Do This&lt;/h2>
&lt;p>IT professionals unnecessarily mystify technology. With proper explanation, anyone regardless of background can learn to set up and manage a server.&lt;/p>
&lt;h2 id="understanding-virtual-servers">Understanding Virtual Servers&lt;/h2>
&lt;p>A virtual server exists in the cloud as a packaged set of computing resources&amp;mdash;processor, RAM, and storage. This tutorial uses Digital Ocean as the preferred provider, referring to their servers as &amp;ldquo;Droplets.&amp;rdquo; These can be created in approximately 55 seconds.&lt;/p></description></item><item><title>Redirecting Bad Referers with Varnish</title><link>https://webofmike.com/redirecting-bad-referers-with-varnish/</link><pubDate>Fri, 16 Jan 2015 00:00:00 +0000</pubDate><guid>https://webofmike.com/redirecting-bad-referers-with-varnish/</guid><description>&lt;p>Spam referrals cluttering analytics is frustrating. Here&amp;rsquo;s a VCL 4.0 approach to redirect suspicious referral sources.&lt;/p>
&lt;h2 id="implementation">Implementation&lt;/h2>
&lt;p>The solution uses a custom subroutine to identify and redirect problematic referrers:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-fallback" data-lang="fallback">&lt;span style="display:flex;">&lt;span>sub bad_referrals {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> if ( req.http.referer ~ &amp;#34;hulfingtonpost&amp;#34; ||
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> req.http.referer ~ &amp;#34;forum.topic57969834.darodar&amp;#34; ||
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> req.http.referer ~ &amp;#34;ilovevitaly&amp;#34; ||
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> req.http.referer ~ &amp;#34;priceg&amp;#34; ||
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> req.http.referer ~ &amp;#34;blackhatworth.com&amp;#34;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ) {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> set req.http.host = &amp;#34;www.ihateyousomuchomgroflcats.com&amp;#34;;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> return(synth(750, &amp;#34;All your referer are belong to us.&amp;#34;));
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The configuration integrates into the receive and synthesis subroutines, ultimately directing flagged traffic via HTTP 301 redirect to an alternative destination.&lt;/p></description></item><item><title>Deploying WordPress over Nginx and PHP-FPM</title><link>https://webofmike.com/deploying-wordpress-over-nginx-and-php-fpm/</link><pubDate>Thu, 08 Jan 2015 00:00:00 +0000</pubDate><guid>https://webofmike.com/deploying-wordpress-over-nginx-and-php-fpm/</guid><description>&lt;p>This post highlights advanced deployment resources for setting up WordPress infrastructure from the ground up.&lt;/p>
&lt;p>Key installation components include:&lt;/p>
&lt;ul>
&lt;li>Installing Nginx from package repository or compiling it from scratch&lt;/li>
&lt;li>PHP5, php-mysql, php-fpm, and additional PHP libraries (such as php-gd)&lt;/li>
&lt;li>MySQL or MariaDB database systems&lt;/li>
&lt;li>Configuration of PHP, Nginx, and database services&lt;/li>
&lt;/ul>
&lt;p>For those new to WordPress administration, check out the Kick-Ass WordPress Optimization Series on this blog, which provides step-by-step guidance covering virtual server creation through Nginx/PHP-FPM optimization.&lt;/p></description></item><item><title>Socket.io Cluster with Nginx as Reverse Proxy</title><link>https://webofmike.com/socket-io-cluster-with-nginx/</link><pubDate>Thu, 08 Jan 2015 00:00:00 +0000</pubDate><guid>https://webofmike.com/socket-io-cluster-with-nginx/</guid><description>&lt;p>Node.js by default runs on a single process and at max utilizes one CPU. To take the full advantage of a multi core system, multiple node processes can be run with a frontend proxy interfacing with the client.&lt;/p>
&lt;p>This article discusses using Node.js&amp;rsquo;s cluster module with websockets and nginx as a reverse proxy to achieve better performance and scalability for real-time applications.&lt;/p></description></item><item><title>Tornado Error Handling</title><link>https://webofmike.com/tornado-error-handling/</link><pubDate>Sun, 09 Feb 2014 00:00:00 +0000</pubDate><guid>https://webofmike.com/tornado-error-handling/</guid><description>&lt;p>This post discusses implementing custom error handling in the Tornado web framework by creating a reusable base handler class.&lt;/p>
&lt;h2 id="the-problem">The Problem&lt;/h2>
&lt;p>I identified a need for custom error messages and a more robust foundation for request handlers across my Tornado application.&lt;/p>
&lt;h2 id="the-solution">The Solution&lt;/h2>
&lt;p>The approach involves creating a base handler class that all application handlers inherit from. The key implementation uses the &lt;code>write_error&lt;/code> method to intercept HTTP errors:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-python" data-lang="python">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">class&lt;/span> &lt;span style="color:#a6e22e">BaseHandler&lt;/span>(tornado&lt;span style="color:#f92672">.&lt;/span>web&lt;span style="color:#f92672">.&lt;/span>RequestHandler):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">def&lt;/span> __init__(self, application, request, &lt;span style="color:#f92672">**&lt;/span>kwargs):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> super(BaseHandler, self)&lt;span style="color:#f92672">.&lt;/span>__init__(application, request)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">def&lt;/span> &lt;span style="color:#a6e22e">write_error&lt;/span>(self, status_code, &lt;span style="color:#f92672">**&lt;/span>kwargs):
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">if&lt;/span> status_code &lt;span style="color:#f92672">==&lt;/span> &lt;span style="color:#ae81ff">404&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> self&lt;span style="color:#f92672">.&lt;/span>render(&lt;span style="color:#e6db74">&amp;#39;errors/404.html&amp;#39;&lt;/span>, page&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#66d9ef">None&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">else&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> self&lt;span style="color:#f92672">.&lt;/span>render(&lt;span style="color:#e6db74">&amp;#39;errors/unknown.html&amp;#39;&lt;/span>, page&lt;span style="color:#f92672">=&lt;/span>&lt;span style="color:#66d9ef">None&lt;/span>)
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="implementation">Implementation&lt;/h2>
&lt;p>Handlers then inherit from this base class:&lt;/p></description></item><item><title>Tornado Sessions with Redis</title><link>https://webofmike.com/tornado-sessions-with-redis/</link><pubDate>Fri, 07 Feb 2014 00:00:00 +0000</pubDate><guid>https://webofmike.com/tornado-sessions-with-redis/</guid><description>&lt;p>Tornado really doesn&amp;rsquo;t have a great native session handler, so I created a custom solution combining Tornado with Redis for session management.&lt;/p>
&lt;h2 id="session-storage-implementation">Session Storage Implementation&lt;/h2>
&lt;p>The &lt;code>RedisSessionStore&lt;/code> class manages backend operations:&lt;/p>
&lt;ul>
&lt;li>Initializes with configurable key prefixes and expiration times (default: 60 days)&lt;/li>
&lt;li>Generates session IDs using UUID&lt;/li>
&lt;li>Stores/retrieves pickled session data in Redis hash structures&lt;/li>
&lt;li>Automatically expires sessions based on configuration&lt;/li>
&lt;/ul>
&lt;h2 id="session-wrapper-class">Session Wrapper Class&lt;/h2>
&lt;p>The &lt;code>Session&lt;/code> class provides a dictionary-like interface:&lt;/p></description></item><item><title>About</title><link>https://webofmike.com/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://webofmike.com/about/</guid><description>&lt;h2 id="mike-moore">Mike Moore&lt;/h2>
&lt;p>&lt;strong>Global Sales Engineer &amp;amp; Solution Architecture Leader&lt;/strong>&lt;/p>
&lt;p>Driving Technical Excellence and Revenue Growth | Expert in Technical Framework Development and Innovative Solutions&lt;/p>
&lt;p>Based in Portland, OR.&lt;/p>
&lt;h3 id="what-i-do">What I Do&lt;/h3>
&lt;p>I help organizations navigate complex technology landscapes through hands-on technical leadership. My experience spans observability, DevOps, platform engineering, AI/ML, and cloud-native computing.&lt;/p>
&lt;h3 id="connect">Connect&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://twitter.com/themsquared">Twitter/X @themsquared&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Privacy Notice</title><link>https://webofmike.com/privacy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://webofmike.com/privacy/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>This privacy notice explains how WebOfMike.com collects, uses, and protects visitor information.&lt;/p>
&lt;h2 id="information-collected">Information Collected&lt;/h2>
&lt;p>&lt;strong>Voluntarily Provided:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Email addresses&lt;/li>
&lt;li>Names&lt;/li>
&lt;li>Payment data (processed through Stripe)&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Automatically Collected:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>IP addresses and device characteristics&lt;/li>
&lt;li>Browser type and operating system&lt;/li>
&lt;li>Log and usage data&lt;/li>
&lt;li>Location information (based on IP address)&lt;/li>
&lt;/ul>
&lt;h2 id="data-usage">Data Usage&lt;/h2>
&lt;p>The site processes information to:&lt;/p>
&lt;ul>
&lt;li>Facilitate account creation and authentication&lt;/li>
&lt;li>Provide and improve services&lt;/li>
&lt;li>Ensure security and prevent fraud&lt;/li>
&lt;li>Comply with legal obligations&lt;/li>
&lt;/ul>
&lt;h2 id="third-party-sharing">Third-Party Sharing&lt;/h2>
&lt;p>The site shares data with:&lt;/p></description></item></channel></rss>