---
title: "Jinja | Skills We Assign For | Azendo"
description: "Jinja for SQL templating in data pipelines — macros, readability limits, and the Azendo roles assigned for it."
url: "https://azendo.co/skills/jinja/"
---

[Skills](https://azendo.co/skills/) Data pipelines 

# Jinja.

Jinja is a Python templating language used widely in data tooling to generate SQL: parameterised models, loops over column lists, environment-conditional logic and reusable macros.

## Where Jinja fits on a long engagement.

Templating removes real duplication. Generating the same aggregation across twenty metrics, or referencing a table whose name differs per environment, is a loop rather than twenty near-identical files that drift apart over time.

It stops helping quickly past that. SQL with nested conditionals and macro calls becomes something neither a SQL reader nor a Python reader can follow, and debugging means compiling the template to see what actually ran. The useful rule is that templating should reduce repetition, not express logic.

## What an assigned team does with Jinja.

Macros are shared code with no type system and limited tooling. A macro used across forty models is a dependency that can break all of them, and it deserves the review attention that implies.

Keeping that library small and well understood is a discipline held over years rather than a decision made once, which is what a [dedicated software development team](https://azendo.co/services/dedicated-development-team/) provides.

## What we use Jinja for.

* Repetition removed from model SQL Loops over metrics or columns, instead of files that drift apart.
* Environment differences handled once Source names resolved per environment rather than duplicated per file.
* A macro library kept small Shared logic reviewed carefully, because it is a dependency for everything using it.

## How Jinja capacity is assigned.

Templating work sits inside data engineering capacity, with readability of the compiled SQL treated as a review criterion.

## Roles we assign Jinja for

* [Analytics Engineer Data engineering](https://azendo.co/services/data-engineering/analytics-engineer/)

## Service lines it sits in

* [Data engineering](https://azendo.co/services/data-engineering/)

Capacity is agreed as a committed monthly capacity across a discipline, not per skill.

## Related in data pipelines

* [Spark — skill we assign for](https://azendo.co/skills/spark/)
* [Flink — skill we assign for](https://azendo.co/skills/flink/)
* [Dagster — skill we assign for](https://azendo.co/skills/dagster/)
* [Prefect — skill we assign for](https://azendo.co/skills/prefect/)
* [Airbyte — skill we assign for](https://azendo.co/skills/airbyte/)
* [Informatica — skill we assign for](https://azendo.co/skills/informatica/)
* [Talend — skill we assign for](https://azendo.co/skills/talend/)
* [SSIS — skill we assign for](https://azendo.co/skills/ssis/)

## Tell us what your roadmap needs Jinja for.

A service delivery manager replies with the disciplines we would assign, the monthly capacity and what the first month looks like.

[All skills we assign for](https://azendo.co/skills/)
