Skip to content
View Javier-Godon's full-sized avatar

Block or report Javier-Godon

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Javier-Godon/README.md

About Me ➡️

As someone passionate about programming since childhood, I love dedicating part of my free time to exploring new languages, architectures, and fields within software development. In my repositories, you will find projects in various programming languages, proof-of-concept implementations, and configurations for continuous delivery.

My Goals

I hope this can be a useful resource for working with and configuring projects in various programming languages or platform engineering tools. My repositories are intended to serve as a reference for anyone facing challenges while building with these technologies.

Additionally, collaboration is always welcome—whether through feedback, suggestions, or contributing new developments!

Technologies I Use

Platforms and Tools

Dagger Logo Crossplane ArgoCD GitHub Actions Dagger LogoSealed Secrets Dagger Logo Tekton Docker Kubernetes KCL Logo KCL Dagger Logo Dagger Dagger Logo Dagger

Programming Languages and Frameworks

Kafka LogoJava Spring Boot Python Go Elixir Phoenix LogoPhoenix

Infrastructure

PostrgreSQL Java Kafka LogoKafka Questdb LogoQuestdb Questdb LogoElasticsearch

How to use it 📘

There is a repository dedicated to deploying some of the services on Kubernetes: Cluster Continuous Delivery.

This repository demonstrates how to implement a CI/CD pipeline using Dagger, GitHub Actions, and ArgoCD, utilizing KCL as a configuration and policy language. It provides an example of how to integrate and combine all these technologies, making it easier to understand their use in a global context.

  • Dagger simplifies the design of pipelines, enabling execution with any tool (Jenkins, GitHub Actions, Tekton, etc.) without requiring modifications or adaptations. You can even run them locally—yes, you can test them on your local machine! A program written in your favorite language abstracts away the tooling concerns, avoiding migration issues.

  • KCL replaces Helm/Kustomize, offering dynamic configurations (KCL Documentation). For example, changing the tag of your image in the deployment repositories becomes straightforward and doesn't rely on any specific framework.

Although I use GitHub Actions for my CI/CD, the repository includes a fully functional example of a Tekton pipeline without Dagger. The proposed solution generates Kubernetes manifests directly in YAML, allowing you to use any GitOps tool without issues or additional adaptations. Forget plugins—you won't need to adjust the tool to work with KCL!

This repository also contains all the infrastructure necessary for various projects to run on Kubernetes. It is deployed using Crossplane, and you'll find the required manifests and CRDs for each deployment.

Proofs of Concept

This section highlights some of the proofs of concept I’ve developed to explore different architectures, frameworks, and use cases.

  • ERP System in Go
    A proof of concept demonstrating how to implement an ERP system using Go. This project explores different architectures and frameworks within the Go ecosystem.

  • Video Streaming with Apache Kafka
    This proof of concept tackles the challenge of streaming videos from multiple sources continuously, ensuring reliable delivery. The solution includes three Python-based components:

    • Video Server: Splits videos into chunks and sends them to Apache Kafka.
    • Consumer with MongoDB: Receives chunks and stores them as JSON documents in a MongoDB database, leveraging MongoDB's flexible design.
    • Video Collector: Reconstructs a specific video from stored chunks and generates the requested video.
  • Java/Spring Boot
    A proof of concept designed to experiment with different architectures and reactive programming styles. This project implements a simple Pokédex and includes instructions for running it locally. Additionally, it can be used to test the proposed CI/CD pipeline for a Java/Spring Boot project.

Observability in Kubernetes with OpenTelemetry

I have several repositories dedicated to observability in Kubernetes using OpenTelemetry:

Guides

Deploy Oracle Express on Ubuntu

This repository provides a comprehensive guide on deploying Oracle Express on Ubuntu 22.04. It includes step-by-step instructions and configurations to ensure a smooth setup process.

  • Repository: Oracle Express Ubuntu
  • Highlights:
    • Prepares your Ubuntu environment for Oracle Express.
    • Covers common troubleshooting tips.
    • Offers scripts for automating parts of the setup.

Whether you're exploring Oracle Express or need a reliable setup reference, this guide is designed to save time and effort.

KCL: Docker-compose Schemas

One of my learning practices with KCL has been developing schemas to validate and generate docker-compose manifests. You can use these schemas if you're deploying directly with Docker instead of Kubernetes and want to experiment with the language or use them as a foundation for generating and validating your docker-compose files.

Learning

Pinned Loading

  1. ddd-hexagonal-vertical-slice-cqrs-reactive-kubernetes ddd-hexagonal-vertical-slice-cqrs-reactive-kubernetes Public

    Java 1

  2. cluster-continuous-delivery cluster-continuous-delivery Public

    Platform Engineering

    AMPL 3

  3. erp-back erp-back Public

    Go

  4. multi-video-streaming-with-kafka multi-video-streaming-with-kafka Public

    Proof of concept for sending videos from different sources to ensure their delivery and persistence.

  5. observability-otel-elk observability-otel-elk Public

    Kubernetes observability using OpenTelemetry, QuestDB, and Elasticsearch. This project provides tracing, logging, and metrics collection without Prometheus, leveraging QuestDB as a time-series data…

    1

  6. reports-rendering-python-rust reports-rendering-python-rust Public

    Rendering using Python libraries like XlsxWriter with optimized performance using Rust

    Python 1