<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/feed.rss.xml" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>life michael</title>
    <description/>
    <link>https://speakerdeck.com/lifemichael</link>
    <atom:link rel="self" type="application/rss+xml" href="https://speakerdeck.com/lifemichael.rss"/>
    <lastBuildDate>2026-09-01 15:59:48 -0400</lastBuildDate>
    <item>
      <title>Orchestrating AI Agents in Spec-Driven Development with Kiro IDE</title>
      <description>These slides were presented at GDG DevFest Roma 2026 on October 10, 2026.

AI is dramatically changing software development. As generating code becomes faster and cheaper, the real challenges are shifting toward defining requirements, coordinating AI agents, verifying results, and maintaining reliable software systems.

In this talk, delivered at **GDG DevFest Roma 2026**, I explored how **Spec-Driven Development (SDD)** and **Kiro IDE** enable a more structured approach to AI-assisted software engineering.

The presentation covers the transition from prompt-driven development and vibe coding toward specifications as persistent, verifiable artifacts that coordinate development activities.

Key topics include:

- **Spec-Driven Development:** Requirements, steering documents, technical designs, EARS, and implementation tasks.
- **Kiro IDE:** Its development process and the broader Kiro tools ecosystem.
- **Agent Hooks:** Automating code reviews, testing, documentation, and other development activities.
- **Subagents:** Delegating specialized tasks to multiple AI agents.
- **Orchestration Patterns:** Reviewer loops, coordinator-worker models, sequential pipelines, parallel specialists, and event-driven agents.
- **Parallel Execution:** Managing task dependencies and concurrent execution.
- **Kiro Workflows:** Defining reusable multi-agent workflows with sequential steps, parallel execution, and iterative loops.
- **Cloud-Based Agents and Kiro Crew:** Persistent orchestration, long-running tasks, and observability.
- **Best Practices:** Maintaining specifications, reviewing technical designs, and optimizing agent execution using MCP servers, skills, and Kiro Powers.

The central message is that **software development is moving to a higher level of abstraction**. Developers increasingly define goals, architecture, constraints, and quality standards while AI agents perform much of the implementation.

The future of software engineering is not merely about generating more code. It is about **orchestrating AI agents effectively while maintaining control, traceability, and software quality**.

You can find the post I have written to summarize my experience delivering this talk at https://lifemichael.com/en/devfest-roma-2026-orchestrating-ai-agents-with-kiro-ide/</description>
      <media:content url="https://files.speakerdeck.com/presentations/ce7cf21ad1e34ea3b443b7ded8622ed4/preview_slide_0.jpg?40866080" type="image/jpeg" medium="image"/>
      <content:encoded>These slides were presented at GDG DevFest Roma 2026 on October 10, 2026.

AI is dramatically changing software development. As generating code becomes faster and cheaper, the real challenges are shifting toward defining requirements, coordinating AI agents, verifying results, and maintaining reliable software systems.

In this talk, delivered at **GDG DevFest Roma 2026**, I explored how **Spec-Driven Development (SDD)** and **Kiro IDE** enable a more structured approach to AI-assisted software engineering.

The presentation covers the transition from prompt-driven development and vibe coding toward specifications as persistent, verifiable artifacts that coordinate development activities.

Key topics include:

- **Spec-Driven Development:** Requirements, steering documents, technical designs, EARS, and implementation tasks.
- **Kiro IDE:** Its development process and the broader Kiro tools ecosystem.
- **Agent Hooks:** Automating code reviews, testing, documentation, and other development activities.
- **Subagents:** Delegating specialized tasks to multiple AI agents.
- **Orchestration Patterns:** Reviewer loops, coordinator-worker models, sequential pipelines, parallel specialists, and event-driven agents.
- **Parallel Execution:** Managing task dependencies and concurrent execution.
- **Kiro Workflows:** Defining reusable multi-agent workflows with sequential steps, parallel execution, and iterative loops.
- **Cloud-Based Agents and Kiro Crew:** Persistent orchestration, long-running tasks, and observability.
- **Best Practices:** Maintaining specifications, reviewing technical designs, and optimizing agent execution using MCP servers, skills, and Kiro Powers.

The central message is that **software development is moving to a higher level of abstraction**. Developers increasingly define goals, architecture, constraints, and quality standards while AI agents perform much of the implementation.

The future of software engineering is not merely about generating more code. It is about **orchestrating AI agents effectively while maintaining control, traceability, and software quality**.

