Left top figure Right top figure

Neotecnica

Industry: Engineering / Industrial Software
Location: Italy
4 Codebases fully audited — frontend, library, gallery, backend
13,000+ Code quality issues identified and triaged across all repos

About the client

Neotecnica is an Italian tech firm specializing in Digital Twin platforms for the comprehensive management of complex industrial and ICT infrastructures. Their core platform — is a Java EE/Spring backend application serving clients in asset-intensive industries, supported by a React-based frontend and a proprietary shared component library published as a private NPM package.

By mid-2025, the engineering team had accumulated meaningful technical debt: the codebase had grown without consistent quality controls, the Git workflow relied on direct pushes to main without reviews or security gates, and the infrastructure — running on a self-hosted Kubernetes cluster — lacked modern tooling for CI/CD, artifact management, and incident monitoring. There was also no formal process for catching security vulnerabilities before they reached production.

Neotecnica engaged WWG to conduct a comprehensive technical audit of all four repositories, restructure their development and deployment workflows, harden their infrastructure security posture, and assess the AFM backend’s readiness for cloud migration — all with the goal of reducing risk and establishing a scalable foundation for future product growth.

Challenge

The engagement combined four distinct but interconnected problem domains, each with its own complexity:
  • Technical Debt Across Four Heterogeneous Codebases. Neotecnica’s software stack spanned a React frontend application, a private React component library with a Storybook gallery, and a Java EE/Spring monolithic backend — each with its own dependency tree, linting configuration, and vulnerability surface. Conducting a meaningful audit across all four required coordinated tooling and the ability to interpret findings in the context of each codebase’s role in the overall system.
  • A Git Workflow Without Safety Nets. All Neotecnica repositories operated without branch protection. Feature branches — some long-lived enough to function as de facto beta versions — were merged directly without pull requests, code reviews, or CI checks. This meant unreviewed and untested code could reach production at any time, and rollbacks were operationally difficult due to the absence of consistent tagging or versioning conventions.
  • Infrastructure Without Modern CI/CD or Observability. The existing Kubernetes cluster was running on an outdated certificate configuration, lacked high-availability control-plane redundancy, and had no CI/CD orchestration beyond a rudimentary Jenkins build. There was no artifact repository for managing private NPM packages and Maven builds, no centralised alerting for cluster or application health, and no on-call routing for incidents.
  • A Monolithic Backend Approaching Architectural Limits. The AFM backend presented structural challenges that went beyond code quality. Tightly coupled frontend/backend layers, hardcoded credentials and configuration values, manual thread management, embedded SQL, and a general absence of modular service boundaries made the system difficult to test, maintain, and extend. A cloud migration was under consideration, but there was no clear readiness assessment or phased strategy to guide it.

Have some question?
Let’s meet and talk.

Solution

CIS benchmark results on server.png
Solution image

WWG delivered the engagement across four parallel workstreams, structured to produce both immediate risk reduction and a clear roadmap for longer-term modernisation.

Codebase Audit: Security, Dependencies, and Code Quality

WWG ran a complete audit across all four repositories using a consistent multi-tool methodology. Each codebase was assessed for:

  • Security vulnerabilities — npm audit and osv-scanner surfaced 19+ issues across the frontend and component library, including high-severity CVEs in core dependencies and a confirmed ReDoS vulnerability affecting three separate repositories

PagerDuty alerting in MSTeams.png
Solution image
  • Dependency health — npm-check and depcheck identified unused packages accumulating as dead weight and dozens of packages behind by one or more major versions
  • Code quality — ESLint surfaced approximately 9,000 issues in the React frontend and over 4,000 in Component library, primarily no-undef violations, unused variables, and @typescript-eslint/no-explicit-any usage
  • Java backend — SonarQube analysis of the codebase identified hardcoded credentials, catch-all exception blocks, manual SQL, commented-out code blocks, and large tightly-coupled classes as the primary maintainability risks.

Each audit was delivered as a structured report with a per-area severity classification and a prioritised remediation roadmap.

Git Workflow Audit and Branching Strategy Redesign

WWG conducted a full audit of Neotecnica’s Git workflow across all repositories, documenting the risks of the current approach — unprotected main branches, direct merges from long-lived feature branches, absence of PR-based code review, and no CI gate before production.

