DEV Community

Javi Palacios profile picture

Javi Palacios

I build courses that explain the why, not just the how. Git, Docker, Vim, Python, AI. Everything also in Spanish at fjp.es.

Valencia, Spain Joined on  https://fjp.es/en/
What is JavaScript and Why Node.js Exists

What is JavaScript and Why Node.js Exists

9 min read

Want to connect with Javi Palacios?

Create an account to connect with Javi Palacios. You can also sign in below to proceed if you already have an account.

Already have an account? Sign in
Setting Up PostgreSQL with Docker, psql, and pgAdmin

Setting Up PostgreSQL with Docker, psql, and pgAdmin

11 min read
Linux essentials for DevOps: navigation, files, and permissions

Linux essentials for DevOps: navigation, files, and permissions

10 min read
Verifying and understanding AI-generated code

Verifying and understanding AI-generated code

1
8 min read
Iteration and refinement: the AI dialogue

Iteration and refinement: the AI dialogue

9 min read
Scope and namespaces in Python: where your variables live

Scope and namespaces in Python: where your variables live

7 min read
Why We Need Databases

Why We Need Databases

8 min read
Docker Compose networking: networks, services, and isolation

Docker Compose networking: networks, services, and isolation

6 min read
Docker Compose volumes and data persistence

Docker Compose volumes and data persistence

1
8 min read
Setting up your DevOps work environment: Linux, terminal, and essential tools

Setting up your DevOps work environment: Linux, terminal, and essential tools

10 min read
Introduction to the DevOps world: culture, automation, and feedback

Introduction to the DevOps world: culture, automation, and feedback

8 min read
Marks and jumps in Vim: navigate without losing the thread

Marks and jumps in Vim: navigate without losing the thread

6 min read
Docker Compose file structure: health checks, environment variables, and restart

Docker Compose file structure: health checks, environment variables, and restart

6 min read
Introduction to Docker Compose: one file, one command

Introduction to Docker Compose: one file, one command

5 min read
Git in CI/CD pipelines: from commit to automated deploy

Git in CI/CD pipelines: from commit to automated deploy

6 min read
git switch and git restore: the end of the all-purpose checkout

git switch and git restore: the end of the all-purpose checkout

6 min read
Prompts for Code Generation with AI

Prompts for Code Generation with AI

7 min read
Advanced function parameters in Python: defaults, *args, and **kwargs

Advanced function parameters in Python: defaults, *args, and **kwargs

6 min read
Git configuration and optimization: settings that actually matter

Git configuration and optimization: settings that actually matter

1
6 min read
The most useful Oh My ZSH! aliases to increase our productivity with Git

The most useful Oh My ZSH! aliases to increase our productivity with Git

4 min read
Using Git aliases to increase our productivity

Using Git aliases to increase our productivity

3 min read
Git LFS: managing large files without breaking your repository

Git LFS: managing large files without breaking your repository

7 min read
Git Worktrees: multiple working directories from a single repository

Git Worktrees: multiple working directories from a single repository

5 min read
Docker image optimization: from 1.2 GB to 85 MB

Docker image optimization: from 1.2 GB to 85 MB

7 min read
BuildKit in Docker: build secrets, dependency caching, and multi-platform images

BuildKit in Docker: build secrets, dependency caching, and multi-platform images

6 min read
Git hooks: automating what nobody remembers to do

Git hooks: automating what nobody remembers to do

8 min read
Git submodules: repositories inside repositories without losing your mind

Git submodules: repositories inside repositories without losing your mind

9 min read
Using AI to learn programming concepts

Using AI to learn programming concepts

11 min read
Context, role, task, and format: advanced application

Context, role, task, and format: advanced application

1
8 min read
Search in Vim: find text without losing your flow

Search in Vim: find text without losing your flow

1
6 min read
Releasing new versions of our projects using Git tags

Releasing new versions of our projects using Git tags

4 min read
Defining functions in Python: def, parameters, and return

Defining functions in Python: def, parameters, and return

6 min read
Advanced Dockerfile instructions: ARG, ENV, ENTRYPOINT and more

Advanced Dockerfile instructions: ARG, ENV, ENTRYPOINT and more

6 min read
Pull Requests and code review: how to make your code easy to review

Pull Requests and code review: how to make your code easy to review

7 min read
GitHub Flow: the workflow for teams that ship continuously

GitHub Flow: the workflow for teams that ship continuously

5 min read
The art of the prompt: core principles

The art of the prompt: core principles

1
6 min read
List methods in Python: append, remove, and list comprehensions

List methods in Python: append, remove, and list comprehensions

5 min read
Multi-stage builds in Docker: smaller, cleaner images

Multi-stage builds in Docker: smaller, cleaner images

5 min read
Dockerfile Best Practices: Security

Dockerfile Best Practices: Security

7 min read
Git Flow: a workflow for managing releases

Git Flow: a workflow for managing releases

6 min read
Branch naming conventions in Git

Branch naming conventions in Git

6 min read
Visual mode in Vim: select, operate, own it

Visual mode in Vim: select, operate, own it

4 min read
Lists in Python: your first data structure

Lists in Python: your first data structure

4 min read
Dockerfile Best Practices: Layer Caching and Efficiency

Dockerfile Best Practices: Layer Caching and Efficiency

6 min read
Git commit best practices

Git commit best practices

6 min read
How to resolve merge conflicts in Git

How to resolve merge conflicts in Git

8 min read
Investigating Code Changes Line by Line with git blame

Investigating Code Changes Line by Line with git blame

4 min read
Your First Code Conversation with AI

Your First Code Conversation with AI

5 min read
The AI Model Landscape in 2026: who's who and where to start

The AI Model Landscape in 2026: who's who and where to start

10 min read
for loops and range() in Python: iterate without the busywork

for loops and range() in Python: iterate without the busywork

5 min read
Introduction to Dockerfiles: build your own images

Introduction to Dockerfiles: build your own images

5 min read
Docker port mapping: connect your containers to the outside world

Docker port mapping: connect your containers to the outside world

5 min read
Finding bugs with git bisect

Finding bugs with git bisect

5 min read
Recovering lost work with git reflog

Recovering lost work with git reflog

6 min read
AI Limitations and How to Detect Hallucinations

AI Limitations and How to Detect Hallucinations

8 min read
Insert Mode in depth: more than you think

Insert Mode in depth: more than you think

5 min read
while loops in Python: repetition with a condition

while loops in Python: repetition with a condition

5 min read
Interactive containers and exec: get inside, run commands, get out

Interactive containers and exec: get inside, run commands, get out

6 min read
Cherry-picking commits in Git

Cherry-picking commits in Git

6 min read
Interactive Rebase in Git: Edit Your History Like a Pro

Interactive Rebase in Git: Edit Your History Like a Pro

6 min read
loading...
⌂