You can find the post I have written to summarize my experience delivering this talk at https://lifemichael.com/en/devfest-roma-2026-orchestrating-ai-agents-with-kiro-ide/</content:encoded>
      <pubDate>Sat, 10 Oct 2026 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/lifemichael/orchestrating-ai-agents-in-spec-driven-development-with-kiro-ide</link>
      <guid>https://speakerdeck.com/lifemichael/orchestrating-ai-agents-in-spec-driven-development-with-kiro-ide</guid>
    </item>
    <item>
      <title>Services Discovery Patterns in Microservices [Free Meetup]</title>
      <description>In microservices architecture, service instances are continuously created, restarted, moved, and scaled. Their network locations can change dynamically, making hard-coded endpoints impractical.

This talk explores five essential Service Discovery design patterns that enable microservices to locate and communicate with each other reliably. For each pattern, we examine the problem it addresses, its solution, and the advantages and disadvantages of using it.

The talk provides a practical foundation for understanding service discovery in distributed systems and making informed architectural decisions when developing microservices.

You can find the video at https://youtu.be/GCeJFxKyn-s

You can find more information about this meetup at https://www.meetup.com/lifemichael/events/315134024/

You can find the post that summarizes this meetup at https://lifemichael.com/en/highlights-from-our-meetup-on-service-discovery-design-patterns/

You can find more info about the series of 10 meetups this meetup belongs to at https://lifemichael.com/en/series-of-meetups-on-microservices-design-patterns/</description>
      <media:content url="https://files.speakerdeck.com/presentations/5ba89823870b4f899a120bd68795aff3/preview_slide_0.jpg?40833845" type="image/jpeg" medium="image"/>
      <content:encoded>In microservices architecture, service instances are continuously created, restarted, moved, and scaled. Their network locations can change dynamically, making hard-coded endpoints impractical.

This talk explores five essential Service Discovery design patterns that enable microservices to locate and communicate with each other reliably. For each pattern, we examine the problem it addresses, its solution, and the advantages and disadvantages of using it.

The talk provides a practical foundation for understanding service discovery in distributed systems and making informed architectural decisions when developing microservices.

You can find the video at https://youtu.be/GCeJFxKyn-s

You can find more information about this meetup at https://www.meetup.com/lifemichael/events/315134024/

You can find the post that summarizes this meetup at https://lifemichael.com/en/highlights-from-our-meetup-on-service-discovery-design-patterns/

You can find more info about the series of 10 meetups this meetup belongs to at https://lifemichael.com/en/series-of-meetups-on-microservices-design-patterns/</content:encoded>
      <pubDate>Thu, 08 Oct 2026 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/lifemichael/services-discovery-patterns-in-microservices-free-meetup</link>
      <guid>https://speakerdeck.com/lifemichael/services-discovery-patterns-in-microservices-free-meetup</guid>
    </item>
    <item>
      <title>Securing WordPress Logins with PressGate [Free Meetup]</title>
      <description>WordPress login pages are a common target for brute-force attacks, username spraying, bots, and other automated threats. In this talk, I explore practical ways to strengthen WordPress authentication with PressGate, a WordPress plugin that adds an extra security layer on top of protections already provided by a Web Application Firewall (WAF).

The session covers several of PressGate’s main capabilities, including TOTP-based two-factor authentication, with support for Google Authenticator and role-specific enforcement; manual IP blocking, including CIDR ranges; detailed login activity logs for identifying suspicious authentication attempts; configurable detection sensitivity for brute-force and username-spraying behavior; and role-specific login policies that allow stricter controls for privileged users such as administrators.    

The talk also emphasizes a defense-in-depth approach: PressGate is not intended to replace a WAF, but rather to complement it by protecting the WordPress authentication layer itself.    

Topics covered:
- WordPress login security threats
- Two-factor authentication with TOTP
- Role-specific authentication policies
- Brute-force and username-spraying detection
- Login lockouts and detection thresholds
- IP and CIDR blocking
- Login activity monitoring and audit logs
- Using PressGate together with a Web Application Firewall

PressGate is free and can add another layer of protection to the WordPress administration area.

PressGate:
https://zindrex.com/pressgate

YouTube:
https://youtu.be/pEWeKgTycQM 

Post:
https://lifemichael.com/en/securing-wordpress-logins-with-pressgate-highlights-from-our-latest-meetup</description>
      <media:content url="https://files.speakerdeck.com/presentations/d3dd4f7abaf14d45b9271e80852c7c74/preview_slide_0.jpg?40717025" type="image/jpeg" medium="image"/>
      <content:encoded>WordPress login pages are a common target for brute-force attacks, username spraying, bots, and other automated threats. In this talk, I explore practical ways to strengthen WordPress authentication with PressGate, a WordPress plugin that adds an extra security layer on top of protections already provided by a Web Application Firewall (WAF).