Rancher GUI for Kubernetes cluster management.png
Solution image

Two alternative branching strategies were evaluated in detail: GitHub Flow (optimised for frequent deployment cycles) and Trunk-Based Development (optimised for minimising merge conflicts via short-lived branches and feature flags). For the private React component library, the assessment specifically addressed the challenge of long-running beta branches, which don’t fit neatly into either standard model. A concrete implementation recommendation — including branch protection rules, PR templates, and CI integration checkpoints — was delivered alongside the audit findings.checkpoints — was delivered alongside the audit findings.

Cloud Migration Assessment and Standards Documentation

A technical assessment of the AFM backend was produced, documenting its current architectural limitations and proposing a phased migration strategy: short-term Dockerisation and cloud VM deployment (AWS EC2/ECS) with Oracle DB migration to RDS; long-term replatforming to Spring Boot microservices, PostgreSQL, and Kubernetes with full observability (Prometheus, Grafana, ELK).
To support the development team going forward, WWG produced two standards documents: Backend Coding Conventions and Modular Architecture Standards (covering Java naming conventions, layered architecture, Spring Security, testing targets, and SonarQube integration), and Professional Guidelines for Creating a React NPM Package (covering build configuration, tree-shaking, peer dependencies, and dual CJS/ESM output).
Kubernetes Infrastructure Modernisation

WWG restructured the Neotecnica Kubernetes clusters from the ground up for high availability and modern CI/CD support:

  • HA with 3 control-plane nodes and dedicated worker node groups based on their workloads.
  • Rancher installation and configuration as the cluster management UI, enabling workload visibility and operational control without the need of CLI knowledge.
  • Jenkins installation with Kubernetes-native agents — pipelines run with ephemeral pods, eliminating the need for persistent agents on VMs.
  • Nexus Artifact Repository deployed for hosting private NPM packages (replacing git submodules) and Maven build artifacts.
Security Hardening and Monitoring

WWG conducted CIS Benchmark assessments for servers running such supplementary services as the Keycloak identity server and the OpenVPN server, producing detailed results reports against the applicable security benchmarks. OpenVPN server was also set up for remote team access with per-user configuration files and PKI backup management.
A monitoring and alerting stack was configured using Prometheus, Loki and Grafana, PagerDuty (as the central incident hub) and Healthchecks.io (for job-based health monitoring), integrated with the team’s Microsoft Teams workspace. The setup included on-call scheduling, escalation policies, and per-user notification routing — replacing email-only alerting with real-time, role-aware incident management.

Technology Stack

npm audit + osv-scanner
Security vulnerability scanning across all JavaScript/TypeScript repositories — CVE identification and severity classification

SonarQube
Static analysis for the Java AFM backend — code smells, security issues, maintainability scoring

Rancher
Kubernetes management UI — workload visibility, node management, and operational control

Nexus Artifact Repository
Private artifact hosting for NPM packages and Maven builds, replacing git submodules

PagerDuty + Healthchecks.io
Incident management with MS Teams integration, on-call scheduling, and escalation policy configuration
ESLint + depcheck + npm-check
Code quality, unused dependency detection, and package version health across React and component library codebases

MicroK8s on VMware
Self-hosted Kubernetes cluster, restructured for HA with 3 control-plane nodes and worker node groups

Jenkins with Kubernetes agents
CI/CD pipeline orchestration with ephemeral pod agents; GitHub App authentication and Shared Library pattern with reusable templates

Keycloak + OpenVPN
Identity and access management; per-user VPN rules and PKI backup; CIS Benchmark hardening applied to both servers;

AWS (EC2, ECS, RDS)
Target cloud infrastructure proposed in the AFM migration roadmap for short- and long-term deployment phases

Key Technical Challenges

Coordinating a Multi-Repo Audit Without a Shared Toolchain

Each of the four codebases operated with a different configuration baseline — different ESLint rule sets, different package managers, different build systems. Standardising the audit methodology across all of them without modifying their existing configurations required careful tool selection and result interpretation. In particular, distinguishing ESLint issues that were configuration artifacts (e.g., rules flagging intentionally dynamic patterns) from genuine technical debt required code-level review alongside automated output.

