# Sylvain Leroy — Senior Cloud Solution Architect (AWS & GCP) > Sylvain Leroy — Senior Cloud Solution Architect specializing in AWS & GCP migrations, application modernization and legacy transformation for banking and regulated industries. Cloud & Application Modernization Architect. I help software companies, banks and enterprise teams migrate, modernize and optimize complex platforms across AWS, GCP and cloud-native environments. Author: Sylvain Leroy — Cloud & Application Modernization Architect (AWS, GCP, cloud-native, legacy modernization, fractional CTO advisory). ## Key Pages - [Home](https://sylvainleroy.com/): Overview of services, experience and expertise. - [Articles](https://sylvainleroy.com/articles/): Technical articles on application modernization, cloud, Java and DevOps. ## Articles - [Zabbix vs Prometheus which is the best ?](https://sylvainleroy.com/2026/08/zabbix-vs-prometheus-which-is-the-best/): Zabbix vs Prometheus in 2026: architecture, data model, alerting, scaling and dashboards compared — plus which monitoring tool to choose and when. - [Right-Sizing a Local LLM to Your Laptop with llmfit](https://sylvainleroy.com/2026/08/right-sizing-local-llm-llmfit/): The PII half of my stack runs a local model — but which one fits 16 cores and 20 GiB? llmfit scores every model against your actual hardware so you stop guessing. Part 4 of the local-AI stack series. - [OpenRouter and the Case for Safe Models](https://sylvainleroy.com/2026/08/openrouter-model-routing-safe-models/): One API, many models, and provider pinning: why OpenRouter sits at the non-PII half of my local-AI stack, and how I draw the line that sensitive data never crosses. Part 3 of the local-AI stack series. - [LightRAG as a Personal Knowledge Base for AI Agents](https://sylvainleroy.com/2026/08/lightrag-personal-knowledge-base/): How I run LightRAG as a local semantic index over my personal documents, wired into AI agents via MCP — the architecture, the tuning, and the silent outage that taught me health checks lie. Part 2 of the local-AI stack series. - [Building a Private Local-AI Stack: Why and How](https://sylvainleroy.com/2026/08/private-local-ai-stack-overview/): How I built a private local-AI stack that automates real work — email triage, recall, drafting — while keeping sensitive data on my own hardware. Part 1: the use case and the sensitivity boundary that drives every choice. - [Basic Memory: Giving My AI Assistant a Memory That Lives in My Obsidian Vault](https://sylvainleroy.com/2026/08/basic-memory-persistent-ai-memory-obsidian/): basic-memory gives my AI assistant persistent memory as plain Markdown synced to my Obsidian vault — transparent, editable, and a real accuracy boost. Part 6 of the local-AI stack series. - [AionUi: A GUI That Wraps Your CLI AI Agents Instead of Replacing Them](https://sylvainleroy.com/2026/08/aionui-gui-for-cli-ai-agents/): AionUi wraps CLI AI agents like OpenCode and Claude Code — an honest review of the open-source GUI that respects the agent ecosystem instead of reinventing it. - [Measuring Modernization: Building a Portfolio Dashboard with Backstage](https://sylvainleroy.com/2026/07/measuring-modernization-building-a-portfolio-dashboard-with-backstage/): How to build a modernization portfolio dashboard using Backstage — replacing spreadsheets with a living, developer-owned catalog that tracks modernization progress, maps applications to business processes, and provides actionable pathway recommendations. - [Oracle to Aurora PostgreSQL: A Structured Assessment Playbook](https://sylvainleroy.com/2026/07/oracle-to-aurora-postgresql-a-structured-assessment-playbook/): A structured assessment playbook for migrating Oracle databases to Amazon Aurora PostgreSQL — covering discovery, feature mapping, complexity scoring, effort estimation, migration strategy, and the tooling that makes it tractable. - [Modernizing Legacy Spreadsheets into Cloud Applications with Amazon Q Developer](https://sylvainleroy.com/2026/07/modernizing-legacy-spreadsheets-into-cloud-applications-with-amazon-q-developer/): A step-by-step walkthrough of using Amazon Q Developer to modernize a complex Excel-based business calculator into a Python application with a Streamlit UI — including the exact prompts and iteration strategy that made it work. - [Micro-Frontends on AWS: The Security Review That Came Too Late](https://sylvainleroy.com/2026/07/micro-frontends-on-aws-the-security-review-that-came-too-late/): A field-notes look at securing a micro-frontend platform on AWS. A team built fast with a composition-first approach and kept improving the design — but nobody reviewed security until late. Here are the three gaps I keep seeing, and how to close them. - [AWS Application Migration Service for Windows: A Battle-Tested Checklist](https://sylvainleroy.com/2026/07/aws-application-migration-service-for-windows-a-battle-tested-checklist/): A step-by-step checklist for migrating Windows VMs to AWS using Application Migration Service (MGN) — covering account setup, on-premise preparation, agent installation, replication, testing, and cutover. - [RabbitMQ to Amazon MQ Migration: The Checklist Nobody Gives You](https://sylvainleroy.com/2026/07/rabbitmq-to-amazon-mq-migration-the-checklist-nobody-gives-you/): A battle-tested checklist for migrating from self-managed RabbitMQ to Amazon MQ — covering the gotchas around quorum queues, streams, plugins, authentication, networking, and migration strategy that the documentation buries. - [Medallion Architecture on BigQuery with dbt Core and Cloud Run](https://sylvainleroy.com/2026/07/medallion-architecture-on-bigquery-with-dbt-core-and-cloud-run/): A reference architecture for implementing the Medallion pattern (Bronze, Silver, Gold) on Google BigQuery with dbt Core running on Cloud Run, Azure Repos CI/CD, and Dataplex governance. Cross-cloud pragmatism at its finest. - [BigQuery to AWS: A Complete Migration Assessment Playbook](https://sylvainleroy.com/2026/07/bigquery-to-aws-a-complete-migration-assessment-playbook/): A structured playbook for assessing and migrating BigQuery workloads to AWS — covering discovery, target architecture selection (Redshift, Athena, Lakehouse), SQL conversion, cost positioning, common pitfalls, and a phased migration strategy. - [Modernizing a Legacy Catalog: From 500 GB Monolith to Cloud-Native Search](https://sylvainleroy.com/2026/07/modernizing-a-legacy-catalog-from-500-gb-monolith-to-cloud-native-search/): How to modernize a legacy enterprise catalog system — 500 GB of images in a PostgreSQL database, no CDN, no caching — into a cloud-native architecture with OpenSearch, CloudFront, GenAI-powered semantic search, and event-driven updates. - [What Is an AI Agent? A Field Definition and Five Common Patterns](https://sylvainleroy.com/2026/07/what-is-an-ai-agent-a-field-definition-and-five-common-patterns/): A practical definition of AI agents — what they are, how they differ from chatbots, and the five common architectural patterns (reasoning, RAG, tool-based, coding, voice, workflow) you'll encounter when building them. - [Event Storming for Complex Domains: A Practitioner's Field Guide](https://sylvainleroy.com/2026/07/event-storming-for-complex-domains-a-practitioners-field-guide/): A practitioner's guide to Event Storming — from Big Picture exploration to Software Design. How to run sessions that surface real complexity, align teams across silos, and produce bounded contexts you can actually build from. - [Application Modernization in the Age of AI: The Framework Hasn't Changed — the Speed Has](https://sylvainleroy.com/2026/07/application-modernization-in-the-age-of-ai-the-framework-hasnt-changed-the-speed-has/): AI is compressing application modernization from quarters into days — but only if you feed it the right context. A five-phase framework, tested on a real legacy PHP app that transformed in one hour and shipped working screens in six. - [Building a Modernization Index: How to Measure Cloud Transformation Progress](https://sylvainleroy.com/2026/06/building-a-modernization-index-how-to-measure-cloud-transformation-progress/): How to build a modernization index that quantifies your organization's cloud transformation progress — from defining scoring criteria and pathways to building dashboards that drive action. - [Technical Speaking: Common Messaging Mistakes and How to Avoid Them](https://sylvainleroy.com/2026/05/technical-speaking-common-messaging-mistakes-and-how-to-avoid-them/): Lessons from delivering dozens of technical talks — the most common messaging mistakes speakers make and practical techniques for handling Q&A, telling stories, and staying on message under pressure. - [From Excel to Production: Using AI Coding Assistants to Convert Spreadsheets into Python Applications](https://sylvainleroy.com/2026/04/from-excel-to-production-using-ai-coding-assistants-to-convert-spreadsheets-into-python-applications/): A real-world workflow for converting complex Excel workbooks (.xlsb) with inter-sheet formula dependencies into maintainable Python applications using AI coding assistants — from CSV extraction to Streamlit dashboards. - [Modernizing PowerBuilder Applications: Strategies for the Cloud Era](https://sylvainleroy.com/2026/03/modernizing-powerbuilder-applications-strategies-for-the-cloud-era/): PowerBuilder remains embedded in thousands of enterprise systems. This guide covers what PowerBuilder is, why it resists modernization, and practical strategies for moving these applications to modern cloud architectures. - [Monitoring Hybrid VPN Connectivity Between Azure and AWS](https://sylvainleroy.com/2026/02/monitoring-hybrid-vpn-connectivity-between-azure-and-aws/): A practitioner's guide to monitoring site-to-site VPN tunnels between Azure and AWS — using native tools, Prometheus/Blackbox Exporter, custom Python monitors, and CloudWatch/Azure Monitor for alerting. - [How to build an AI-powered diagnostic agent for industrial equipment](https://sylvainleroy.com/2026/01/how-to-build-an-ai-powered-diagnostic-agent-for-industrial-equipment/): How we built an AI diagnostic agent in 3 days that turns thousands of unstructured service reports into actionable root-cause analysis for industrial equipment technicians. - [Why RTO explodes when architecture complexity grows](https://sylvainleroy.com/2026/01/why-rto-explodes-when-architecture-complexity-grows/): Sylvain Leroy explains why Recovery Time Objective grows exponentially with architecture complexity and manual configuration through Chaos Engineering insights - [Migrating Firebase Authentication to Amazon Cognito with Amplify](https://sylvainleroy.com/2026/01/migrating-firebase-authentication-to-amazon-cognito-with-amplify/): A step-by-step field guide to migrating Firebase Authentication to Amazon Cognito User Pools with AWS Amplify JS — covering Google Sign-In federation, identity pools, and common pitfalls. - [Modernization Is Not Refactoring — And GenAI Doesn't Change That (Yet)](https://sylvainleroy.com/2025/12/modernization-is-not-refactoring-and-genai-doesnt-change-that-yet/): Why modernization is more than refactoring, and how GenAI assistants still struggle with architectural decisions despite their impressive code generation capabilities. - [Performance optimization for AWS Glue using Microsoft SQL Server Spark connector](https://sylvainleroy.com/2025/04/performance-optimization-for-aws-glue-using-microsoft-sql-server-spark-connector/): Learn how to optimize AWS Glue ETL jobs using the Microsoft SQL Server Spark connector for improved performance and authentication capabilities - [Formation Quarkus disponible](https://sylvainleroy.com/2024/06/formation-quarkus-disponible/): Une nouvelle formation Quarkus en ligne est disponible via le site byoskill.com - [Hibernate fail with Postgresql : Row comparison operators must be associated with btree operator families.](https://sylvainleroy.com/2021/06/hibernate-fail-with-postgresql-row-comparison-operators-must-be-associated-with-btree-operator-families./): Fix Hibernate PostgreSQL row comparison errors - Sylvain Leroy explains btree operator families and SQL compatibility solutions for @Embeddable - [IntelliJ IDEA Trick : how to detect and fix JPA / SQL defects using your IDE Inspection](https://sylvainleroy.com/2021/05/intellij-idea-trick-how-to-detect-and-fix-jpa-/-sql-defects-using-your-ide-inspection/): Sylvain Leroy shows how to detect JPA and SQL defects using IntelliJ IDEA inspections - Improve code quality and prevent database issues - [Bintray shutdown : your own cheap Maven repository with Google App Engine.](https://sylvainleroy.com/2021/05/bintray-shutdown-your-own-cheap-maven-repository-with-google-app-engine./): Build a cheap Maven repository alternative after Bintray shutdown - Sylvain Leroy explains Google App Engine setup and cloud storage solution - [7 Test frameworks to follow in 2021 for Java/Fullstack developers](https://sylvainleroy.com/2021/05/7-test-frameworks-to-follow-in-2021-for-java/fullstack-developers/): Discover 7 innovative testing frameworks for Java developers - Sylvain Leroy reviews RoboFramework, Testcafé, JQF, Playwright, and POJO generators - [Core DZone writer](https://sylvainleroy.com/2021/05/core-dzone-writer/): Sylvain Leroy announces Core DZone Writer status - Learn about technical writing opportunities and sharing Java expertise with global developers - [Quest for a CMS in 2018 : Sanity.io](https://sylvainleroy.com/2021/05/quest-for-a-cms-in-2018-sanity.io/): Sylvain Leroy reviews Sanity.io headless CMS - Explore architecture, features, installation, and compare with static generators for modern blogging - [Top 5 Skills Java Developers Should Learn In 2021 (on DZONE)](https://sylvainleroy.com/2021/05/top-5-skills-java-developers-should-learn-in-2021-on-dzone/): Master Java in 2021 with Sylvain Leroy's guide - Explore Java versions, language subtleties, TDD, Spring Boot microservices, and JVM polyglot skills - [Salaire en suisse : how to write a static website using Google Cloud and fancy technologies](https://sylvainleroy.com/2021/03/salaire-en-suisse-how-to-write-a-static-website-using-google-cloud-and-fancy-technologies/): Build a static website with Google Cloud, Vue.js, Nuxt.js, and Tailwind CSS - Sylvain Leroy shares architecture, REST API, and database choices - [How does Embold v2 radically improve the code analysis of your IT projects?](https://sylvainleroy.com/2021/03/how-does-embold-v2-radically-improve-the-code-analysis-of-your-it-projects/): Sylvain Leroy reviews Embold v2 code analysis platform - Discover multi-language scanning, easy onboarding, and anti-pattern detection for IT projects - [How to migrate an ERP and ERP Data Migration resources for 2021](https://sylvainleroy.com/2021/03/how-to-migrate-an-erp-and-erp-data-migration-resources-for-2021/): Sylvain Leroy's complete guide to ERP migration and data migration - Learn team building, strategy, best practices, and avoid costly failures - [A Simple Review of HTTP Benchmark/Loading Tools in 2021](https://sylvainleroy.com/2021/02/a-simple-review-of-http-benchmark/loading-tools-in-2021/): Sylvain Leroy reviews HTTP benchmark tools in 2021 - Compare Apache Bench, autocannon, cassowary, and more to find the best load testing solution - [ScaleUp360 Legacy IT 2020: What is a legacy application ?](https://sylvainleroy.com/2020/11/scaleup360-legacy-it-2020-what-is-a-legacy-application/): Sylvain Leroy defines legacy applications beyond age and technology - Learn what truly makes software legacy and why modernization matters - [My ScaleUp 360 Legacy IT Conference : Big bang or Iterative evolution](https://sylvainleroy.com/2020/11/my-scaleup-360-legacy-it-conference-big-bang-or-iterative-evolution/): Watch Sylvain Leroy's Legacy IT conference talk - Learn decision frameworks for software modernization, big bang vs iterative evolution strategies - [5 skills Java developers should learn in 2021](https://sylvainleroy.com/2020/11/5-skills-java-developers-should-learn-in-2021/): Sylvain Leroy reveals 5 essential Java skills for 2021 - Master JDK updates, TDD, Spring Boot microservices, code quality, and polyglot programming - [10 common mistakes made by Java junior software developer and.. how to avoid them](https://sylvainleroy.com/2020/11/10-common-mistakes-made-by-java-junior-software-developer-and..-how-to-avoid-them/): Sylvain Leroy reveals 10 common Java junior developer mistakes - Learn exception handling, OOP practices, naming, testing, and null management strategies - [5 Best practices to handle your exceptions in Java](https://sylvainleroy.com/2020/10/5-best-practices-to-handle-your-exceptions-in-java/): Master Java exception handling with Sylvain Leroy - Learn best practices for checked exceptions, functional exceptions, and proper error management - [[Sponsored] Free PHP, HTML, CSS, JavaScript IDE - CodeLobster IDE](https://sylvainleroy.com/2020/10/sponsored-free-php-html-css-javascript-ide-codelobster-ide/): Discover CodeLobster IDE reviewed by Sylvain Leroy - Free PHP, HTML, CSS, JavaScript editor with debugging, FTP, and framework support for web developers - [The 10 most frequent errors Junior Java developers do and how to avoid them](https://sylvainleroy.com/2020/10/the-10-most-frequent-errors-junior-java-developers-do-and-how-to-avoid-them/): Avoid common Java mistakes with Sylvain Leroy - Learn the 10 most frequent errors junior developers make and best practices to prevent them - [3 killing Java performance issues and how to detect them](https://sylvainleroy.com/2020/10/3-killing-java-performance-issues-and-how-to-detect-them/): Sylvain Leroy reveals critical Java performance problems - Learn to detect CPU, memory, and network issues using SonarQube and Embold code scanners - [Break the spaghetti code with these 5 useful metrics](https://sylvainleroy.com/2020/10/break-the-spaghetti-code-with-these-5-useful-metrics/): Sylvain Leroy reveals 5 essential metrics to detect spaghetti code - Learn cyclomatic complexity, code coverage, coupling, and maintainability measures - [Software development, and 2021 crisis. How to survive to the Burnout and Ageism.](https://sylvainleroy.com/2020/10/software-development-and-2021-crisis.-how-to-survive-to-the-burnout-and-ageism./): Sylvain Leroy addresses developer burnout and ageism in tech - Learn to recognize toxic environments, protect mental health, and survive career pressure - [Answer to the article CQRS Is an Anti-Pattern for DDD](https://sylvainleroy.com/2020/09/answer-to-the-article-cqrs-is-an-anti-pattern-for-ddd/): Sylvain Leroy analyzes CQRS and Domain-Driven Design - Learn the 4 maturity levels, benefits, drawbacks, and when to use Command Query Responsibility - [Gall's Law](https://sylvainleroy.com/2020/07/galls-law/): Sylvain Leroy explains Gall's Law for software development - Learn why complex systems must evolve from simple working systems, not designed from scratch - [Code generation and data generator : the best use cases](https://sylvainleroy.com/2020/07/code-generation-and-data-generator-the-best-use-cases/): Explore code generation and data generators with Sylvain Leroy - Learn automation use cases from refactoring tools to test generation and security testing - [PoniCode : My feedback and a mixed overall feeling about the tool.](https://sylvainleroy.com/2020/07/ponicode-my-feedback-and-a-mixed-overall-feeling-about-the-tool./): Sylvain Leroy reviews Ponicode AI test generation tool - In-depth analysis of automated JavaScript test generation, code coverage, and limitations - [FlexNG: Adobe Flex to Angular 8+ Code Transformation Tool](https://sylvainleroy.com/2020/06/flexng-adobe-flex-to-angular-8-code-transformation-tool/): Discover FlexNG tool for Adobe Flex to Angular 8+ migration - Sylvain Leroy presents automated code transformation and legacy modernization strategies - [[FrenchOnly] Réponse à JeSuisUnDev : Comment garder tes développeur(euse)s informatique ?](https://sylvainleroy.com/2020/04/frenchonly-r%C3%A9ponse-%C3%A0-jesuisundev-comment-garder-tes-d%C3%A9veloppeureuses-informatique/): Sylvain Leroy répond avec ironie à JeSuisUnDev sur les attentes des développeurs - Liberté technique, veille, salaire et sens du travail décryptés - [4 good and opensource ticketing software for your helpdesk to follow in 2020](https://sylvainleroy.com/2020/04/4-good-and-opensource-ticketing-software-for-your-helpdesk-to-follow-in-2020/): Sylvain Leroy reviews 4 open-source ticketing solutions for 2020 - Compare OTRS, Zammad, osTicket, and HESK features, pros/cons for helpdesk management - [How to send Telegram Notifications with Google Cloud Build (GCB)](https://sylvainleroy.com/2019/12/how-to-send-telegram-notifications-with-google-cloud-build-gcb/): Integrate Telegram notifications with Google Cloud Build - Sylvain Leroy shows how to create chatbots and Cloud Functions for build notifications - [Two of the best machine learning frameworks for Java Developers](https://sylvainleroy.com/2019/06/two-of-the-best-machine-learning-frameworks-for-java-developers/): Sylvain Leroy reviews Smile and DeepLearning4j frameworks - Learn machine learning and deep learning implementation in Java for production systems - [How to send notifications to slack with SonarQube](https://sylvainleroy.com/2019/02/how-to-send-notifications-to-slack-with-sonarqube/): Integrate Slack notifications with SonarQube - Sylvain Leroy reviews and maintains plugins for sending code quality alerts to your team's Slack channel - [Should you invest in a new SQA company? 3 facts](https://sylvainleroy.com/2019/02/should-you-invest-in-a-new-sqa-company-3-facts/): Sylvain Leroy analyzes SQA investment opportunities - Explore software quality tools market, AI disruption, and competitive advantages over open-source - [When your online bank access is failing](https://sylvainleroy.com/2019/02/when-your-online-bank-access-is-failing/): Sylvain Leroy exposes online banking security issues - See real-world Java stack trace exposing vulnerabilities in bank web applications - [Book Review : Java by comparison, how to improve your coding skills and produce quality code.](https://sylvainleroy.com/2019/02/book-review-java-by-comparison-how-to-improve-your-coding-skills-and-produce-quality-code./): Sylvain Leroy reviews 'Java by Comparison' - Discover practical coding exercises and clean code principles for Java developers at any skill level - [How to tune your JVM memory and track your GC Usage ?](https://sylvainleroy.com/2019/01/how-to-tune-your-jvm-memory-and-track-your-gc-usage/): Master JVM tuning and GC analysis with Sylvain Leroy - Learn garbage collector algorithms, memory optimization, and GCeasy log analyzer for Java performance - [Generating awesome slideshows using JS and Vue](https://sylvainleroy.com/2019/01/generating-awesome-slideshows-using-js-and-vue/): Sylvain Leroy compares Reveal.js and Eagle.js for slideshow generation - Learn to create programmatic videos and presentations with Vue.js frameworks - [Extending components, composition with Vue.js](https://sylvainleroy.com/2018/11/extending-components-composition-with-vue.js/): How to extend and compose Vue.js components using mixins and extends, with practical examples for reusing methods, props and data structures. - [Java In Production : some useful tools for profiling and diagnostic.](https://sylvainleroy.com/2018/09/java-in-production-some-useful-tools-for-profiling-and-diagnostic./): A subjective toolbox of useful tools for profiling and diagnosing Java applications in production, aimed at helping junior developers track down bugs. - [Writing custom Cobol Rules with SonarQube](https://sylvainleroy.com/2018/08/writing-custom-cobol-rules-with-sonarqube/): How to write custom COBOL rules for SonarQube, with the compiler concepts (AST, lexical and syntactic analysis) and caveats you need to know. - [SonarQube Scanner and Invalid SSL Certificates](https://sylvainleroy.com/2018/07/sonarqube-scanner-and-invalid-ssl-certificates/): How to fix the SonarQube Scanner PKIX 'unable to find valid certification path' error when your SonarQube server uses an invalid SSL certificate. - [Spring Boot and Liquidbase : how to change the default path and filename](https://sylvainleroy.com/2018/07/spring-boot-and-liquidbase-how-to-change-the-default-path-and-filename/): A quick tip on changing the default Liquibase changelog path and filename in a Spring Boot application via the spring.liquibase.changeLog property. - [Results of Cloud/Web-base installation](https://sylvainleroy.com/2018/06/results-of-cloud/web-base-installation/): Test results from deploying self-hosted cloud IDE solutions behind a reverse proxy with SSL — including why Theia and Codeenvy failed to run. - [To rewrite or not to rewrite a software](https://sylvainleroy.com/2018/06/to-rewrite-or-not-to-rewrite-a-software/): Should you rewrite a legacy system or migrate it progressively? The facts and trade-offs I use to decide between a full rewrite and incremental modernization. - [Which framework to generate source code ?](https://sylvainleroy.com/2018/06/which-framework-to-generate-source-code/): Comparing frameworks to generate Java source code — template engines versus AST and source-to-source tools like JavaPoet — with their strengths and drawbacks. - [Cleancode principle : the boy scout rule](https://sylvainleroy.com/2018/05/cleancode-principle-the-boy-scout-rule/): The Boy Scout Rule explained: one of the most valuable Clean Code principles for keeping a codebase healthy by always leaving it cleaner than you found it. - [Security : Several vulnerabilities for Pivotal may 2018](https://sylvainleroy.com/2018/05/security-several-vulnerabilities-for-pivotal-may-2018/): A roundup of the Pivotal Spring security vulnerabilities and fixes announced in May 2018, with CVE references for Spring Security, OAuth2 and more. - [Using a self-hosted Cloud IDE updated 2021, my TOP 3.](https://sylvainleroy.com/2018/05/using-a-self-hosted-cloud-ide-updated-2021-my-top-3./): My top 3 self-hosted cloud IDEs for coding anywhere without a laptop, plus a cheap self-hosted CI/CD setup using GitHub, Docker and Kubernetes. - [Cleancode infography](https://sylvainleroy.com/2018/05/cleancode-infography/): A shareable Clean Code infographic summarising the coding principles that matter most in a developer's daily work. - [Cleancode session - feedback](https://sylvainleroy.com/2018/04/cleancode-session-feedback/): Feedback from a Clean Code coaching session with a French IT company, sharing experience and tricks on code quality, testing and software architecture. - [Loop using lambdas and streams in Java 8 for lazy dude](https://sylvainleroy.com/2018/04/loop-using-lambdas-and-streams-in-java-8-for-lazy-dude/): Short, lazy ways to replace traditional for-loops with Java 8 lambdas and streams, with before-and-after code examples. - [REST Http Client : Feign vs Retrofit 2](https://sylvainleroy.com/2018/04/rest-http-client-feign-vs-retrofit-2/): A field comparison of Netflix Feign and Retrofit 2 for building Java REST HTTP clients, weighing features, error handling and documentation. - [New SonarQube ESLint Release 0.3.0](https://sylvainleroy.com/2018/04/new-sonarqube-eslint-release-0.3.0/): Release notes for version 0.3.0 of the SonarQube ESLint plugin: SonarQube 6.7 support, latest JavaScript and React rules, and an NPE fix. - [How to do a legacy software migration : a successful checklist](https://sylvainleroy.com/2018/03/how-to-do-a-legacy-software-migration-a-successful-checklist/): A practical checklist for a successful legacy software migration, covering organizational, process and technological changes to reduce risk. - [Software Quality Weekly Review March 2018](https://sylvainleroy.com/2018/03/software-quality-weekly-review-march-2018/): A weekly review of interesting software quality articles, covering architecture, code review, TDD, technical debt and Java tips. - [How to make a software developer happy ?](https://sylvainleroy.com/2018/03/how-to-make-a-software-developer-happy/): Reflections on what makes software developers happy at work — a developer's Maslow pyramid, top concerns, and advice for juniors, tech leads and HR. - [Using S3 libraries with Minio mock server](https://sylvainleroy.com/2018/02/using-s3-libraries-with-minio-mock-server/): A step-by-step Java example using S3 client libraries against a local Minio mock server running in Docker, so you can develop without an AWS account. - [Developing with S3 and Java : useful links](https://sylvainleroy.com/2018/02/developing-with-s3-and-java-useful-links/): A collection of useful links, Java S3 libraries and mock-server tools to speed up developing features against Amazon S3 web services. - [Dear CEO: the biggest threat to innovation is internal politics](https://sylvainleroy.com/2018/02/dear-ceo-the-biggest-threat-to-innovation-is-internal-politics/): A short shared note on innovation: why the biggest threat to innovation is often internal politics rather than external competition. - [Concurrency issues with Java software : useful links to troubleshoot](https://sylvainleroy.com/2018/02/concurrency-issues-with-java-software-useful-links-to-troubleshoot/): Useful links and hard-won lessons for troubleshooting Java concurrency issues with CompletableFuture, ForkJoinPool, threads and parallel streams. - [Java developer testing toolbox](https://sylvainleroy.com/2018/01/java-developer-testing-toolbox/): A curated Java testing toolbox: favourite frameworks and libraries for unit testing, mocking, BDD and more, at the heart of DevOps and software quality. - [Quest for a CMS in 2018 : KeystoneJS Feedback](https://sylvainleroy.com/2018/01/quest-for-a-cms-in-2018-keystonejs-feedback/): Hands-on feedback on KeystoneJS as a CMS in 2018, the learning curve of adapting existing blog data, and where the Node.js framework fell short. - [CompletableFuture and Java 8 Reactive](https://sylvainleroy.com/2018/01/completablefuture-and-java-8-reactive/): Feedback on using Java 8 CompletableFuture for reactive, asynchronous code, how it compares to JavaScript promises, and applying it in a Spring CQRS module. - [How to implement CQRS with Spring : new framework](https://sylvainleroy.com/2017/12/how-to-implement-cqrs-with-spring-new-framework/): Introducing spring-cqrs-arch, a small open-source CQRS framework for Spring and Java 8 used across several real-world projects. - [Writing an integration test with a mail server](https://sylvainleroy.com/2017/12/writing-an-integration-test-with-a-mail-server/): A practical example of writing JUnit integration tests against a mail server using the open-source fakesmtp-junit-runner library. - [TOP open-source dashboard solutions 2017](https://sylvainleroy.com/2017/12/top-open-source-dashboard-solutions-2017/): A survey of the top open-source dashboard solutions in 2017, comparing tools to visualise metrics and align teams around shared goals. - [Togaf and Enterprise architecture interesting links 1](https://sylvainleroy.com/2017/12/togaf-and-enterprise-architecture-interesting-links-1/): A curated shortlist of useful links and resources on TOGAF and enterprise architecture for architects and technology leaders. - [The disappointing quest for an Headless CMS in 2017](https://sylvainleroy.com/2017/12/the-disappointing-quest-for-an-headless-cms-in-2017/): Why the search for a capable headless CMS in 2017 fell short: evaluating alternatives to Hexo.js and the limitations of online editing and content workflows. - [Test and Data Generation for Java Unit tests](https://sylvainleroy.com/2017/12/test-and-data-generation-for-java-unit-tests/): Exploring automatic test and data generation for Java unit tests, starting with Randoop, to speed up test coverage and improve code quality. - [Stop/Remove All Docker containers](https://sylvainleroy.com/2017/12/stop/remove-all-docker-containers/): Handy Docker command-line one-liners to stop and remove all running containers at once, plus other everyday Docker housekeeping tips. - [SonarQube plugins for AngularJS and Javascript you may not know](https://sylvainleroy.com/2017/12/sonarqube-plugins-for-angularjs-and-javascript-you-may-not-know/): Two lesser-known SonarQube plugins for TypeScript, AngularJS 2 and JavaScript that extend static analysis beyond the official marketplace offering. - [SonarQube ESLint plugin : release 0.2.0](https://sylvainleroy.com/2017/12/sonarqube-eslint-plugin-release-0.2.0/): Release notes for version 0.2.0 of the SonarQube ESLint plugin, bringing updated JavaScript linting rules into your SonarQube analysis. - [SonarQube and ReactJS](https://sylvainleroy.com/2017/12/sonarqube-and-reactjs/): How to analyse ReactJS and JSX files with SonarQube, combining the JavaScript plugin with the Sonar ESLint plugin for richer code quality checks. - [Release of FakeSmtp-junit-runner](https://sylvainleroy.com/2017/12/release-of-fakesmtp-junit-runner/): Announcing fakesmtp-junit-runner, an open-source library that makes it easy to write JUnit integration tests against a fake SMTP mail server. - [New secret project](https://sylvainleroy.com/2017/12/new-secret-project/): A quick note on a new project built with the parboiled PEG parser generator for parsing and language tooling in Java. - [My weekly DZone''s digest #1](https://sylvainleroy.com/2017/12/my-weekly-dzones-digest-%231/): A weekly digest of hand-picked DZone articles on BDD testing, bad code, database connection pooling, Kotlin and enterprise architecture. - [Modularizing C/C+ Softwares](https://sylvainleroy.com/2017/12/modularizing-c/c-softwares/): A presentation on how to modularize C and C++ software, exploring the different techniques and trade-offs for breaking up monolithic native codebases. - [I have tried Vue.js and I love it](https://sylvainleroy.com/2017/12/i-have-tried-vue.js-and-i-love-it/): First impressions building a multi-page website with Vue.js: why the framework won me over compared with the alternatives I evaluated. - [How migrate from JBoss 5 to 7](https://sylvainleroy.com/2017/12/how-migrate-from-jboss-5-to-7/): Working notes on migrating Java web applications from JBoss AS 5 to JBoss 7 / WildFly, covering the key changes and pitfalls to expect. - [How I switched my blog from OVH to Google Container Engine](https://sylvainleroy.com/2017/12/how-i-switched-my-blog-from-ovh-to-google-container-engine/): A step-by-step account of migrating a blog from an OVH VM to Google Container Engine using Kubernetes, Docker and Nginx — for free. - [How Docker is disrupting Legacy IT Companies](https://sylvainleroy.com/2017/12/how-docker-is-disrupting-legacy-it-companies/): How Docker and containers disrupt legacy IT companies, blurring the silos between developers and operations and reshaping daily software delivery. - [Hexo plugin : hexo-generator-slideshare](https://sylvainleroy.com/2017/12/hexo-plugin-hexo-generator-slideshare/): A small Hexo plugin, hexo-generator-slideshare, that embeds SlideShare presentations in the fast static-site generator Hexo.js. - [Disruption in Software Quality Assessment, still relevant in 2021 ?](https://sylvainleroy.com/2017/12/disruption-in-software-quality-assessment-still-relevant-in-2021/): How machine learning, deep learning and cloud computing are set to disrupt the software quality assessment and ALM market, with predictions for quality tools. - [Digital Transformation Interesting Links #1](https://sylvainleroy.com/2017/12/digital-transformation-interesting-links-%231/): A curated digest of useful links and resources on digital transformation, gathering key articles and references for teams navigating technology change. - [Codacy : an easy-to use code quality review solution](https://sylvainleroy.com/2017/12/codacy-an-easy-to-use-code-quality-review-solution/): A hands-on review of Codacy, an automated code quality and review tool, with a feature comparison against SonarQube for teams tracking technical debt. - [Codacy : a great example of technological blog post](https://sylvainleroy.com/2017/12/codacy-a-great-example-of-technological-blog-post/): Impressions on Codacy, a static analysis tool, and how it compares to SonarQube — plus what makes it a strong example of technological content marketing. - [Five trending technologies for Digital Transformation](https://sylvainleroy.com/2017/12/five-trending-technologies-for-digital-transformation/): Five emerging technologies fueling digital transformation, summarising the trends and innovations enterprises should watch and adopt. - [Eleven contributing technologies to Digital Transformation](https://sylvainleroy.com/2017/12/eleven-contributing-technologies-to-digital-transformation/): Eleven contributing technologies driving digital transformation and Industry 4.0, from cloud and IoT to mobile, social and augmented reality. - [Away/async vs Promises](https://sylvainleroy.com/2017/12/away/async-vs-promises/): A look at JavaScript async/await versus Promises, comparing readability, error handling and control flow for asynchronous code in ES6 and Angular projects.