The session covers several of PressGate’s main capabilities, including TOTP-based two-factor authentication, with support for Google Authenticator and role-specific enforcement; manual IP blocking, including CIDR ranges; detailed login activity logs for identifying suspicious authentication attempts; configurable detection sensitivity for brute-force and username-spraying behavior; and role-specific login policies that allow stricter controls for privileged users such as administrators.    

The talk also emphasizes a defense-in-depth approach: PressGate is not intended to replace a WAF, but rather to complement it by protecting the WordPress authentication layer itself.    

Topics covered:
- WordPress login security threats
- Two-factor authentication with TOTP
- Role-specific authentication policies
- Brute-force and username-spraying detection
- Login lockouts and detection thresholds
- IP and CIDR blocking
- Login activity monitoring and audit logs
- Using PressGate together with a Web Application Firewall

PressGate is free and can add another layer of protection to the WordPress administration area.

PressGate:
https://zindrex.com/pressgate

YouTube:
https://youtu.be/pEWeKgTycQM 

Post:
https://lifemichael.com/en/securing-wordpress-logins-with-pressgate-highlights-from-our-latest-meetup</content:encoded>
      <pubDate>Tue, 29 Sep 2026 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/lifemichael/securing-wordpress-logins-with-pressgate-free-meetup</link>
      <guid>https://speakerdeck.com/lifemichael/securing-wordpress-logins-with-pressgate-free-meetup</guid>
    </item>
    <item>
      <title>Conf42 AI Agents 2026: Orchestrating AI Agents with Pattern Matching</title>
      <description>These slides accompany my talk “Orchestrating AI Agents with Pattern Matching.” The presentation explores how pattern matching can be used to introduce deterministic control into systems built around inherently non-deterministic AI agents.

The first part introduces modern pattern-matching capabilities, including switch expressions, completeness requirements with sealed types, guarded patterns, record deconstruction, and unnamed variables and patterns.     

The second part applies these concepts directly to AI-agent orchestration. The examples demonstrate several orchestration patterns: handling structured agent results, a Planner → Coder → Reviewer pipeline, branching delegation with a router, retry and feedback loops, and parallel fan-out with a judge agent.    

The central idea is to keep AI agents probabilistic while making the orchestration layer explicit, typed, and predictable through pattern matching.

The slides also include the link to the accompanying code samples.</description>
      <media:content url="https://files.speakerdeck.com/presentations/f5eb512aa22f48ca96093fc6d84036a7/preview_slide_0.jpg?40705411" type="image/jpeg" medium="image"/>
      <content:encoded>These slides accompany my talk “Orchestrating AI Agents with Pattern Matching.” The presentation explores how pattern matching can be used to introduce deterministic control into systems built around inherently non-deterministic AI agents.

The first part introduces modern pattern-matching capabilities, including switch expressions, completeness requirements with sealed types, guarded patterns, record deconstruction, and unnamed variables and patterns.     

The second part applies these concepts directly to AI-agent orchestration. The examples demonstrate several orchestration patterns: handling structured agent results, a Planner → Coder → Reviewer pipeline, branching delegation with a router, retry and feedback loops, and parallel fan-out with a judge agent.    

The central idea is to keep AI agents probabilistic while making the orchestration layer explicit, typed, and predictable through pattern matching.

The slides also include the link to the accompanying code samples.</content:encoded>
      <pubDate>Mon, 28 Sep 2026 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/lifemichael/conf42-ai-agents-2026-orchestrating-ai-agents-with-pattern-matching</link>
      <guid>https://speakerdeck.com/lifemichael/conf42-ai-agents-2026-orchestrating-ai-agents-with-pattern-matching</guid>
    </item>
    <item>
      <title>Semantic Search in Practice with MongoDB and Voyage AI</title>
      <description>Semantic search changes the way we think about searching data. Instead of relying only on exact keywords, semantic search attempts to understand the meaning and intent behind a query and retrieve information that is conceptually related to what the user is looking for. This presentation, “Semantic Search in Practice – Implemented with MongoDB and Voyage AI,” introduces the fundamental ideas behind semantic search and demonstrates how they can be implemented in a practical software application.

The presentation begins with the basic concepts of semantic understanding, semantic search, vector embeddings, and embedding models. It explains how words, sentences, and other types of data can be represented as numerical vectors in a multidimensional space, where semantically similar information tends to be positioned closer together. It also introduces several common techniques for measuring similarity between vectors, including cosine similarity, Euclidean distance, and dot product similarity.

