About
What xtec.dev is — a personal collection of open materials and tools for the IT-family Higher VET (CFGS) cycles.
xtec.dev is a personal collection of open materials and tools for the IT family of cicles formatius de grau superior (CFGS) at Catalonia’s public schools — the Higher VET tier of the European Qualifications Framework. The site you’re reading holds the course materials; two sibling tools sit alongside it: School (the day-to-day teacher workflow) and Grade (LLM-assisted grading on top of School).
It is a personal, non-commercial project, developed in my own time and with my own resources, outside my teaching duties — independent, and not an official service of, nor endorsed by, any educational centre or the Department of Education (Generalitat de Catalunya), and using no public resources.
My students leave able to build and ship real software — not just to pass the exam. That is the standard I hold every project to.
You will work the way professionals work. We use agile methods, you ship to production, and you get honest feedback early and often. The goal is simple: by the time you graduate, the habits are already yours.
What you can expect.
- Projects that look like real work, not exercises.
- Teaching built on how people actually learn, so the ideas stick.
- Clear scope and steady delivery, so you always know where you stand.
For what Higher VET (EQF 5) is, how it’s recognised as tertiary education, and the IT-family CFGS cycles this site focuses on, see the Higher Vocational Education guide.
What you’ll find
This website is a comprehensive collection of teaching and learning resources designed to train qualified professionals in software engineering. It covers a wide range of topics, from programming languages and databases to cloud infrastructure, networking, and artificial intelligence.
- Programming languages: Python, Kotlin, TypeScript, and Rust, with learning paths that go from foundational concepts like algorithms and data structures to advanced topics like web frameworks, databases, and UI development.
- Databases and data management: Relational databases (SQLite, PostgreSQL, Oracle), NoSQL databases (MongoDB), data formats (JSON, XML, YAML), and data protection (GDPR, anonymization).
- Web technologies: HTML/CSS fundamentals, HTTP protocol, REST APIs, WebSocket, TailwindCSS, and web application frameworks like React, Astro, Hono, and FastAPI.
- Cloud and infrastructure: Azure, Firebase, Supabase, Neon, Netlify, and container orchestration with Docker, Kubernetes, Nomad, and Consul.
- Linux and system administration: Shell commands, scripting, user management, networking, containers, and security.
- Networking and security: SSH, TLS, WireGuard VPN, proxy servers, cryptography, and risk analysis.
- AI and machine learning: Large language models, deep learning, PyTorch, and tools like Ollama and LangChain.
- Bioinformatics: Molecular biology, proteins, DNA, genomics, drug design, and spatial genomics.
- Development tools and practices: Git, GitLab, GitHub, VS Code, JetBrains IDEs, Mermaid diagrams, and agile methodologies (Scrum, Kanban).
- Vocational training programs: Structured curricula for CFGS study programs including DAW (Web Application Development), DAM (Multiplatform Application Development), DAWBIO (Bioinformatics), and ASIX (Systems and Network Administration).
The teaching and grading tools
Alongside the course materials, School is a tool for vocational-training teachers who need to cross-reference data from Moodle and Esfera without spending hours copying tables by hand. Moodle is run by each educational centre; Esfera is run by the Department of Education (Generalitat de Catalunya). The tool:
- Retrieves the courses and students from Moodle the teacher has access to.
- Imports enrollments and grades from Esfera through the teacher’s SAML session.
- Calculates marks by learning outcome (RA) from the students’ submissions.
- Generates PDFs with the grading grid for assessment records.
Why the tool only reads from Esfera
The tool only reads from Esfera; it never writes grades, observations, or any other data there. This is a deliberate design decision, not a pending feature. The official actor before the Generalitat is always the teacher, inside their own browser — not this tool. There are three reasons:
- Esfera is a Generalitat de Catalunya system with its own access conditions. Automated writing from a third-party tool (even with the teacher’s legitimate credentials) could breach those conditions, whereas assisted reading — which the teacher could also do manually within the same session — does not.
- Integrity of the academic record. If a script wrote an official grade incorrectly, the technical responsibility would fall on this tool even with the user’s consent. Keeping the teacher as the final executor — copying the calculated marks into the Esfera screen — means the authorised person validates the entry, inside the official interface.
- A warning would not be enough. A notice of the “under your responsibility” kind covers the user’s consent, but resolves neither of the two points above: not the official system’s access regime, nor the liability for erroneous writes.
So the supported flow is: the tool calculates the marks by RA and displays them; the teacher reviews them and enters them into Esfera. If the Generalitat publishes an official write API, or the Department explicitly authorises this integration, it will be reconsidered.
License
© David de Mingo. All rights reserved. All content and code on this website is proprietary, not open-licensed. It is provided for educational use only: students for their own study, and teachers with their own students in class. Copying, redistribution, modification, and commercial use are not permitted without prior written permission. See the full terms of use for details.
Collaboration
If you are an IT professional who wants to share some of your knowledge, this is the place for you! You can contribute by creating new learning activities or improving existing ones. To do so, please get in touch with us.
Contact
For questions, feedback, or to request permission, you can reach me directly at david at xtec.dev. I value your feedback — if you have suggestions for improvement or run into a problem, please don’t hesitate to get in touch.