<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://sylhare.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://sylhare.github.io/" rel="alternate" type="text/html" /><updated>2026-03-30T16:17:44+00:00</updated><id>https://sylhare.github.io/feed.xml</id><title type="html">Sylhare’s blog</title><subtitle>Well, here it is</subtitle><entry><title type="html">An Introduction to CSP</title><link href="https://sylhare.github.io/2026/03/26/Csp-explained.html" rel="alternate" type="text/html" title="An Introduction to CSP" /><published>2026-03-26T00:00:00+00:00</published><updated>2026-03-26T00:00:00+00:00</updated><id>https://sylhare.github.io/2026/03/26/Csp-explained</id><author><name></name></author><category term="ctf" /><summary type="html"><![CDATA[What is CSP?]]></summary></entry><entry><title type="html">Sign commits with GPG key</title><link href="https://sylhare.github.io/2026/03/12/Gpg-with-git.html" rel="alternate" type="text/html" title="Sign commits with GPG key" /><published>2026-03-12T00:00:00+00:00</published><updated>2026-03-12T00:00:00+00:00</updated><id>https://sylhare.github.io/2026/03/12/Gpg-with-git</id><author><name></name></author><category term="git" /><summary type="html"><![CDATA[A GPG key (GPG as GNU Privacy Guard) is a digital key that represents your identity. It is usually used to sign data to prove it comes from you.]]></summary></entry><entry><title type="html">React localization made easy with Transifex</title><link href="https://sylhare.github.io/2026/02/25/Transifex-react.html" rel="alternate" type="text/html" title="React localization made easy with Transifex" /><published>2026-02-25T00:00:00+00:00</published><updated>2026-02-25T00:00:00+00:00</updated><id>https://sylhare.github.io/2026/02/25/Transifex-react</id><author><name></name></author><category term="react" /><summary type="html"><![CDATA[Transifex is a cloud-based localization platform that helps developers manage translations for their applications. It is like a centralized hub where you can manage all your app’s text strings, collaborate with translators, and sync translations back to your application. The aim is to make it easy to render in multiple languages.]]></summary></entry><entry><title type="html">How to succeed in System design interviews</title><link href="https://sylhare.github.io/2025/12/12/System-design-interview.html" rel="alternate" type="text/html" title="How to succeed in System design interviews" /><published>2025-12-12T00:00:00+00:00</published><updated>2025-12-12T00:00:00+00:00</updated><id>https://sylhare.github.io/2025/12/12/System-design-interview</id><author><name></name></author><category term="agile" /><summary type="html"><![CDATA[In this article we are going to talk about the system design interview, It’s a common interview format for software engineering roles, especially for mid to senior-level positions. Often the goal is to design a scalable system and there’s usually no coding involved.]]></summary></entry><entry><title type="html">Redpanda another kafka</title><link href="https://sylhare.github.io/2025/11/27/Redpanda-another-kafka.html" rel="alternate" type="text/html" title="Redpanda another kafka" /><published>2025-11-27T00:00:00+00:00</published><updated>2025-11-27T00:00:00+00:00</updated><id>https://sylhare.github.io/2025/11/27/Redpanda-another-kafka</id><author><name></name></author><category term="kafka" /><summary type="html"><![CDATA[What is Redpanda?]]></summary></entry><entry><title type="html">Retrospective, 10 year of blogging</title><link href="https://sylhare.github.io/2025/11/11/10y-retrospective.html" rel="alternate" type="text/html" title="Retrospective, 10 year of blogging" /><published>2025-11-11T00:00:00+00:00</published><updated>2025-11-11T00:00:00+00:00</updated><id>https://sylhare.github.io/2025/11/11/10y-retrospective</id><author><name></name></author><category term="misc" /><summary type="html"><![CDATA[This is the \(200th\) article on the blog! 🎉 But that’s not all, with articles dating as far as 2015, it means it has been 10years of articles 😵‍💫 check the stats page. (The blog was online on GitHub starting in 2017, but the blogging started earlier).]]></summary></entry><entry><title type="html">Multiply your branches in a Git Worktree 🌳</title><link href="https://sylhare.github.io/2025/10/24/Git-worktree.html" rel="alternate" type="text/html" title="Multiply your branches in a Git Worktree 🌳" /><published>2025-10-24T00:00:00+00:00</published><updated>2025-10-24T00:00:00+00:00</updated><id>https://sylhare.github.io/2025/10/24/Git-worktree</id><author><name></name></author><category term="git" /><summary type="html"><![CDATA[Git Worktree: Managing Multiple Working Directories]]></summary></entry><entry><title type="html">A database and usage overview</title><link href="https://sylhare.github.io/2025/10/14/Database-guide.html" rel="alternate" type="text/html" title="A database and usage overview" /><published>2025-10-14T00:00:00+00:00</published><updated>2025-10-14T00:00:00+00:00</updated><id>https://sylhare.github.io/2025/10/14/Database-guide</id><author><name></name></author><category term="database" /><summary type="html"><![CDATA[Here is a quick cheat sheet for database, when and why use them. There’s also some other section with common database questions and vocabulary. It’s none exhaustive, AI helped so use it as a starting point. (I didn’t have the opportunity to test all the use cases in production)]]></summary></entry><entry><title type="html">Handy Javascript Syntax</title><link href="https://sylhare.github.io/2025/09/29/Javascript-syntax.html" rel="alternate" type="text/html" title="Handy Javascript Syntax" /><published>2025-09-29T00:00:00+00:00</published><updated>2025-09-29T00:00:00+00:00</updated><id>https://sylhare.github.io/2025/09/29/Javascript-syntax</id><author><name></name></author><category term="js" /><summary type="html"><![CDATA[JavaScript Basics]]></summary></entry><entry><title type="html">Generating images with AI</title><link href="https://sylhare.github.io/2025/09/25/Generating-ai-images.html" rel="alternate" type="text/html" title="Generating images with AI" /><published>2025-09-25T00:00:00+00:00</published><updated>2025-09-25T00:00:00+00:00</updated><id>https://sylhare.github.io/2025/09/25/Generating-ai-images</id><author><name></name></author><category term="ai" /><summary type="html"><![CDATA[For my kanji project, I wanted to generate images for the kanji radicals to replace the placeholder.]]></summary></entry><entry><title type="html">Making the AI use custom tooling through MCP</title><link href="https://sylhare.github.io/2025/08/14/Intro-to-mcp.html" rel="alternate" type="text/html" title="Making the AI use custom tooling through MCP" /><published>2025-08-14T00:00:00+00:00</published><updated>2025-08-14T00:00:00+00:00</updated><id>https://sylhare.github.io/2025/08/14/Intro-to-mcp</id><author><name></name></author><category term="ai" /><summary type="html"><![CDATA[TL;DR]]></summary></entry><entry><title type="html">Dynamic programming bursting balloons</title><link href="https://sylhare.github.io/2025/07/29/bursting-balloons.html" rel="alternate" type="text/html" title="Dynamic programming bursting balloons" /><published>2025-07-29T00:00:00+00:00</published><updated>2025-07-29T00:00:00+00:00</updated><id>https://sylhare.github.io/2025/07/29/bursting-balloons</id><author><name></name></author><category term="math" /><summary type="html"><![CDATA[Let’s use an example of a dynamic programming problem to illustrate the concept. I didn’t choose an easy example, since it would fit more in the 2D Dynamic Programming category.]]></summary></entry><entry><title type="html">Data structure: Priority Queue</title><link href="https://sylhare.github.io/2025/06/27/Memo-priority-queue.html" rel="alternate" type="text/html" title="Data structure: Priority Queue" /><published>2025-06-27T00:00:00+00:00</published><updated>2025-06-27T00:00:00+00:00</updated><id>https://sylhare.github.io/2025/06/27/Memo-priority-queue</id><author><name></name></author><category term="math" /><summary type="html"><![CDATA[Priority Queue]]></summary></entry><entry><title type="html">Managing Vibe Coders in your dev team</title><link href="https://sylhare.github.io/2025/05/28/Introducing-vibe-coders.html" rel="alternate" type="text/html" title="Managing Vibe Coders in your dev team" /><published>2025-05-28T00:00:00+00:00</published><updated>2025-05-28T00:00:00+00:00</updated><id>https://sylhare.github.io/2025/05/28/Introducing-vibe-coders</id><author><name></name></author><category term="agile" /><summary type="html"><![CDATA[Vibe coding use to be a day in the life of a developer where one could implement a feature without leaving the IDE searching for answers on the web or stackoverflow.]]></summary></entry><entry><title type="html">Reviving Simple-Jekyll-Search: A Fork Story</title><link href="https://sylhare.github.io/2025/05/15/Fork-story.html" rel="alternate" type="text/html" title="Reviving Simple-Jekyll-Search: A Fork Story" /><published>2025-05-15T00:00:00+00:00</published><updated>2025-05-15T00:00:00+00:00</updated><id>https://sylhare.github.io/2025/05/15/Fork-story</id><author><name></name></author><category term="jekyll" /><summary type="html"><![CDATA[With Type-on-Strap, I was using the Simple-Jekyll-Search for search functionality. But in 2022, the maintainer, Christian Lei archived the project.]]></summary></entry><entry><title type="html">Use SQLC to generate Go code from SQL queries</title><link href="https://sylhare.github.io/2025/04/02/Sqlc-in-go.html" rel="alternate" type="text/html" title="Use SQLC to generate Go code from SQL queries" /><published>2025-04-02T00:00:00+00:00</published><updated>2025-04-02T00:00:00+00:00</updated><id>https://sylhare.github.io/2025/04/02/Sqlc-in-go</id><author><name></name></author><category term="go" /><summary type="html"><![CDATA[Introduction]]></summary></entry><entry><title type="html">Migrating to eslint v9 (typescript)</title><link href="https://sylhare.github.io/2025/03/21/Typescript-eslint-v9.html" rel="alternate" type="text/html" title="Migrating to eslint v9 (typescript)" /><published>2025-03-21T00:00:00+00:00</published><updated>2025-03-21T00:00:00+00:00</updated><id>https://sylhare.github.io/2025/03/21/Typescript-eslint-v9</id><author><name></name></author><category term="js" /><summary type="html"><![CDATA[Eslint had a major update which caused a lot of problems with the existing configuration I had in different projects. This led me to postpone the migration until things settled down a bit. Hoping that others had time to find fixes, workaround or examples to follow.]]></summary></entry><entry><title type="html">How to do object-oriented programming in Go</title><link href="https://sylhare.github.io/2025/03/07/Go-object-oriented.html" rel="alternate" type="text/html" title="How to do object-oriented programming in Go" /><published>2025-03-07T00:00:00+00:00</published><updated>2025-03-07T00:00:00+00:00</updated><id>https://sylhare.github.io/2025/03/07/Go-object-oriented</id><author><name></name></author><category term="go" /><summary type="html"><![CDATA[If you are familiar with object-oriented programming, you might have noticed that Go does not have classes. What you learned about object-oriented programming in Java, Typescript or other might not apply directly to Go.]]></summary></entry><entry><title type="html">Authentication with WorkOS</title><link href="https://sylhare.github.io/2025/02/17/Authentication-with-workos.html" rel="alternate" type="text/html" title="Authentication with WorkOS" /><published>2025-02-17T00:00:00+00:00</published><updated>2025-02-17T00:00:00+00:00</updated><id>https://sylhare.github.io/2025/02/17/Authentication-with-workos</id><author><name></name></author><category term="misc" /><summary type="html"><![CDATA[Since we're talking about a company here's the logo, as you might have seen it before 😉]]></summary></entry><entry><title type="html">Web app with Remix + Vite</title><link href="https://sylhare.github.io/2025/01/29/Remix.html" rel="alternate" type="text/html" title="Web app with Remix + Vite" /><published>2025-01-29T00:00:00+00:00</published><updated>2025-01-29T00:00:00+00:00</updated><id>https://sylhare.github.io/2025/01/29/Remix</id><author><name></name></author><category term="react" /><summary type="html"><![CDATA[Remix is a full-stack web framework for React. TIt is promoted as a framework to build modern web applications with server-side rendering and progressive enhancement. In this article, we’ll look at how to create a web app with Remix and Vite, which is supposed to be a fast build tool!]]></summary></entry><entry><title type="html">Introduction to Radix UI</title><link href="https://sylhare.github.io/2025/01/16/Radix.html" rel="alternate" type="text/html" title="Introduction to Radix UI" /><published>2025-01-16T00:00:00+00:00</published><updated>2025-01-16T00:00:00+00:00</updated><id>https://sylhare.github.io/2025/01/16/Radix</id><author><name></name></author><category term="react" /><summary type="html"><![CDATA[What is Radix UI?]]></summary></entry><entry><title type="html">Shape Up - Developer’s guide</title><link href="https://sylhare.github.io/2024/12/19/Shape-up-dev.html" rel="alternate" type="text/html" title="Shape Up - Developer’s guide" /><published>2024-12-19T00:00:00+00:00</published><updated>2024-12-19T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/12/19/Shape-up-dev</id><author><name></name></author><category term="agile" /><summary type="html"><![CDATA[In the previous article we talked about Shape UP but more in the product perspective. Meaning, that most of the action are either done by a product owner (who manages the product), rather than the actual developers.]]></summary></entry><entry><title type="html">Shape Up - Product oriented Delivery</title><link href="https://sylhare.github.io/2024/12/17/Shape-up-product.html" rel="alternate" type="text/html" title="Shape Up - Product oriented Delivery" /><published>2024-12-17T00:00:00+00:00</published><updated>2024-12-17T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/12/17/Shape-up-product</id><author><name></name></author><category term="agile" /><summary type="html"><![CDATA[Shape Up is a development methodology by Ryan Singer and used by the Basecamp company and probably enabled by its eponymous software for project management. Rian Singer was the VP of Product Strategy at Basecamp.]]></summary></entry><entry><title type="html">OAuth2 tokens (jwt) with keys (jwks)</title><link href="https://sylhare.github.io/2024/12/09/Authorize-jwks.html" rel="alternate" type="text/html" title="OAuth2 tokens (jwt) with keys (jwks)" /><published>2024-12-09T00:00:00+00:00</published><updated>2024-12-09T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/12/09/Authorize-jwks</id><author><name></name></author><category term="misc" /><summary type="html"><![CDATA[We talk about JSON Web Tokens (JWT) before to explain the OAuth flow. At the time the example was about a JWT that was signed using a symmetric key (HMAC - Hash-based Message Authentication Code), which can be used for both encoding and decoding the token (e.g. using HS256 algorithm).]]></summary></entry><entry><title type="html">Operating with AI using LLM</title><link href="https://sylhare.github.io/2024/12/03/Intro-llm.html" rel="alternate" type="text/html" title="Operating with AI using LLM" /><published>2024-12-03T00:00:00+00:00</published><updated>2024-12-03T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/12/03/Intro-llm</id><author><name></name></author><category term="misc" /><summary type="html"><![CDATA[Introduction]]></summary></entry><entry><title type="html">From code to Kubernetes with Kpack</title><link href="https://sylhare.github.io/2024/11/28/Kpack.html" rel="alternate" type="text/html" title="From code to Kubernetes with Kpack" /><published>2024-11-28T00:00:00+00:00</published><updated>2024-11-28T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/11/28/Kpack</id><author><name></name></author><category term="kubernetes" /><summary type="html"><![CDATA[Essentials]]></summary></entry><entry><title type="html">On the path to being a Go Developer</title><link href="https://sylhare.github.io/2024/11/23/Start-with-go.html" rel="alternate" type="text/html" title="On the path to being a Go Developer" /><published>2024-11-23T00:00:00+00:00</published><updated>2024-11-23T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/11/23/Start-with-go</id><author><name></name></author><category term="go" /><summary type="html"><![CDATA[Everything you need to know about Go to get started! Let’s have a look at what go has to offer, some of the quirks, the syntax and some tips. This is assuming you have installed go, but you didn’t look too much into the documentation. Talking about documentation, the tour is a great place to start for interactive examples.]]></summary></entry><entry><title type="html">An introduction to Buildpacks</title><link href="https://sylhare.github.io/2024/11/08/Buildpacks.html" rel="alternate" type="text/html" title="An introduction to Buildpacks" /><published>2024-11-08T00:00:00+00:00</published><updated>2024-11-08T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/11/08/Buildpacks</id><author><name></name></author><category term="kubernetes" /><summary type="html"><![CDATA[A bit of history]]></summary></entry><entry><title type="html">Tips for building React components</title><link href="https://sylhare.github.io/2024/11/01/React-frontend-tips.html" rel="alternate" type="text/html" title="Tips for building React components" /><published>2024-11-01T00:00:00+00:00</published><updated>2024-11-01T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/11/01/React-frontend-tips</id><author><name></name></author><category term="react" /><summary type="html"><![CDATA[Here are some tips that I missed in my previous React venture, I go over some React essentials, refactoring tips, testing tips illustrated with some code examples.]]></summary></entry><entry><title type="html">Using Nx to build a multilang monorepo</title><link href="https://sylhare.github.io/2024/10/21/Nx-multilang-monorepo.html" rel="alternate" type="text/html" title="Using Nx to build a multilang monorepo" /><published>2024-10-21T00:00:00+00:00</published><updated>2024-10-21T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/10/21/Nx-multilang-monorepo</id><author><name></name></author><category term="open source" /><summary type="html"><![CDATA[We have talked previously about creating a multi-package typesript project using only node’s workspace feature. This could be considered as a monorepo where you’d have an application with some libraries. However, if you want to scale up, this simple setup may not be enough.]]></summary></entry><entry><title type="html">Configuring React in Typescript</title><link href="https://sylhare.github.io/2024/10/17/React-ts-configuration.html" rel="alternate" type="text/html" title="Configuring React in Typescript" /><published>2024-10-17T00:00:00+00:00</published><updated>2024-10-17T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/10/17/React-ts-configuration</id><author><name></name></author><category term="react" /><summary type="html"><![CDATA[I have been doing some new projects in React with Typescript, and I wanted to dump here the configuration I had been using. Usually, that type of boilerplate can either be generated by the npx command or established via trial and error.]]></summary></entry><entry><title type="html">Node.js and multi-threading, is it possible?</title><link href="https://sylhare.github.io/2024/09/27/Node-js-multithreading.html" rel="alternate" type="text/html" title="Node.js and multi-threading, is it possible?" /><published>2024-09-27T00:00:00+00:00</published><updated>2024-09-27T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/09/27/Node-js-multithreading</id><author><name></name></author><category term="js" /><summary type="html"><![CDATA[Wait, is Node.js multi-threaded? A question you might be asking yourself. 🤓 Le’s have an in-depth look at how Node.js works, then dive into how to run multiple tasks concurrently in Node.js.]]></summary></entry><entry><title type="html">Use Kubernetes Horizontal Pod Autoscaler (HPA)</title><link href="https://sylhare.github.io/2024/09/18/Use-kubernetes-hpa.html" rel="alternate" type="text/html" title="Use Kubernetes Horizontal Pod Autoscaler (HPA)" /><published>2024-09-18T00:00:00+00:00</published><updated>2024-09-18T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/09/18/Use-kubernetes-hpa</id><author><name></name></author><category term="kubernetes" /><summary type="html"><![CDATA[To increase the stability of your Kubernetes cluster, you can use horizontal auto-scaling. This means to automatically increase the number of deployed pods for an application based on the load it receives. This can be done dynamically without any downtime using the Horizontal Pod Autoscaler (HPA) feature in Kubernetes.]]></summary></entry><entry><title type="html">Let’s get financial with a Start-up</title><link href="https://sylhare.github.io/2024/08/26/Start-up-finance.html" rel="alternate" type="text/html" title="Let’s get financial with a Start-up" /><published>2024-08-26T00:00:00+00:00</published><updated>2024-08-26T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/08/26/Start-up-finance</id><author><name></name></author><category term="misc" /><summary type="html"><![CDATA[Congratulations! 🎉 You’ve joined a startup, and they greeted you with a sign-on bonus and a hefty number of options. Amidst all the hype of joining the unicorn 🦄 of your dream, you start realising that the financial lingo goes far above your head.]]></summary></entry><entry><title type="html">Introducing Innersource at work!</title><link href="https://sylhare.github.io/2024/08/15/Innersource.html" rel="alternate" type="text/html" title="Introducing Innersource at work!" /><published>2024-08-15T00:00:00+00:00</published><updated>2024-08-15T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/08/15/Innersource</id><author><name></name></author><category term="agile" /><summary type="html"><![CDATA[What’s Innersource? It can be summed up as applying the principles of open source within a company. This is usually a common practice in small tech companies, since during the start-up phase there are usually fewer people, and founding members are likely to wear multiple dev hats.]]></summary></entry><entry><title type="html">Manage your Kubernetes from the shell with K9s!</title><link href="https://sylhare.github.io/2024/08/05/K9s.html" rel="alternate" type="text/html" title="Manage your Kubernetes from the shell with K9s!" /><published>2024-08-05T00:00:00+00:00</published><updated>2024-08-05T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/08/05/K9s</id><author><name></name></author><category term="kubernetes" /><summary type="html"><![CDATA[If you have worked with Kubernetes, you may have had to work with kubectl to run commands in your cluster. While it’s a powerful tool, I often go back to the documentation for commands that I use less often while troubleshooting.]]></summary></entry><entry><title type="html">Advanced SQL with NestJS and TypeORM</title><link href="https://sylhare.github.io/2024/07/22/Advanced-sql-nestjs.html" rel="alternate" type="text/html" title="Advanced SQL with NestJS and TypeORM" /><published>2024-07-22T00:00:00+00:00</published><updated>2024-07-22T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/07/22/Advanced-sql-nestjs</id><author><name></name></author><category term="js" /><summary type="html"><![CDATA[If you are new to NestJS or TypeORM, I’ve got you covered with some articles to get started with a Nest backend in Typescript and how to connect it to an SQL database.]]></summary></entry><entry><title type="html">Create your own Python decorator</title><link href="https://sylhare.github.io/2024/07/08/Python-decorator.html" rel="alternate" type="text/html" title="Create your own Python decorator" /><published>2024-07-08T00:00:00+00:00</published><updated>2024-07-08T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/07/08/Python-decorator</id><author><name></name></author><category term="python" /><summary type="html"><![CDATA[Python decorators were introduced in v2.4 (in 2003! 💾) and allow you to enhance the behaviour of a function or method. When introduced in PEP 318, the goal was to make to extend the @classmethod syntactic support to other functions.]]></summary></entry><entry><title type="html">Create forms in React 📋</title><link href="https://sylhare.github.io/2024/06/28/React-forms.html" rel="alternate" type="text/html" title="Create forms in React 📋" /><published>2024-06-28T00:00:00+00:00</published><updated>2024-06-28T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/06/28/React-forms</id><author><name></name></author><category term="react" /><summary type="html"><![CDATA[Let’s talk about forms in React. What do you need and how to create them? Forms are a basic way to collect multiple data input from users, they are convenient because you can get all the data at once and submit it.]]></summary></entry><entry><title type="html">Building a layout with Chakra UI</title><link href="https://sylhare.github.io/2024/06/18/Chakra-ui-components.html" rel="alternate" type="text/html" title="Building a layout with Chakra UI" /><published>2024-06-18T00:00:00+00:00</published><updated>2024-06-18T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/06/18/Chakra-ui-components</id><author><name></name></author><category term="react" /><summary type="html"><![CDATA[Chakra UI provides a range of flexible and composable components that can be used to build complex layouts. Alignment and how to position components in a webpage are frequent questions, so I wanted to paste out here some examples to get started.]]></summary></entry><entry><title type="html">Connect a NestJS application to an SQL ⛁ database</title><link href="https://sylhare.github.io/2024/06/07/Use-typeorm-with-sql.html" rel="alternate" type="text/html" title="Connect a NestJS application to an SQL ⛁ database" /><published>2024-06-07T00:00:00+00:00</published><updated>2024-06-07T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/06/07/Use-typeorm-with-sql</id><author><name></name></author><category term="js" /><summary type="html"><![CDATA[To connect a NestJS application to an SQL database, we are going to use typeorm which has a built-in integration with NestJS.]]></summary></entry><entry><title type="html">Learn Typescript generics kung fu</title><link href="https://sylhare.github.io/2024/05/24/Generics-in-typescript.html" rel="alternate" type="text/html" title="Learn Typescript generics kung fu" /><published>2024-05-24T00:00:00+00:00</published><updated>2024-05-24T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/05/24/Generics-in-typescript</id><author><name></name></author><category term="js" /><summary type="html"><![CDATA[Generics exist in typescript, and they behave similarly to other typed languages like Java, Kotlin or C#. And they can become useful as generics do when creating function dealing with multiple types.]]></summary></entry><entry><title type="html">NestJS and GraphQL validation decorators</title><link href="https://sylhare.github.io/2024/05/08/Nestjs-and-graphql-validation.html" rel="alternate" type="text/html" title="NestJS and GraphQL validation decorators" /><published>2024-05-08T00:00:00+00:00</published><updated>2024-05-08T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/05/08/Nestjs-and-graphql-validation</id><author><name></name></author><category term="js" /><summary type="html"><![CDATA[In this article, we are going to delve more in the NestJS ecosystem with its built-in validation mechanism. It integrates with the class-validator and class-transformer packages from typestack. And even without NestJS, they bring a lot of value to any typescript project.]]></summary></entry><entry><title type="html">Everything to know about software architecture</title><link href="https://sylhare.github.io/2024/04/26/Software-architecture.html" rel="alternate" type="text/html" title="Everything to know about software architecture" /><published>2024-04-26T00:00:00+00:00</published><updated>2024-04-26T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/04/26/Software-architecture</id><author><name></name></author><category term="agile" /><summary type="html"><![CDATA[Let’s talk about software architecture, how you come about them, how to make architecture decisions and what influences them, and finally, how to categorize the different type of architecture.]]></summary></entry><entry><title type="html">Tackle GraphQL vulnerabilities 🕵️‍♂️💻</title><link href="https://sylhare.github.io/2024/04/19/Graphql-vulnerabilities.html" rel="alternate" type="text/html" title="Tackle GraphQL vulnerabilities 🕵️‍♂️💻" /><published>2024-04-19T00:00:00+00:00</published><updated>2024-04-19T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/04/19/Graphql-vulnerabilities</id><author><name></name></author><category term="ctf" /><summary type="html"><![CDATA[You can test your GraphQL API with graphql-cop which is a command-line tool to check for common security vulnerabilities.]]></summary></entry><entry><title type="html">Google Cloud Kubernetes Engine</title><link href="https://sylhare.github.io/2024/04/08/Google-cloud-cli.html" rel="alternate" type="text/html" title="Google Cloud Kubernetes Engine" /><published>2024-04-08T00:00:00+00:00</published><updated>2024-04-08T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/04/08/Google-cloud-cli</id><author><name></name></author><category term="kubernetes" /><summary type="html"><![CDATA[Google Cloud, also sometimes referred to as the GCP (Google Cloud Platform) is a cloud computing platform that offers hosting, storage, and a wide range of services to deploy and manage applications (Kubernetes, VMs, Serverless functions …).]]></summary></entry><entry><title type="html">Load test with k6</title><link href="https://sylhare.github.io/2024/03/26/Load-test-with-k6.html" rel="alternate" type="text/html" title="Load test with k6" /><published>2024-03-26T00:00:00+00:00</published><updated>2024-03-26T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/03/26/Load-test-with-k6</id><author><name></name></author><category term="open source" /><summary type="html"><![CDATA[K6 made by Grafana is an open-source load testing tool which offers the ability to write scenarios to simulate traffic on your system. The test scenarios can be written in Typescript (when transpiled into javascript) and offer a wide range of features (spike, smoke, stress, soak tests) to analyse the system under load.]]></summary></entry><entry><title type="html">Create a NestJS GraphQL API</title><link href="https://sylhare.github.io/2024/03/18/Nestjs-with-graphql.html" rel="alternate" type="text/html" title="Create a NestJS GraphQL API" /><published>2024-03-18T00:00:00+00:00</published><updated>2024-03-18T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/03/18/Nestjs-with-graphql</id><author><name></name></author><category term="graphql" /><summary type="html"><![CDATA[We have talked previously about NestJS to create a REST backend API, but its purpose is greater, and it can also be used with GraphQL. If you are new to GraphQL, check out this article for some of the basics.]]></summary></entry><entry><title type="html">Explore NestJS REST API creation</title><link href="https://sylhare.github.io/2024/03/08/Nestjs-typescript-backend.html" rel="alternate" type="text/html" title="Explore NestJS REST API creation" /><published>2024-03-08T00:00:00+00:00</published><updated>2024-03-08T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/03/08/Nestjs-typescript-backend</id><author><name></name></author><category term="js" /><summary type="html"><![CDATA[NestJS is a framework to build server-side application with Node.js and using typescript by default.]]></summary></entry><entry><title type="html">Conda and python project management</title><link href="https://sylhare.github.io/2024/02/29/Conda-and-python-project-management.html" rel="alternate" type="text/html" title="Conda and python project management" /><published>2024-02-29T00:00:00+00:00</published><updated>2024-02-29T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/02/29/Conda-and-python-project-management</id><author><name></name></author><category term="python" /><summary type="html"><![CDATA[Anaconda is a python package distributor that comes with all the most used datascience packages included in its full installation. But not all python developers are datascientists, and for the remaining which do not need all the datascience packages, there is miniconda, which is a light version of Anaconda with only the minimum required packages.]]></summary></entry><entry><title type="html">How to break down a Monolith</title><link href="https://sylhare.github.io/2024/02/14/Monolith-extraction.html" rel="alternate" type="text/html" title="How to break down a Monolith" /><published>2024-02-14T00:00:00+00:00</published><updated>2024-02-14T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/02/14/Monolith-extraction</id><author><name></name></author><category term="misc" /><summary type="html"><![CDATA[A Story about a Monolith …]]></summary></entry><entry><title type="html">Federation and generated GraphQL types</title><link href="https://sylhare.github.io/2024/01/24/Generate-federated-graphql-types.html" rel="alternate" type="text/html" title="Federation and generated GraphQL types" /><published>2024-01-24T00:00:00+00:00</published><updated>2024-01-24T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/01/24/Generate-federated-graphql-types</id><author><name></name></author><category term="graphql" /><summary type="html"><![CDATA[We talked before in this blog about federation, and its advanced possibilities. We also covered the topic of generating the typescript objects from your GraphQL files using codegen. So in this article we will be talking about both, generating typescript objects from Federated GraphQL!]]></summary></entry><entry><title type="html">How to use KafkaStreams in Kotlin</title><link href="https://sylhare.github.io/2024/01/16/How-to-use-kafkastreams.html" rel="alternate" type="text/html" title="How to use KafkaStreams in Kotlin" /><published>2024-01-16T00:00:00+00:00</published><updated>2024-01-16T00:00:00+00:00</updated><id>https://sylhare.github.io/2024/01/16/How-to-use-kafkastreams</id><author><name></name></author><category term="kotlin" /><summary type="html"><![CDATA[Kafka Streams is a layer built on top of Apache Kafka’s producers and consumers that simplifies the process of handling Kafka data. It abstracts the creation of consumers and producers. Kafka Streams uses a declarative syntax to process records, dealing with it is similar to handling an array or a map.]]></summary></entry><entry><title type="html">How to reduce your cloud cost as a developer</title><link href="https://sylhare.github.io/2023/12/26/Cloud-cost.html" rel="alternate" type="text/html" title="How to reduce your cloud cost as a developer" /><published>2023-12-26T00:00:00+00:00</published><updated>2023-12-26T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/12/26/Cloud-cost</id><author><name></name></author><category term="kubernetes" /><summary type="html"><![CDATA[Keep an eye on costs! 💰]]></summary></entry><entry><title type="html">Working with Jekyll collections</title><link href="https://sylhare.github.io/2023/12/18/Jekyll-collections.html" rel="alternate" type="text/html" title="Working with Jekyll collections" /><published>2023-12-18T00:00:00+00:00</published><updated>2023-12-18T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/12/18/Jekyll-collections</id><author><name></name></author><category term="jekyll" /><summary type="html"><![CDATA[Let’s look at Jekyll’s collections, which are a way to group information together within the static website generator Jekyll. We’ve talked about jekyll before, so if you are new to it, check out this article or browse through the related jekyll articles.]]></summary></entry><entry><title type="html">Add font awesome to your jekyll blog</title><link href="https://sylhare.github.io/2023/12/05/Font-awesome-jekyll.html" rel="alternate" type="text/html" title="Add font awesome to your jekyll blog" /><published>2023-12-05T00:00:00+00:00</published><updated>2023-12-05T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/12/05/Font-awesome-jekyll</id><author><name></name></author><category term="jekyll" /><summary type="html"><![CDATA[Font Awesome]]></summary></entry><entry><title type="html">Jenkins random tips</title><link href="https://sylhare.github.io/2023/11/24/Jenkins-tips.html" rel="alternate" type="text/html" title="Jenkins random tips" /><published>2023-11-24T00:00:00+00:00</published><updated>2023-11-24T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/11/24/Jenkins-tips</id><author><name></name></author><category term="tips" /><summary type="html"><![CDATA[We talked about Jenkins once before in this blog, with some neat groovy snippets to get to know the functionalities to build your own pipeline.]]></summary></entry><entry><title type="html">DevOps Mentality, pushing it to 100% uptime</title><link href="https://sylhare.github.io/2023/11/14/Devops-mentality.html" rel="alternate" type="text/html" title="DevOps Mentality, pushing it to 100% uptime" /><published>2023-11-14T00:00:00+00:00</published><updated>2023-11-14T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/11/14/Devops-mentality</id><author><name></name></author><category term="agile" /><summary type="html"><![CDATA[This article is about DevOps Mentality and what it means in a software development context where you provide a software-based service to a customer.]]></summary></entry><entry><title type="html">Troubleshoot Debezium MySQL connector errors</title><link href="https://sylhare.github.io/2023/11/07/Debezium-configuration.html" rel="alternate" type="text/html" title="Troubleshoot Debezium MySQL connector errors" /><published>2023-11-07T00:00:00+00:00</published><updated>2023-11-07T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/11/07/Debezium-configuration</id><author><name></name></author><category term="database" /><summary type="html"><![CDATA[We’ve already talked about debezium in a previous article, so you can check those if you would like to set up a connector or learn more about it. I am assuming that if you are reading this, you might be well aware of debezium, and you should already have your feet deep in it looking at how to make it work! 🥲]]></summary></entry><entry><title type="html">How to Kafka with an Avro schema registry</title><link href="https://sylhare.github.io/2023/10/20/Avro-schema-registry.html" rel="alternate" type="text/html" title="How to Kafka with an Avro schema registry" /><published>2023-10-20T00:00:00+00:00</published><updated>2023-10-20T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/10/20/Avro-schema-registry</id><author><name></name></author><category term="kotlin" /><summary type="html"><![CDATA[We already talked about Avro, the syntax for the schema, how to build a consumer and a producer and kafka in general. So let’s mix it all together for an article about implementing kafka producer and consumer using Avro in Kotlin.]]></summary></entry><entry><title type="html">Discovering Grazie Pro, the new AI helper by JetBrains</title><link href="https://sylhare.github.io/2023/10/06/Grazie.html" rel="alternate" type="text/html" title="Discovering Grazie Pro, the new AI helper by JetBrains" /><published>2023-10-06T00:00:00+00:00</published><updated>2023-10-06T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/10/06/Grazie</id><author><name></name></author><category term="ai" /><summary type="html"><![CDATA[edit: The technology has evolved exponentially and may not reflect current state of the tool.]]></summary></entry><entry><title type="html">Unit tests with JUnit 5</title><link href="https://sylhare.github.io/2023/09/22/Unit-tests-with-junit-5.html" rel="alternate" type="text/html" title="Unit tests with JUnit 5" /><published>2023-09-22T00:00:00+00:00</published><updated>2023-09-22T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/09/22/Unit-tests-with-junit-5</id><author><name></name></author><category term="java" /><summary type="html"><![CDATA[Junit is a popular open-source testing framework on the JVM. So it can work on java and kotlin projects. It’s the default testing framework for multiple other frameworks and tools. So let’s review some interesting features of Junit 5 which is to this date, the latest major version.]]></summary></entry><entry><title type="html">Kafka with springboot in Kotlin</title><link href="https://sylhare.github.io/2023/09/15/Kafka-with-springboot-in-kotlin.html" rel="alternate" type="text/html" title="Kafka with springboot in Kotlin" /><published>2023-09-15T00:00:00+00:00</published><updated>2023-09-15T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/09/15/Kafka-with-springboot-in-kotlin</id><author><name></name></author><category term="kotlin" /><summary type="html"><![CDATA[In this article, we will have an overview of how to set up kafka in a spring boot project in kotlin. From the configuration to the consumer and producer, and how to make sure it works properly with an integration test.]]></summary></entry><entry><title type="html">Build your CI/CD pipeline with GitHub actions</title><link href="https://sylhare.github.io/2023/09/07/Github-actions-kung-fu.html" rel="alternate" type="text/html" title="Build your CI/CD pipeline with GitHub actions" /><published>2023-09-07T00:00:00+00:00</published><updated>2023-09-07T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/09/07/Github-actions-kung-fu</id><author><name></name></author><category term="open source" /><summary type="html"><![CDATA[GitHub action it is the GitHub CI/CD solution available out of the box to run custom integration and deployment pipelines called workflows. It is configurable directly from the repository.]]></summary></entry><entry><title type="html">TDD with Python’s unittest</title><link href="https://sylhare.github.io/2023/08/16/Python-unit-testing.html" rel="alternate" type="text/html" title="TDD with Python’s unittest" /><published>2023-08-16T00:00:00+00:00</published><updated>2023-08-16T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/08/16/Python-unit-testing</id><author><name></name></author><category term="python" /><summary type="html"><![CDATA[Let’s get started with Python 3 from scratch using the built-in libraries to lean Test Driven Development (TDD). Assuming you have python 3 installed on your machine, you can check the version with python --version or python3 --version. Feel free to follow this article to set up your python environment: Manage your python environments.]]></summary></entry><entry><title type="html">Improving your coding process?</title><link href="https://sylhare.github.io/2023/08/11/Improving-your-commits.html" rel="alternate" type="text/html" title="Improving your coding process?" /><published>2023-08-11T00:00:00+00:00</published><updated>2023-08-11T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/08/11/Improving-your-commits</id><author><name></name></author><category term="agile" /><summary type="html"><![CDATA[Improving the coding process is not only what you code, which patterns you use, but also how you code. But before considering improvement, you may want to use some metrics to measure your progression or assess the situation.]]></summary></entry><entry><title type="html">Gradle Cheat sheet</title><link href="https://sylhare.github.io/2023/07/27/Gradle.html" rel="alternate" type="text/html" title="Gradle Cheat sheet" /><published>2023-07-27T00:00:00+00:00</published><updated>2023-07-27T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/07/27/Gradle</id><author><name></name></author><category term="open source" /><summary type="html"><![CDATA[Gradle]]></summary></entry><entry><title type="html">Testing GitHub copilot 🤖</title><link href="https://sylhare.github.io/2023/07/11/Github-copilot-trial.html" rel="alternate" type="text/html" title="Testing GitHub copilot 🤖" /><published>2023-07-11T00:00:00+00:00</published><updated>2023-07-11T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/07/11/Github-copilot-trial</id><author><name></name></author><category term="ai" /><summary type="html"><![CDATA[edit: The technology has evolved exponentially and may not reflect current state of the tool.]]></summary></entry><entry><title type="html">Create a multi package 📦 project in Typescript</title><link href="https://sylhare.github.io/2023/06/22/Typescript-monorepo.html" rel="alternate" type="text/html" title="Create a multi package 📦 project in Typescript" /><published>2023-06-22T00:00:00+00:00</published><updated>2023-06-22T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/06/22/Typescript-monorepo</id><author><name></name></author><category term="js" /><summary type="html"><![CDATA[Multi package project, that’s how I would call a project with multiple packages in it. For example, you have your main application and then extract some functionalities as dependant libraries from it. To make it more manageable (dealing with tests, vulnerabilities, and updates), or to make them available to other applications.]]></summary></entry><entry><title type="html">Typescript and express JWT validation</title><link href="https://sylhare.github.io/2023/06/16/Typescript-and-express-jwt-validation.html" rel="alternate" type="text/html" title="Typescript and express JWT validation" /><published>2023-06-16T00:00:00+00:00</published><updated>2023-06-16T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/06/16/Typescript-and-express-jwt-validation</id><author><name></name></author><category term="js" /><summary type="html"><![CDATA[We’ve been talking about authorization with Jason Web Token (JWT) previously so if you are not familiar with the whole OAuth protocol, and the authorization process, it would be nice to get a refresher first.]]></summary></entry><entry><title type="html">Using hibernate and its annotations</title><link href="https://sylhare.github.io/2023/06/08/Hibernate-and-annotations.html" rel="alternate" type="text/html" title="Using hibernate and its annotations" /><published>2023-06-08T00:00:00+00:00</published><updated>2023-06-08T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/06/08/Hibernate-and-annotations</id><author><name></name></author><category term="java" /><summary type="html"><![CDATA[Hibernate is an open-source java framework for ORM (Object relational mapping). It helps simplify the translation between object-oriented programming languages and relational database tables. There are two common patterns to do that: Active record pattern which holds both the persisted data and implements an interface to save, update, delete the data. Data mapper pattern which adds a layer between the data and the logic, each table is represented by a data model and there’s an entity manager that will take care of the operation on the database. With an ORM, you could switch database technology at any time without changing your code. So in this article we are going to go over Hibernate (which is using the data mapper pattern) and the most common annotations.]]></summary></entry><entry><title type="html">How to refine engineering work</title><link href="https://sylhare.github.io/2023/05/19/How-to-refine-engineering-work.html" rel="alternate" type="text/html" title="How to refine engineering work" /><published>2023-05-19T00:00:00+00:00</published><updated>2023-05-19T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/05/19/How-to-refine-engineering-work</id><author><name></name></author><category term="agile" /><summary type="html"><![CDATA[Refine is the new way of saying “groom” to prepare a task for work. Be it from a business standpoint where the product owner equivalent details the need of the customer to the actual story or task coming from it.]]></summary></entry><entry><title type="html">Create your own eslint configuration</title><link href="https://sylhare.github.io/2023/05/05/Eslint-configuration.html" rel="alternate" type="text/html" title="Create your own eslint configuration" /><published>2023-05-05T00:00:00+00:00</published><updated>2023-05-05T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/05/05/Eslint-configuration</id><author><name></name></author><category term="js" /><summary type="html"><![CDATA[You may be using typescript, and on top of that have an eslint configuration. That’s perfect! 🤩 But now let’s say you start having multiple project under the same organisation, wouldn’t want them all of them to follow the same linting rules? Of course! Cohesion right! 🙆]]></summary></entry><entry><title type="html">Datadog 🐕 how to get more out of your logs</title><link href="https://sylhare.github.io/2023/04/27/Datadog-log-pipeline.html" rel="alternate" type="text/html" title="Datadog 🐕 how to get more out of your logs" /><published>2023-04-27T00:00:00+00:00</published><updated>2023-04-27T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/04/27/Datadog-log-pipeline</id><author><name></name></author><category term="misc" /><summary type="html"><![CDATA[Datadog is an observability service that basically ingest your services (apps, databases, servers) logs and display them in fancy dashboard where you can set metrics, alerting, custom diagrams, and more.]]></summary></entry><entry><title type="html">Generating GraphQL models in typescript</title><link href="https://sylhare.github.io/2023/04/04/Generating-graphql-models-typescript.html" rel="alternate" type="text/html" title="Generating GraphQL models in typescript" /><published>2023-04-04T00:00:00+00:00</published><updated>2023-04-04T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/04/04/Generating-graphql-models-typescript</id><author><name></name></author><category term="graphql" /><summary type="html"><![CDATA[Having used GraphQL with typescript and Apollo, you might have found yourself creating data objects for the GraphQL resolvers. That becomes quickly tedious and even possibly chaotic if those data representations are used for more than what they’re supposed to be.]]></summary></entry><entry><title type="html">GitHub flavoured tips</title><link href="https://sylhare.github.io/2023/03/27/GitHub-tips.html" rel="alternate" type="text/html" title="GitHub flavoured tips" /><published>2023-03-27T00:00:00+00:00</published><updated>2023-03-27T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/03/27/GitHub-tips</id><author><name></name></author><category term="tips" /><summary type="html"><![CDATA[Here is a curated list of tips that should work on GitHub, some might be more obscure than others or could be interesting to note. If you are looking more tips and secrets, the GitHub blog have some articles available about tricks and hacks. There’s a finite amount of them, so you may see some of them there too.]]></summary></entry><entry><title type="html">Type inference 🏭 industry standards</title><link href="https://sylhare.github.io/2023/03/17/Type-inference.html" rel="alternate" type="text/html" title="Type inference 🏭 industry standards" /><published>2023-03-17T00:00:00+00:00</published><updated>2023-03-17T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/03/17/Type-inference</id><author><name></name></author><category term="tips" /><summary type="html"><![CDATA[Type inference is the ability of a language to deduce the type of expressions at compile time. Languages such as Kotlin or Typescript do support it by default while other like Java are looking into it.]]></summary></entry><entry><title type="html">Liquibase to manage your Database</title><link href="https://sylhare.github.io/2023/03/10/Liquibase-to-manage-your-db.html" rel="alternate" type="text/html" title="Liquibase to manage your Database" /><published>2023-03-10T00:00:00+00:00</published><updated>2023-03-10T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/03/10/Liquibase-to-manage-your-db</id><author><name></name></author><category term="open source" /><summary type="html"><![CDATA[Liquibase is an open source database schema change management solution. What it means is that it will allow you to save as code in a version control tools changes to your database. It has capabilities to run and test database schema changes, to reduce errors, and you can deploy and roll back your database to any specific version.]]></summary></entry><entry><title type="html">Advanced GraphQL federation with Apollo</title><link href="https://sylhare.github.io/2023/03/03/Advanced-federated-graphql-apollo.html" rel="alternate" type="text/html" title="Advanced GraphQL federation with Apollo" /><published>2023-03-03T00:00:00+00:00</published><updated>2023-03-03T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/03/03/Advanced-federated-graphql-apollo</id><author><name></name></author><category term="graphql" /><summary type="html"><![CDATA[If you are unfamiliar with GraphQL or Federation, click on the links and there should be enough content to get you up to speed for this topic. In this context we’re working in a multi-services complex GraphQL environment with multiple subgraph using some new directives from Apollo Federation v2 (it’s backward compatible with v1 but the syntax has been updated). Let’s have a recap on how to integrate with it.]]></summary></entry><entry><title type="html">Mongo queries via MongoDB Compass</title><link href="https://sylhare.github.io/2023/02/24/Mongo-compass.html" rel="alternate" type="text/html" title="Mongo queries via MongoDB Compass" /><published>2023-02-24T00:00:00+00:00</published><updated>2023-02-24T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/02/24/Mongo-compass</id><author><name></name></author><category term="database" /><summary type="html"><![CDATA[Let’s talk about MongoDB queries, but first if you are not familiar with this Database, you can check this article which should answer your question What is Mongo DB ⁉️]]></summary></entry><entry><title type="html">Kubernetes deployment ⎈ with Helm charts</title><link href="https://sylhare.github.io/2023/02/17/Kubernetes-deployment-with-helm-charts.html" rel="alternate" type="text/html" title="Kubernetes deployment ⎈ with Helm charts" /><published>2023-02-17T00:00:00+00:00</published><updated>2023-02-17T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/02/17/Kubernetes-deployment-with-helm-charts</id><author><name></name></author><category term="kubernetes" /><summary type="html"><![CDATA[For this article you must have some knowledge of Kubernetes, as Helm self describes as a “package” manager for it. To help you along the way find more about Kubernetes in this article with the basics or via those hands-on examples.]]></summary></entry><entry><title type="html">XSS Cross site scripting explained</title><link href="https://sylhare.github.io/2023/02/10/Xss-cross-site-scripting-explained.html" rel="alternate" type="text/html" title="XSS Cross site scripting explained" /><published>2023-02-10T00:00:00+00:00</published><updated>2023-02-10T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/02/10/Xss-cross-site-scripting-explained</id><author><name></name></author><category term="ctf" /><summary type="html"><![CDATA[XSS or cross-site scripting is defined by the OWASP foundation as an attack of the injection category where malicious scripts are injected into “trusted” websites.]]></summary></entry><entry><title type="html">ArgoCD deployment and roll out</title><link href="https://sylhare.github.io/2023/02/03/Argocd-deployment-and-roll-out.html" rel="alternate" type="text/html" title="ArgoCD deployment and roll out" /><published>2023-02-03T00:00:00+00:00</published><updated>2023-02-03T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/02/03/Argocd-deployment-and-roll-out</id><author><name></name></author><category term="open source" /><summary type="html"><![CDATA[ArgoCD describes itself as a declarative tool for Kubernetes, the CD refers to the continuous delivery. It falls inside our devops tool-belt. 🛠]]></summary></entry><entry><title type="html">Decrypting developer’s acronyms</title><link href="https://sylhare.github.io/2023/01/23/Code-acronyms.html" rel="alternate" type="text/html" title="Decrypting developer’s acronyms" /><published>2023-01-23T00:00:00+00:00</published><updated>2023-01-23T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/01/23/Code-acronyms</id><author><name></name></author><category term="tips" /><summary type="html"><![CDATA[Let’s have a look at some acronyms used in the IT vocabulary that does not refer to an actual technology (like SQL). Let’s look at the one that may be more abstract, referring to a code pattern or principles to apply while approaching software development.]]></summary></entry><entry><title type="html">GraphQL Optimization</title><link href="https://sylhare.github.io/2023/01/03/Graphql-optimization.html" rel="alternate" type="text/html" title="GraphQL Optimization" /><published>2023-01-03T00:00:00+00:00</published><updated>2023-01-03T00:00:00+00:00</updated><id>https://sylhare.github.io/2023/01/03/Graphql-optimization</id><author><name></name></author><category term="graphql" /><summary type="html"><![CDATA[You should already be familiar with GraphQL by now, but if you are still unsure about queries and mutations, don’t hesitate to click on the links to direct toward the article that talks about it.]]></summary></entry><entry><title type="html">Cache 📦, retry ♻️ or break 💣💥</title><link href="https://sylhare.github.io/2022/12/16/Cache-retry-or-break.html" rel="alternate" type="text/html" title="Cache 📦, retry ♻️ or break 💣💥" /><published>2022-12-16T00:00:00+00:00</published><updated>2022-12-16T00:00:00+00:00</updated><id>https://sylhare.github.io/2022/12/16/Cache-retry-or-break</id><author><name></name></author><category term="java" /><summary type="html"><![CDATA[Let’s talk about APIs, usually in a microservice ecosystem you are bound to call one another. It can be via GraphQL, REST or gRPC all those calls can sometime fail or induce latency in your system.]]></summary></entry><entry><title type="html">How to kafka in Typescript</title><link href="https://sylhare.github.io/2022/12/09/How-to-kafkajs.html" rel="alternate" type="text/html" title="How to kafka in Typescript" /><published>2022-12-09T00:00:00+00:00</published><updated>2022-12-09T00:00:00+00:00</updated><id>https://sylhare.github.io/2022/12/09/How-to-kafkajs</id><author><name></name></author><category term="js" /><summary type="html"><![CDATA[If you are not familiar with Kafka then I suggest this article to get the basics. But if you’ve landed here, it’s either because you are curious 🤓 or you want to know more about KafkaJS and how to implement it with typescript.]]></summary></entry><entry><title type="html">Configuring your Typescript project</title><link href="https://sylhare.github.io/2022/12/02/Configuring-typescript.html" rel="alternate" type="text/html" title="Configuring your Typescript project" /><published>2022-12-02T00:00:00+00:00</published><updated>2022-12-02T00:00:00+00:00</updated><id>https://sylhare.github.io/2022/12/02/Configuring-typescript</id><author><name></name></author><category term="js" /><summary type="html"><![CDATA[All Typescript configuration tips that you may need. Think of it as a cheat sheet to remember which without re-reading all the documentation regarding typescript compilation will tell you some configuration settings that work for some particular use cases.]]></summary></entry><entry><title type="html">Interactive React Testing</title><link href="https://sylhare.github.io/2022/11/25/Interactive-react-testing.html" rel="alternate" type="text/html" title="Interactive React Testing" /><published>2022-11-25T00:00:00+00:00</published><updated>2022-11-25T00:00:00+00:00</updated><id>https://sylhare.github.io/2022/11/25/Interactive-react-testing</id><author><name></name></author><category term="react" /><summary type="html"><![CDATA[Welcome into the React Testing part 2! If you’ve missed out part 1, that’s because it is obnoxiously but simply named: “Static React Testing”. In the previous article we talked about the library used, the setup and some basic API offered by the testing library. So if you don’t remember or want to check it out real quick, it’s just one click away.]]></summary></entry><entry><title type="html">Memcached: Your friendly neighbourhood cache</title><link href="https://sylhare.github.io/2022/11/21/Memcached-your-friendly-neighbourhood-cache.html" rel="alternate" type="text/html" title="Memcached: Your friendly neighbourhood cache" /><published>2022-11-21T00:00:00+00:00</published><updated>2022-11-21T00:00:00+00:00</updated><id>https://sylhare.github.io/2022/11/21/Memcached-your-friendly-neighbourhood-cache</id><author><name></name></author><category term="kotlin" /><summary type="html"><![CDATA[Memcached is an open source caching system, it provides an in-memory key-value store for small chunks of data and is particularly used to save results from database or API calls. Memcached has a multithreaded architecture, so you can scale up by adding more computing capacity.]]></summary></entry><entry><title type="html">Database sync with Debezium</title><link href="https://sylhare.github.io/2022/11/07/Database-sync-with-debezium.html" rel="alternate" type="text/html" title="Database sync with Debezium" /><published>2022-11-07T00:00:00+00:00</published><updated>2022-11-07T00:00:00+00:00</updated><id>https://sylhare.github.io/2022/11/07/Database-sync-with-debezium</id><author><name></name></author><category term="open source" /><summary type="html"><![CDATA[Debezium is an open-source project. Once deployed and started it will capture change in data within a database and advertise it through Kafka. Let’s have a look at what we can do with this new technology!]]></summary></entry><entry><title type="html">Static React Testing</title><link href="https://sylhare.github.io/2022/10/18/React-testing-static.html" rel="alternate" type="text/html" title="Static React Testing" /><published>2022-10-18T00:00:00+00:00</published><updated>2022-10-18T00:00:00+00:00</updated><id>https://sylhare.github.io/2022/10/18/React-testing-static</id><author><name></name></author><category term="react" /><summary type="html"><![CDATA[In this article we’ll have a look at the React testing library, some of its packages and the main APIs to use in your test to simulate any situation in our App.]]></summary></entry><entry><title type="html">GraphQL and federation 🏙</title><link href="https://sylhare.github.io/2022/10/11/Graphql-and-federation.html" rel="alternate" type="text/html" title="GraphQL and federation 🏙" /><published>2022-10-11T00:00:00+00:00</published><updated>2022-10-11T00:00:00+00:00</updated><id>https://sylhare.github.io/2022/10/11/Graphql-and-federation</id><author><name></name></author><category term="graphql" /><summary type="html"><![CDATA[With Apollo Server, you can create an Apollo Federation for your GraphQL APIs. The pre-requisite for federation would be to have at least two different GraphQL APIs that you want to advertise under the same url. Or if you want to break down a big GraphQL schema into multiple small microservices.]]></summary></entry><entry><title type="html">Advanced Jest testing</title><link href="https://sylhare.github.io/2022/09/21/Jest-testing.html" rel="alternate" type="text/html" title="Advanced Jest testing" /><published>2022-09-21T00:00:00+00:00</published><updated>2022-09-21T00:00:00+00:00</updated><id>https://sylhare.github.io/2022/09/21/Jest-testing</id><author><name></name></author><category term="js" /><summary type="html"><![CDATA[We have talked briefly about Jest before in this blog before, but only on how to write a basic test and set it up within your project.]]></summary></entry><entry><title type="html">Software engineering refactor tips</title><link href="https://sylhare.github.io/2022/09/14/Software-engineering-refactor-tips.html" rel="alternate" type="text/html" title="Software engineering refactor tips" /><published>2022-09-14T00:00:00+00:00</published><updated>2022-09-14T00:00:00+00:00</updated><id>https://sylhare.github.io/2022/09/14/Software-engineering-refactor-tips</id><author><name></name></author><category term="tips" /><summary type="html"><![CDATA[In this article, I wanted to talk about clean code, but I don’t like the nearly religious symbolic meaning attached to it. There’s not one way to “clean code”, it’s more a collection of experimented rule of patterns that can help you write clear (easy-to-read), maintainable, efficient code.]]></summary></entry><entry><title type="html">React and redux</title><link href="https://sylhare.github.io/2022/08/03/React-and-redux.html" rel="alternate" type="text/html" title="React and redux" /><published>2022-08-03T00:00:00+00:00</published><updated>2022-08-03T00:00:00+00:00</updated><id>https://sylhare.github.io/2022/08/03/React-and-redux</id><author><name></name></author><category term="react" /><summary type="html"><![CDATA[Introduction]]></summary></entry><entry><title type="html">Event sourcing pitfalls</title><link href="https://sylhare.github.io/2022/07/22/Event-sourcing-pitfalls.html" rel="alternate" type="text/html" title="Event sourcing pitfalls" /><published>2022-07-22T00:00:00+00:00</published><updated>2022-07-22T00:00:00+00:00</updated><id>https://sylhare.github.io/2022/07/22/Event-sourcing-pitfalls</id><author><name></name></author><category term="tips" /><summary type="html"><![CDATA[Having implemented and experienced the benefits of event sourcing, I wanted to talk about the pitfalls that could make your event journey a nightmare. If you are not familiar with event sourcing or event driven architecture, I recommend reading this article, try the concept out and come back here to see if you fall into one of those pitfalls.]]></summary></entry><entry><title type="html">Introduction to React router</title><link href="https://sylhare.github.io/2022/07/08/React-router.html" rel="alternate" type="text/html" title="Introduction to React router" /><published>2022-07-08T00:00:00+00:00</published><updated>2022-07-08T00:00:00+00:00</updated><id>https://sylhare.github.io/2022/07/08/React-router</id><author><name></name></author><category term="react" /><summary type="html"><![CDATA[Assuming you have been interested in React and started creating simple apps, you now want to make it more than a single web page by adding some routing into the mix. So take your newly React template App and let’s see how we can do some React Router magic in it. ✨]]></summary></entry><entry><title type="html">Introduction to Google Analytics</title><link href="https://sylhare.github.io/2022/06/21/Google-analytics.html" rel="alternate" type="text/html" title="Introduction to Google Analytics" /><published>2022-06-21T00:00:00+00:00</published><updated>2022-06-21T00:00:00+00:00</updated><id>https://sylhare.github.io/2022/06/21/Google-analytics</id><author><name></name></author><category term="misc" /><summary type="html"><![CDATA[Google Analytics is a free service meant to track users and collect their online behaviour data when using a website, app or any kind of web product. And like mosquitoes you will find it almost everywhere you go to relax. So let’s have a look at it. 👀]]></summary></entry><entry><title type="html">GraphQL API client 📡 in a React component</title><link href="https://sylhare.github.io/2022/06/13/Graphql-api-client-in-react-component.html" rel="alternate" type="text/html" title="GraphQL API client 📡 in a React component" /><published>2022-06-13T00:00:00+00:00</published><updated>2022-06-13T00:00:00+00:00</updated><id>https://sylhare.github.io/2022/06/13/Graphql-api-client-in-react-component</id><author><name></name></author><category term="react" /><summary type="html"><![CDATA[Now that we’ve seen how to create a GraphQL API from Apollo Server, Advanced Queries and Mutation to Bulk Mutations, custom Scalars and advanced Resolvers, you should have the hang of it by now. So let’s start using it in our front-end. The technology of choice here is React to display the info, but that’s just a personal choice since my journey in React ⚛ territory, but you could use Angular, VueJS as well.]]></summary></entry></feed>