The practical part of the presentation demonstrates how to generate embeddings using Voyage AI, how to create embeddings for documents and search queries, and how to rank documents according to their semantic similarity. Python code samples show the complete process, including generating document embeddings, generating query embeddings, calculating similarity, and retrieving the most relevant results.

The presentation then moves from a simple in-memory implementation to a more realistic architecture using MongoDB Atlas. It explains how embeddings can be stored together with the original MongoDB documents, how to create a Vector Search Index, how to generate an embedding for a user's query, and how to perform semantic search using MongoDB's $vectorSearch aggregation stage.

The slides also connect semantic search with RAG — Retrieval-Augmented Generation. Once data is represented by embeddings and can be retrieved through vector search, it can be supplied as contextual information to generative AI applications, helping them produce answers based on relevant external information. The presentation concludes with MongoDB's autoEmbed capability, which can automatically generate Voyage AI embeddings from document fields at index time, reducing the need to calculate and store embeddings manually.

This presentation is intended for software developers who want to understand what semantic search is, how vector embeddings make it possible, and how the complete process can be implemented using Python, MongoDB, and Voyage AI.

You can find the post that summarizes this meetup at https://lifemichael.com/en/semantic-search-in-practice-with-mongodb. 

You can find more information about that meetup at https://www.meetup.com/lifemichael/events/315942806 </description>
      <media:content url="https://files.speakerdeck.com/presentations/eaa6a9bb6cc941d8808fa84aad0721b0/preview_slide_0.jpg?40574196" type="image/jpeg" medium="image"/>
      <content:encoded>Semantic search changes the way we think about searching data. Instead of relying only on exact keywords, semantic search attempts to understand the meaning and intent behind a query and retrieve information that is conceptually related to what the user is looking for. This presentation, “Semantic Search in Practice – Implemented with MongoDB and Voyage AI,” introduces the fundamental ideas behind semantic search and demonstrates how they can be implemented in a practical software application.

The presentation begins with the basic concepts of semantic understanding, semantic search, vector embeddings, and embedding models. It explains how words, sentences, and other types of data can be represented as numerical vectors in a multidimensional space, where semantically similar information tends to be positioned closer together. It also introduces several common techniques for measuring similarity between vectors, including cosine similarity, Euclidean distance, and dot product similarity.

The practical part of the presentation demonstrates how to generate embeddings using Voyage AI, how to create embeddings for documents and search queries, and how to rank documents according to their semantic similarity. Python code samples show the complete process, including generating document embeddings, generating query embeddings, calculating similarity, and retrieving the most relevant results.

The presentation then moves from a simple in-memory implementation to a more realistic architecture using MongoDB Atlas. It explains how embeddings can be stored together with the original MongoDB documents, how to create a Vector Search Index, how to generate an embedding for a user's query, and how to perform semantic search using MongoDB's $vectorSearch aggregation stage.

The slides also connect semantic search with RAG — Retrieval-Augmented Generation. Once data is represented by embeddings and can be retrieved through vector search, it can be supplied as contextual information to generative AI applications, helping them produce answers based on relevant external information. The presentation concludes with MongoDB's autoEmbed capability, which can automatically generate Voyage AI embeddings from document fields at index time, reducing the need to calculate and store embeddings manually.

This presentation is intended for software developers who want to understand what semantic search is, how vector embeddings make it possible, and how the complete process can be implemented using Python, MongoDB, and Voyage AI.

You can find the post that summarizes this meetup at https://lifemichael.com/en/semantic-search-in-practice-with-mongodb. 

You can find more information about that meetup at https://www.meetup.com/lifemichael/events/315942806 </content:encoded>
      <pubDate>Tue, 15 Sep 2026 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/lifemichael/semantic-search-in-practice-with-mongodb-and-voyage-ai</link>
      <guid>https://speakerdeck.com/lifemichael/semantic-search-in-practice-with-mongodb-and-voyage-ai</guid>
    </item>
    <item>
      <title>Your Personal AI Knowledge Workspace</title>
      <description>These are the slides I used to deliver the meetup that introduced the Prompo web browser extension, which helps us maintain the resources we gather when we chat with AI. 

More information about Prompo is available at
https://prompo.ai

More information about the meetup at
https://www.meetup.com/lifemichael/events/316083234/

The video can be found at 
https://youtu.be/Bk7rGbXXEv8

The post I wrote following the meetup can be found at 
https://lifemichael.com/en/meetup-recap-building-your-personal-ai-knowledge-workspace-with-prompo/

