<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title><![CDATA[ Phillip Krüger ]]></title>
    <description><![CDATA[ Phillip Krüger is a software engineer in Victoria, Australia, working at Red Hat on Quarkus developer tooling: Dev UI, Chappie, Dev MCP and Agent MCP. Blog posts on Java, GraphQL, OpenAPI and open source. ]]></description>
    <link>https://www.phillip-kruger.com/</link>
    <atom:link href="https://www.phillip-kruger.com/rss.xml" rel="self" type="application/rss+xml"/>
    <generator>Quarkus Roq</generator>
    <lastBuildDate>Mon, 07 Sep 2026 00:00:00 +0000</lastBuildDate>
      <item>
        <title><![CDATA[Introducing Quarkus JSON-RPC: expose your Java methods with one annotation]]></title>
        <link>https://www.phillip-kruger.com/posts/introducing-quarkus-json-rpc/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/introducing-quarkus-json-rpc/</guid>
        <pubDate>Mon, 07 Sep 2026 00:00:00 +0000</pubDate>
        <description><![CDATA[Quarkus JSON-RPC is a Quarkiverse extension that exposes the public methods of an annotated class over JSON-RPC 2.0, on WebSocket or a Unix domain socket, with streaming, server push and a generated JavaScript client]]></description>
        <content:encoded><![CDATA[<p>Quarkus JSON-RPC is a Quarkiverse extension that exposes the public methods of an annotated class over JSON-RPC 2.0, on WebSocket or a Unix domain socket, with streaming, server push and a generated JavaScript client</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/introducing-quarkus-json-rpc/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Introducing Quarkus Agent MCP: teaching AI agents to speak Quarkus]]></title>
        <link>https://www.phillip-kruger.com/posts/introducing-agent-mcp/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/introducing-agent-mcp/</guid>
        <pubDate>Thu, 07 May 2026 00:00:00 +0000</pubDate>
        <description><![CDATA[Quarkus Agent MCP is a standalone MCP server that lets AI coding agents create, manage, and work effectively with Quarkus applications. Extension authors can ship coding skills that agents pick up automatically]]></description>
        <content:encoded><![CDATA[<p>Quarkus Agent MCP is a standalone MCP server that lets AI coding agents create, manage, and work effectively with Quarkus applications. Extension authors can ship coding skills that agents pick up automatically</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/introducing-agent-mcp/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[mvnpm: npm packages as Maven dependencies, without the wait]]></title>
        <link>https://www.phillip-kruger.com/posts/mvnpm/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/mvnpm/</guid>
        <pubDate>Mon, 25 Sep 2023 00:00:00 +0000</pubDate>
        <description><![CDATA[mvnpm is a Maven repository that sits in front of the npm registry, so any npm package can be used as a Maven or Gradle dependency, kept up to date and synced to Maven Central automatically]]></description>
        <content:encoded><![CDATA[<p>mvnpm is a Maven repository that sits in front of the npm registry, so any npm package can be used as a Maven or Gradle dependency, kept up to date and synced to Maven Central automatically</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/mvnpm/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Stylish API]]></title>
        <link>https://www.phillip-kruger.com/posts/stylish-api/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/stylish-api/</guid>
        <pubDate>Wed, 04 Nov 2020 00:00:00 +0000</pubDate>
        <description><![CDATA[In this blog post we are going to look at the new styling and other new options available in OpenAPI and SwaggerUI Quarkus (v1.10.0 +)]]></description>
        <content:encoded><![CDATA[<p>In this blog post we are going to look at the new styling and other new options available in OpenAPI and SwaggerUI Quarkus (v1.10.0 +)</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/stylish-api/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Experimental GraphQL]]></title>
        <link>https://www.phillip-kruger.com/posts/experimental-graphql/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/experimental-graphql/</guid>
        <pubDate>Tue, 27 Oct 2020 00:00:00 +0000</pubDate>
        <description><![CDATA[This blog post is a follow up on the initial introductory post, Supersonic Subatomic GraphQL, and here we will explore more features, some that is experimental, that we hope to eventually move to the MicroProfile GraphQL Specification (based on your feedback !)]]></description>
        <content:encoded><![CDATA[<p>This blog post is a follow up on the initial introductory post, Supersonic Subatomic GraphQL, and here we will explore more features, some that is experimental, that we hope to eventually move to the MicroProfile GraphQL Specification (based on your feedback !)</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/experimental-graphql/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[MicroProfile OpenAPI for everyone]]></title>
        <link>https://www.phillip-kruger.com/posts/openapi-for-everyone/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/openapi-for-everyone/</guid>
        <pubDate>Tue, 18 Aug 2020 00:00:00 +0000</pubDate>
        <description><![CDATA[MicroProfile OpenAPI is primarily used for adding OpenAPI to JAX-RS Endpoints. In this blog post we will look at how the SmallRye Implementation extends this with some extra features, and support for more web frameworks, when used in Quarkus]]></description>
        <content:encoded><![CDATA[<p>MicroProfile OpenAPI is primarily used for adding OpenAPI to JAX-RS Endpoints. In this blog post we will look at how the SmallRye Implementation extends this with some extra features, and support for more web frameworks, when used in Quarkus</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/openapi-for-everyone/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Supersonic Subatomic GraphQL]]></title>
        <link>https://www.phillip-kruger.com/posts/supersonic-subatomic-graphql/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/supersonic-subatomic-graphql/</guid>
        <pubDate>Tue, 09 Jun 2020 00:00:00 +0000</pubDate>
        <description><![CDATA[MicroProfile GraphQL is now included in the just released version 1.5.0 of Quarkus]]></description>
        <content:encoded><![CDATA[<p>MicroProfile GraphQL is now included in the just released version 1.5.0 of Quarkus</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/supersonic-subatomic-graphql/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[MicroProfile GraphQL introduction]]></title>
        <link>https://www.phillip-kruger.com/posts/microprofile-graphql-introduction/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/microprofile-graphql-introduction/</guid>
        <pubDate>Tue, 25 Feb 2020 00:00:00 +0000</pubDate>
        <description><![CDATA[MicroProfile GraphQL has just released it’s first version (1.0). In this blog post we will explore some of the functionalities available in this release]]></description>
        <content:encoded><![CDATA[<p>MicroProfile GraphQL has just released it’s first version (1.0). In this blog post we will explore some of the functionalities available in this release</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/microprofile-graphql-introduction/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Proposed namespace for Jakarta EE]]></title>
        <link>https://www.phillip-kruger.com/posts/proposed-namespace-jakarta-ee/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/proposed-namespace-jakarta-ee/</guid>
        <pubDate>Mon, 23 Sep 2019 00:00:00 +0000</pubDate>
        <description><![CDATA[Disclaimer: This is my personal opinion and does not represent the view of my employer]]></description>
        <content:encoded><![CDATA[<p>Disclaimer: This is my personal opinion and does not represent the view of my employer</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/proposed-namespace-jakarta-ee/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[When using JAXB]]></title>
        <link>https://www.phillip-kruger.com/posts/when-using-jaxb/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/when-using-jaxb/</guid>
        <pubDate>Thu, 25 Apr 2019 00:00:00 +0000</pubDate>
        <description><![CDATA[Not many examples show this, but how you use JAXB in your application can make a huge difference in the performance (and memory usage)]]></description>
        <content:encoded><![CDATA[<p>Not many examples show this, but how you use JAXB in your application can make a huge difference in the performance (and memory usage)</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/when-using-jaxb/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Some bash functions for git]]></title>
        <link>https://www.phillip-kruger.com/posts/some-bash-functions-for-git/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/some-bash-functions-for-git/</guid>
        <pubDate>Tue, 22 Jan 2019 00:00:00 +0000</pubDate>
        <description><![CDATA[Here some git related functions in my .bachrc. Is mostly a backup for me, but it might also be useful for someone else]]></description>
        <content:encoded><![CDATA[<p>Here some git related functions in my .bachrc. Is mostly a backup for me, but it might also be useful for someone else</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/some-bash-functions-for-git/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Swagger UI on MicroProfile OpenAPI]]></title>
        <link>https://www.phillip-kruger.com/posts/microprofile-openapi-swaggerui/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/microprofile-openapi-swaggerui/</guid>
        <pubDate>Thu, 23 Aug 2018 00:00:00 +0000</pubDate>
        <description><![CDATA[MicroProfile OpenApi gives us a standardized way to describe our JAX-RS API’s using OpenApi 3. If you have used swagger-jaxrs and swagger-annotations before, this will feel very familiar to you as OpenApi is built on the Swagger base]]></description>
        <content:encoded><![CDATA[<p>MicroProfile OpenApi gives us a standardized way to describe our JAX-RS API’s using OpenApi 3. If you have used swagger-jaxrs and swagger-annotations before, this will feel very familiar to you as OpenApi is built on the Swagger base</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/microprofile-openapi-swaggerui/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Reusable MicroProfile Health probes]]></title>
        <link>https://www.phillip-kruger.com/posts/microprofile-health/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/microprofile-health/</guid>
        <pubDate>Mon, 20 Aug 2018 00:00:00 +0000</pubDate>
        <description><![CDATA[MicroProfile Health API is a very basic API to report the state of your service, based on one or more Health Probe. It’s very useful in scenarios where some Server or Cluster Controller need to decide if and when your instance should be restarted]]></description>
        <content:encoded><![CDATA[<p>MicroProfile Health API is a very basic API to report the state of your service, based on one or more Health Probe. It’s very useful in scenarios where some Server or Cluster Controller need to decide if and when your instance should be restarted</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/microprofile-health/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[A configurable JAX-RS ExceptionMapper with MicroProfile Config]]></title>
        <link>https://www.phillip-kruger.com/posts/jax-rs-config/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/jax-rs-config/</guid>
        <pubDate>Mon, 13 Aug 2018 00:00:00 +0000</pubDate>
        <description><![CDATA[When you create REST services with JAX-RS, you typically either return nothing (so HTTP 201/2/4 etc) or some data, potentially in JSON format (so HTTP 200), or some Exception / Error (so HTTP 4xx or 5xx)]]></description>
        <content:encoded><![CDATA[<p>When you create REST services with JAX-RS, you typically either return nothing (so HTTP 201/2/4 etc) or some data, potentially in JSON format (so HTTP 200), or some Exception / Error (so HTTP 4xx or 5xx)</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/jax-rs-config/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Your own MicroProfile Config source]]></title>
        <link>https://www.phillip-kruger.com/posts/microprofile-config/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/microprofile-config/</guid>
        <pubDate>Wed, 08 Aug 2018 00:00:00 +0000</pubDate>
        <description><![CDATA[MicroProfile Config, which is part of the MicroProfile Specification, is the standardization for Java Enterprise and Microservices configuration]]></description>
        <content:encoded><![CDATA[<p>MicroProfile Config, which is part of the MicroProfile Specification, is the standardization for Java Enterprise and Microservices configuration</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/microprofile-config/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[GraphQL on Wildfly swarm]]></title>
        <link>https://www.phillip-kruger.com/posts/graphql-on-wildfly-swarm/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/graphql-on-wildfly-swarm/</guid>
        <pubDate>Tue, 15 May 2018 00:00:00 +0000</pubDate>
        <description><![CDATA[“GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve]]></description>
        <content:encoded><![CDATA[<p>“GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/graphql-on-wildfly-swarm/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Hollowjars, Deployment scanner and why Wildfly swarm is cool]]></title>
        <link>https://www.phillip-kruger.com/posts/hollowjars-deploymentscanner-and-why-wildflyswarm-is-cool/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/hollowjars-deploymentscanner-and-why-wildflyswarm-is-cool/</guid>
        <pubDate>Sun, 24 Dec 2017 00:00:00 +0000</pubDate>
        <description><![CDATA[In a previous post I described how you can use OpenLiberty and maven to start the server, either as a standalone, or as part of the maven build, and how to create a fatjar package]]></description>
        <content:encoded><![CDATA[<p>In a previous post I described how you can use OpenLiberty and maven to start the server, either as a standalone, or as part of the maven build, and how to create a fatjar package</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/hollowjars-deploymentscanner-and-why-wildflyswarm-is-cool/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Some factory examples]]></title>
        <link>https://www.phillip-kruger.com/posts/some-factory-examples/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/some-factory-examples/</guid>
        <pubDate>Wed, 13 Dec 2017 00:00:00 +0000</pubDate>
        <description><![CDATA[Every now and then I find myself scratching through some of my old code to find that example “where I did that factory like thing”]]></description>
        <content:encoded><![CDATA[<p>Every now and then I find myself scratching through some of my old code to find that example “where I did that factory like thing”</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/some-factory-examples/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Fatjars, Thinwars and why OpenLiberty is cool]]></title>
        <link>https://www.phillip-kruger.com/posts/fatjars-thinwars-and-why-openliberty-is-cool/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/fatjars-thinwars-and-why-openliberty-is-cool/</guid>
        <pubDate>Sun, 12 Nov 2017 00:00:00 +0000</pubDate>
        <description><![CDATA[Fatjars]]></description>
        <content:encoded><![CDATA[<p>Fatjars</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/fatjars-thinwars-and-why-openliberty-is-cool/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[The Matrix]]></title>
        <link>https://www.phillip-kruger.com/posts/the-matrix/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/the-matrix/</guid>
        <pubDate>Thu, 05 Oct 2017 00:00:00 +0000</pubDate>
        <description><![CDATA[Java Community Keynote The last day of the conference started, as usual, with the Java Community Keynote. Some of the highlights:]]></description>
        <content:encoded><![CDATA[<p>Java Community Keynote The last day of the conference started, as usual, with the Java Community Keynote. Some of the highlights:</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/the-matrix/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Bask in positivity]]></title>
        <link>https://www.phillip-kruger.com/posts/bask-in-positivity/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/bask-in-positivity/</guid>
        <pubDate>Wed, 04 Oct 2017 00:00:00 +0000</pubDate>
        <description><![CDATA[Java EE: Heavyweight or Lightweight, Mythbusters]]></description>
        <content:encoded><![CDATA[<p>Java EE: Heavyweight or Lightweight, Mythbusters</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/bask-in-positivity/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Cultivate greatness]]></title>
        <link>https://www.phillip-kruger.com/posts/cultivate-greatness/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/cultivate-greatness/</guid>
        <pubDate>Tue, 03 Oct 2017 00:00:00 +0000</pubDate>
        <description><![CDATA[Demystifying Microservices for Java EE Developers]]></description>
        <content:encoded><![CDATA[<p>Demystifying Microservices for Java EE Developers</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/cultivate-greatness/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Creativity has no filter]]></title>
        <link>https://www.phillip-kruger.com/posts/creativity-has-no-filter/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/creativity-has-no-filter/</guid>
        <pubDate>Mon, 02 Oct 2017 00:00:00 +0000</pubDate>
        <description><![CDATA[Baking a Java EE 8 Micro Pi]]></description>
        <content:encoded><![CDATA[<p>Baking a Java EE 8 Micro Pi</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/creativity-has-no-filter/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Live for the code]]></title>
        <link>https://www.phillip-kruger.com/posts/live-for-the-code/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/live-for-the-code/</guid>
        <pubDate>Sun, 01 Oct 2017 00:00:00 +0000</pubDate>
        <description><![CDATA[Meet Apache Netbeans]]></description>
        <content:encoded><![CDATA[<p>Meet Apache Netbeans</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/live-for-the-code/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[The boundary of mankind]]></title>
        <link>https://www.phillip-kruger.com/posts/the-boundary-of-mankind/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/the-boundary-of-mankind/</guid>
        <pubDate>Mon, 18 Sep 2017 00:00:00 +0000</pubDate>
        <description><![CDATA[So it might not be the official definition of Singularity University, but in my head it’s a showcase of where we are as humans. The boundary of mankind. And it’s mind blowing!]]></description>
        <content:encoded><![CDATA[<p>So it might not be the official definition of Singularity University, but in my head it’s a showcase of where we are as humans. The boundary of mankind. And it’s mind blowing!</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/the-boundary-of-mankind/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Continuous Integration to maven central (for free)]]></title>
        <link>https://www.phillip-kruger.com/posts/continuous-integration-to-maven-central/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/continuous-integration-to-maven-central/</guid>
        <pubDate>Sat, 09 Sep 2017 00:00:00 +0000</pubDate>
        <description><![CDATA[If you, like me, have some small open source projects or libraries, that you want to release to maven central, and you do not want to host your own CI environment, then this blog post might help. I mostly wrote it for myself (to remember) but I am sure it]]></description>
        <content:encoded><![CDATA[<p>If you, like me, have some small open source projects or libraries, that you want to release to maven central, and you do not want to host your own CI environment, then this blog post might help. I mostly wrote it for myself (to remember) but I am sure it</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/continuous-integration-to-maven-central/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Apiee: an easy way to get Swagger on Java EE]]></title>
        <link>https://www.phillip-kruger.com/posts/apiee/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/apiee/</guid>
        <pubDate>Mon, 26 Jun 2017 00:00:00 +0000</pubDate>
        <description><![CDATA[Swagger is a very popular way to define and describe your REST Services. It’s also the base for the Open API Initiative, the standardization of REST API documentation. I think we can all agree that REST and Swagger will be part of our life for the foreseeable future]]></description>
        <content:encoded><![CDATA[<p>Swagger is a very popular way to define and describe your REST Services. It’s also the base for the Open API Initiative, the standardization of REST API documentation. I think we can all agree that REST and Swagger will be part of our life for the foreseeable future</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/apiee/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[WebSockets example and the birth of Stompee]]></title>
        <link>https://www.phillip-kruger.com/posts/stompee/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/stompee/</guid>
        <pubDate>Wed, 14 Jun 2017 00:00:00 +0000</pubDate>
        <description><![CDATA[A while back I decided to play a bit with WebSockets (JSR 356), but I wanted to do more than a “Hello World”, so Stompee was born]]></description>
        <content:encoded><![CDATA[<p>A while back I decided to play a bit with WebSockets (JSR 356), but I wanted to do more than a “Hello World”, so Stompee was born</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/stompee/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Your own Swagger UI on Liberty]]></title>
        <link>https://www.phillip-kruger.com/posts/your-own-swagger-ui-on-liberty/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/your-own-swagger-ui-on-liberty/</guid>
        <pubDate>Sat, 28 May 2016 00:00:00 +0000</pubDate>
        <description><![CDATA[IBM Websphere Liberty comes with great out of the box support for Swagger, including their own branded Swagger UI. You might, however, want to create your own branded UI. (If you are not using Liberty, check out Apiee for other options)]]></description>
        <content:encoded><![CDATA[<p>IBM Websphere Liberty comes with great out of the box support for Swagger, including their own branded Swagger UI. You might, however, want to create your own branded UI. (If you are not using Liberty, check out Apiee for other options)</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/your-own-swagger-ui-on-liberty/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Monkey methodology]]></title>
        <link>https://www.phillip-kruger.com/posts/monkey-methodology/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/monkey-methodology/</guid>
        <pubDate>Thu, 05 May 2016 00:00:00 +0000</pubDate>
        <description><![CDATA[The PM becomes a scrum master]]></description>
        <content:encoded><![CDATA[<p>The PM becomes a scrum master</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/monkey-methodology/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Big blue]]></title>
        <link>https://www.phillip-kruger.com/posts/big-blue/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/big-blue/</guid>
        <pubDate>Fri, 26 Feb 2016 00:00:00 +0000</pubDate>
        <description><![CDATA[Last (half) day of the conference]]></description>
        <content:encoded><![CDATA[<p>Last (half) day of the conference</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/big-blue/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Rocket man]]></title>
        <link>https://www.phillip-kruger.com/posts/rocket-man/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/rocket-man/</guid>
        <pubDate>Thu, 25 Feb 2016 00:00:00 +0000</pubDate>
        <description><![CDATA[The 4th day of the conference was a short one, as the Elton John concert started at 6, all the sessions ended at 5:30ish]]></description>
        <content:encoded><![CDATA[<p>The 4th day of the conference was a short one, as the Elton John concert started at 6, all the sessions ended at 5:30ish</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/rocket-man/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Accidental data]]></title>
        <link>https://www.phillip-kruger.com/posts/accidental-data/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/accidental-data/</guid>
        <pubDate>Wed, 24 Feb 2016 00:00:00 +0000</pubDate>
        <description><![CDATA[Cultures, Practices and Tools that Support a DevOps Approach: An Open Conversation This panel discussion made up of some industry experts shared some insights into creating a DevOps work environment]]></description>
        <content:encoded><![CDATA[<p>Cultures, Practices and Tools that Support a DevOps Approach: An Open Conversation This panel discussion made up of some industry experts shared some insights into creating a DevOps work environment</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/accidental-data/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[It's cold in the shade]]></title>
        <link>https://www.phillip-kruger.com/posts/it-cold-in-shade/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/it-cold-in-shade/</guid>
        <pubDate>Tue, 23 Feb 2016 00:00:00 +0000</pubDate>
        <description><![CDATA[For the morning of day two I spent most of my time in the Open Lab. This is a room with PC’s already setup to “play” with certain tools / technologies. You can help yourself to mini courses and there are people around to answers questions and assist]]></description>
        <content:encoded><![CDATA[<p>For the morning of day two I spent most of my time in the Open Lab. This is a room with PC’s already setup to “play” with certain tools / technologies. You can help yourself to mini courses and there are people around to answers questions and assist</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/it-cold-in-shade/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Open by design]]></title>
        <link>https://www.phillip-kruger.com/posts/open-by-design/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/open-by-design/</guid>
        <pubDate>Mon, 22 Feb 2016 00:00:00 +0000</pubDate>
        <description><![CDATA[Day 1 of IBM Interconnect 2016 kicked off with a bang. Back to back sessions from the Research Lab Team and ending with the Open Tech Summit]]></description>
        <content:encoded><![CDATA[<p>Day 1 of IBM Interconnect 2016 kicked off with a bang. Back to back sessions from the Research Lab Team and ending with the Open Tech Summit</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/open-by-design/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Angry Duke]]></title>
        <link>https://www.phillip-kruger.com/posts/angry-duke/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/angry-duke/</guid>
        <pubDate>Fri, 30 Oct 2015 00:00:00 +0000</pubDate>
        <description><![CDATA[Last day of the conference. Photos are from the Java Community Keynote]]></description>
        <content:encoded><![CDATA[<p>Last day of the conference. Photos are from the Java Community Keynote</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/angry-duke/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Candle in the wind]]></title>
        <link>https://www.phillip-kruger.com/posts/candle-in-wind/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/candle-in-wind/</guid>
        <pubDate>Thu, 29 Oct 2015 00:00:00 +0000</pubDate>
        <description><![CDATA[Some photos from the Oracle appreciation event. There was a guy there going on about some candle in the wind? That does not sound sustainable, but anyway…]]></description>
        <content:encoded><![CDATA[<p>Some photos from the Oracle appreciation event. There was a guy there going on about some candle in the wind? That does not sound sustainable, but anyway…</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/candle-in-wind/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Sleeping is optional]]></title>
        <link>https://www.phillip-kruger.com/posts/sleeping-is-optional/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/sleeping-is-optional/</guid>
        <pubDate>Wed, 28 Oct 2015 00:00:00 +0000</pubDate>
        <description><![CDATA[For the non technical readers, scroll to the pictures for some other interesting info]]></description>
        <content:encoded><![CDATA[<p>For the non technical readers, scroll to the pictures for some other interesting info</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/sleeping-is-optional/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Coffee included]]></title>
        <link>https://www.phillip-kruger.com/posts/coffee-included/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/coffee-included/</guid>
        <pubDate>Tue, 27 Oct 2015 00:00:00 +0000</pubDate>
        <description><![CDATA[Our day started with a free coffee from Duke’s Cafe:]]></description>
        <content:encoded><![CDATA[<p>Our day started with a free coffee from Duke’s Cafe:</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/coffee-included/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[More than 9 million developers]]></title>
        <link>https://www.phillip-kruger.com/posts/more-than-9-million-developers/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/more-than-9-million-developers/</guid>
        <pubDate>Mon, 26 Oct 2015 00:00:00 +0000</pubDate>
        <description><![CDATA[9 sessions and one party. The first day of the conference was absolutely great !]]></description>
        <content:encoded><![CDATA[<p>9 sessions and one party. The first day of the conference was absolutely great !</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/more-than-9-million-developers/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[29 hours later]]></title>
        <link>https://www.phillip-kruger.com/posts/29-hours-later/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/29-hours-later/</guid>
        <pubDate>Sun, 25 Oct 2015 00:00:00 +0000</pubDate>
        <description><![CDATA[Centurion -> JHB International Airport -> Dubai -> San Francisco international Airport -> Hotel]]></description>
        <content:encoded><![CDATA[<p>Centurion -> JHB International Airport -> Dubai -> San Francisco international Airport -> Hotel</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/29-hours-later/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
      <item>
        <title><![CDATA[Guerrilla programming]]></title>
        <link>https://www.phillip-kruger.com/posts/guerrilla-programming/</link>
        <guid isPermaLink="false">https://www.phillip-kruger.com/posts/guerrilla-programming/</guid>
        <pubDate>Tue, 28 Jul 2015 00:00:00 +0000</pubDate>
        <description><![CDATA[It’s been one year since I have re-joined the corporate IT industry, where I started my IT career. When you come back to a big corporate after 7 years in a small start-up, you look differently at a lot of things, and you see things that you did not notice]]></description>
        <content:encoded><![CDATA[<p>It’s been one year since I have re-joined the corporate IT industry, where I started my IT career. When you come back to a big corporate after 7 years in a small start-up, you look differently at a lot of things, and you see things that you did not notice</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="https://www.phillip-kruger.com/posts/guerrilla-programming/">Keep reading</a>.</strong></div><br /> <br />]]></content:encoded>
      </item>
  </channel>
</rss>