Addressing the Long-Running Branch Problem in the Component Library

The  component library repository had developed a branching pattern where a feature branch had effectively become a long-running beta version branch. Neither GitHub Flow nor Trunk-Based Development handles this pattern cleanly out of the box — GitHub Flow discourages branches lasting more than a week, and Trunk-Based Development requires feature flags for unfinished work. WWG’s Git audit addressed this specifically, providing a hybrid recommendation that acknowledged the library’s versioning needs without forcing a workflow that would create friction for the team.

Jenkins Pipeline Architecture for Three Distinct Repository Types

Neotecnica’s three main repositories — a React application, a private NPM library, and a Java Maven backend — have meaningfully different CI/CD requirements. A React app requires a standardized workflow for quality checks and automated delivery. An NPM library needs automated versioning and secure artifact management for distribution. A Maven backend requires a complex build process, including containerization and deployment to a private registry. WWG designed example pipelines for all three types, using Jenkins Shared Libraries to extract reusable template logic — reducing duplication and ensuring the Neotecnica team had working references rather than abstract guidance.

Security Hardening Without Disrupting Live Services

Both the Keycloak server and the OpenVPN server were alive and in active use during the engagement. CIS Benchmark assessments and hardening required identifying which recommendations could be applied immediately and which required planned maintenance windows.

Challenge image
Challenge image

Results

  1. Full Technical Picture Across All Four Repositories
    Every codebase was audited with consistent tooling, producing structured reports with severity-classified findings and prioritised remediation roadmaps — giving the Neotecnica team actionable visibility into their security and quality debt for the first time.

  2. 19+ Security Vulnerabilities Documented with Fix Paths
    All critical and high-severity CVEs were identified, attributed to specific packages, and paired with concrete remediation steps — including version targets, migration alternatives, and CI enforcement recommendations to prevent regression.

  3. High-Availability Kubernetes Cluster Operational
    The MicroK8s cluster was restructured with a 3-node HA control plane, Rancher management, Jenkins with Kubernetes-native agents, and Nexus artifact hosting — replacing a fragile single-node setup with a production-ready delivery infrastructure.

  4. Real-Time Incident Monitoring with On-Call Routing
    PagerDuty and Healthchecks.io were configured and integrated with Microsoft Teams, giving the engineering team structured incident management with escalation policies, on-call scheduling, and per-responder notification routing.

Conclusion

The Neotecnica engagement was a broad-surface technical intervention — one where the challenge was not any single hard problem, but the cumulative effect of years of growth without formalised quality controls. Security vulnerabilities were present but untracked. Code quality issues were widespread but unmeasured. The Git workflow was functional but fragile. The infrastructure worked but lacked the tooling to make it reliable and observable.
WWG approached each workstream with the same methodology: assess the current state accurately, understand the business and operational context, and deliver recommendations and implementations that the team can actually act on.
That meant producing audit reports with remediation roadmaps, not just findings lists. It meant publishing working Jenkins pipeline examples, not just architecture diagrams. And it meant evaluating Git strategies against Neotecnica’s specific branching patterns, not just recommending a standard model and moving on.
The outcome is a codebase with full visibility into its risk surface, an infrastructure ready for modern CI/CD delivery, and a development team equipped with the standards and tooling to maintain quality as the platform continues to grow.
CEO picture
MOHAMED DERAMCHI,
CEO & Founder

Let's talk about it!

    AI & CREATIVITY
    📍 Varese, Elmec Informatica HQ
    🗓️ 17.04
    ⏰Evening event – Free admission (registration required)
    What does Pinocchio have to do with leadership in the age of AI? And how will AI transform the next 10 years of your business — and your team?
    A bold, unexpected, and deeply human journey into AI:
    Visions of how AI is reshaping creativity, business and society
    🔸Practical tools and stories to apply immediately
    🔸Use cases from design, marketing, and innovation
    🔸Not your typical AI talk — a creative trip into the tech future
    🔸Leadership lessons inspired by... Pinocchio (yes, really)
    🔸Finding the balance between innovation and reality
    🎤 Speakers: brilliant minds from strategy, innovation, and storytelling
    Join us