More information about the meetup at
https://www.meetup.com/lifemichael/events/316083234/</description>
      <media:content url="https://files.speakerdeck.com/presentations/fa2050e864bc42fbacc74232bf79d60c/preview_slide_0.jpg?40501312" type="image/jpeg" medium="image"/>
      <content:encoded>These are the slides I used to deliver the meetup that introduced the Prompo web browser extension, which helps us maintain the resources we gather when we chat with AI. 

More information about Prompo is available at
https://prompo.ai

More information about the meetup at
https://www.meetup.com/lifemichael/events/316083234/

The video can be found at 
https://youtu.be/Bk7rGbXXEv8

The post I wrote following the meetup can be found at 
https://lifemichael.com/en/meetup-recap-building-your-personal-ai-knowledge-workspace-with-prompo/

More information about the meetup at
https://www.meetup.com/lifemichael/events/316083234/</content:encoded>
      <pubDate>Tue, 08 Sep 2026 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/lifemichael/your-personal-ai-knowledge-workspace</link>
      <guid>https://speakerdeck.com/lifemichael/your-personal-ai-knowledge-workspace</guid>
    </item>
    <item>
      <title>Communication Patterns Between Microservices</title>
      <description>Communication between microservices is one of the key architectural decisions in a distributed system.

This presentation explores the main patterns used for communication between microservices and the trade-offs associated with each approach. It begins with the fundamental choice between synchronous Remote Procedure Invocation (RPI), using technologies such as REST and gRPC, and asynchronous messaging through queues and publish/subscribe systems.

The slides examine how synchronous dependency chains affect latency and availability, how message brokers reduce temporal coupling, and how commands, events, and asynchronous replies support distributed workflows.

Additional patterns covered include API Gateway, Backend for Frontend (BFF), client-side and server-side service discovery, and essential reliability mechanisms such as timeouts, retries, circuit breakers, bulkheads, idempotency, and Dead-Letter Queues.

The presentation concludes with a practical hybrid architecture that combines an API Gateway at the edge, synchronous calls where immediate responses are required, and asynchronous events for independent processing, side effects, and fan-out.

Topics covered:
• Remote Procedure Invocation (RPI)
• REST and gRPC
• Asynchronous Messaging
• Queues and Publish/Subscribe
• Commands and Events
• API Gateway
• Backend for Frontend (BFF)
• Service Discovery
• Reliability Patterns
• Hybrid Microservices Architecture

You can find the video at https://youtu.be/t7RCQ_t6A7k

You can find the post that summarizes this meetup at https://lifemichael.com/en/communication-patterns-between-microservices/

You can find the catalog of the professional seminars delivered by life michael at https://www.lifemichael.com/seminars/lifemichael_seminars_catalog.pdf </description>
      <media:content url="https://files.speakerdeck.com/presentations/587f0b93b4f245fd964ed9d43a6be02f/preview_slide_0.jpg?40433754" type="image/jpeg" medium="image"/>
      <content:encoded>Communication between microservices is one of the key architectural decisions in a distributed system.

This presentation explores the main patterns used for communication between microservices and the trade-offs associated with each approach. It begins with the fundamental choice between synchronous Remote Procedure Invocation (RPI), using technologies such as REST and gRPC, and asynchronous messaging through queues and publish/subscribe systems.

The slides examine how synchronous dependency chains affect latency and availability, how message brokers reduce temporal coupling, and how commands, events, and asynchronous replies support distributed workflows.

Additional patterns covered include API Gateway, Backend for Frontend (BFF), client-side and server-side service discovery, and essential reliability mechanisms such as timeouts, retries, circuit breakers, bulkheads, idempotency, and Dead-Letter Queues.

The presentation concludes with a practical hybrid architecture that combines an API Gateway at the edge, synchronous calls where immediate responses are required, and asynchronous events for independent processing, side effects, and fan-out.

Topics covered:
• Remote Procedure Invocation (RPI)
• REST and gRPC
• Asynchronous Messaging
• Queues and Publish/Subscribe
• Commands and Events
• API Gateway
• Backend for Frontend (BFF)
• Service Discovery
• Reliability Patterns
• Hybrid Microservices Architecture

You can find the video at https://youtu.be/t7RCQ_t6A7k

You can find the post that summarizes this meetup at https://lifemichael.com/en/communication-patterns-between-microservices/

You can find the catalog of the professional seminars delivered by life michael at https://www.lifemichael.com/seminars/lifemichael_seminars_catalog.pdf </content:encoded>
      <pubDate>Tue, 01 Sep 2026 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/lifemichael/communication-patterns-between-microservices</link>
      <guid>https://speakerdeck.com/lifemichael/communication-patterns-between-microservices</guid>
    </item>
  </channel>
</rss>
