At AWS Day Prague, Petr Svoboda — CEO of CodeNOW — demonstrated how fast modern development can be. In just 20 minutes, he built two microservices using Amazon Q and the CodeNOW platform.
Many enterprises are still hesitant to adopt microservices architecture, often viewing it as too complex, expensive, or time-consuming. The reality is that while microservices bring clear benefits, they also introduce challenges:
Unlike monolithic applications, where tasks like authentication, debugging, and disaster recovery are solved once, microservices require these tasks to be repeated for every service. Without automation, these repetitive demands quickly overwhelm developers and eat into valuable time that could instead be used to deliver business-driven features.
This is why infrastructure abstraction and automation are critical. By reducing the operational burden, enterprises can unlock the full potential of microservices — achieving scalability, faster delivery cycles, and improved developer productivity.
When developing a new digital solution, most enterprises face a similar challenge: managing complexity across multiple channels. Consider an omnichannel application — it may include:
Even with all this complexity, the business logic remains the same. It’s omnichannel — meaning the same data and processes must be available consistently across every touchpoint.
At AWS Day Prague, Petr Svoboda, CEO of CodeNOW, demonstrated how to simplify this. In just 20 minutes, he showcased a three-tier application:
This live demo proved that with the right platform, such as CodeNOW, enterprises can rapidly build and deploy microservices-based applications, reduce operational overhead, and deliver consistent user experiences across every channel.
One of the biggest productivity killers in software development is unnecessary meetings. To overcome this, we follow a “share-nothing” approach — every developer works in a personal, cloud-based development environment. This setup allows full independence: you control the schema, test features in isolation, and stay productive whether you’re at home or working from a café in Thailand.
Our development environments typically leverage open-source stateful components, including:
This cloud-native approach provides flexibility, autonomy, and faster iteration.
However, higher environments like staging and production require a more reliable foundation. Relying solely on open-source tools can introduce scalability and support challenges. That’s why we recommend transitioning to managed cloud services such as:
These services offer built-in scalability, monitoring, and disaster recovery procedures supported by centralized teams — ensuring your applications remain resilient and production-ready.
For the demo, Petr used pre-recorded videos to illustrate creating a new application and environment, leveraging free components in Git repositories.
A successful software delivery pipeline depends on a clear and repeatable workflow. At CodeNOW, the process typically includes:
While bugs or underperformance can occur, modern observability tools — such as end-to-end code tracing — are essential for troubleshooting communication issues in microservices architectures. Once the application passes validation, it is promoted to staging, where it undergoes further observation, refinement, and readiness checks before production.
At AWS Day Prague, Petr Svoboda demonstrated how to set up a new development environment using a Kubernetes namespace on an available cluster. Each application component was initialized from a golden template, scaffolded to a Git repository, and configured with project-specific settings (for example, Maven group IDs for Java).
Following the 12-factor app principles, all connections to external services were tracked and dynamically replaced with the appropriate connection strings during deployment. This ensures smooth transitions between development, staging, and production environments, while maintaining consistency and scalability.
To ensure flexibility and independence, Petr set up a managed Kafka service restricted to the development environment, along with a personal PostgreSQL instance. This approach avoided dependency on corporate-wide upgrades and created the foundation for an application composed of two components, powered by CI/CD pipelines and a lightweight Python-based frontend.
The frontend was connected to the back-end-for-front-end (BFF) via deployment-specific endpoints. This design allowed independent development while maintaining clarity in deployment and connection management.
The process began with creating the application, environment, and two stateful components, all scaffolded from golden templates for Java and Python. Coding efforts focused on the frontend, where Petr — despite limited Python or frontend expertise — leveraged Amazon Q to generate the necessary code.
Key steps included:
Although the frontend wasn’t production-ready, it effectively supported debugging of the BFF and RBL components, accelerating development and testing.
The entire workflow revolved around a Git repository, where code changes triggered CI pipelines either manually or automatically — supporting multiple coding styles such as Git Flow.
CodeNOW further streamlined the process by integrating with enterprise tools like GitHub Actions. This ensured:
The next steps in the workflow involve creating a release by satisfying all dependencies — such as Kafka and database connections — and synchronizing the state to the target environment using Argo. This process can be automated via APIs or Infrastructure as Code (IaC) tools like Terraform, with flexibility to use GitOps or manual configurations for demonstration purposes.
Centralized platform teams remain critical to this process, but they must also prepare for potential challenges in coordination and governance. In Petr Svoboda’s demo, a new release configuration was created for the three application components, validated by Argo CD, and successfully deployed.
To ensure reliability, load testing was performed using Amazon Q to generate a K6 script targeting the BFF REST endpoint. The results were monitored through pre-integrated, open-source observability tools such as Grafana, while logs and live tails provided deeper insights into component performance.
Petr’s talk was filled with actionable lessons for building resilient and scalable software systems:
Watch the demo video here.