Software Engineering
Ingeniero de Software
Los ingenieros de software convierten intención en código del que otras personas dependen, a menudo sin llegar a conocerlas. El oficio es más amplio que los lenguajes — Python, Go, Java rotan dentro y fuera de moda — y se centra en el juicio: qué abstracción introducir, qué prueba escribir primero, qué comentario de revisión importa y cuál es gusto disfrazado de principio.
Herramientas de IA como Copilot y Claude Code aceleran la escritura, pero elevan el listón sobre qué construir realmente. A los ingenieros sólidos les importan las personas que mantendrán su código dentro de dos años, incluidos sus futuros yo.
Los estudiantes atraídos por este camino a menudo empezaron a construir cosas en la secundaria y nunca pararon. El crecimiento viene de lanzar sistemas reales, asumir la responsabilidad cuando fallan y leer código escrito por personas mejores que tú.
US$163,883 salario mediano en United States¹
- CodePrincipianteNuevo
Planificar rutas de reparto de medicamentos en una farmacia online
Recibes un grafo de la ciudad con 800 nodos (cruces) y aristas con tiempos medios de viaje, más una lista de 350 pedidos diarios con ventana horaria (mañana o tarde) y 12 motori…
- Algoritmos De Grafos
- Greedy Algorithms
- Shortest Paths
Algorithm Design and Analysis - AnalysisPrincipianteNuevo
Análisis comparativo de estructuras para feed de noticias
Implementa o adapta las 3 estructuras (heap binario, skip list, árbol auto-balanceado como Red-Black) en el mismo lenguaje. Diseña un benchmark que simule el patrón real (3 ráfa…
- Heaps
- Skip Lists
- Balanced Trees
Data Structures - AnalysisPrincipianteNuevo
Endurecer un sistema Linux con capacidades y seccomp
Para cada uno de los 3 servicios, captura el conjunto de syscalls reales en 48 horas de tráfico de staging usando strace o perf-trace agregados. Construye un perfil seccomp por …
- Os Security
- Linux
- Seccomp
Operating Systems - AnalysisPrincipianteNuevo
Predicción de Saltos: Comparativa de Predictores sobre Trazas SPEC
Implementa los 4 predictores parametrizables (tabla size 1KB-64KB, history length 4-16 bits). Procesa trazas con formato 'PC_hex direction(T/N)' y reporta accuracy global por pr…
- Branch Prediction
- Cpu Architecture
- SimulacióN
Computer Architecture Practice your coursework on real scenarios.
Every challenge is shaped from real-world context — not generic exercises. The work mirrors what your degree prepares you for.
Why Ewance
- CodePrincipianteNuevo
Implementa un sistema de notificaciones con patrón Observer en Kotlin
Implementa en Kotlin un módulo de notificaciones con: (1) interfaz Notificador (observador) e implementaciones EmailNotificador, PushNotificador, SmsNotificador (mockeadas, sin …
- Swift O Kotlin
- Patrones De DiseñO
- Concurrency
Object-Oriented Programming and Design - CodePrincipianteNuevo
Sistema de tipos con Scala 3 para conciliación bancaria
Audita la librería actual (Scala 2.13, provista). Define tipos opacos para identificadores y montos sin riesgo de mezclarlos. Modela los 5 formatos como type-level cases. Usa gi…
- Scala
- Opaque Types
- Type Driven Design
Functional Programming - CodePrincipianteNuevo
Microbenchmark de Jerarquía de Memoria en Centro de Datos en Valencia
Escribe un microbenchmark en C que mida latencia de acceso aleatorio sobre arrays de tamaño creciente (16 KB hasta 1 GB) para detectar el tamaño efectivo de L1, L2, L3 y memoria…
- Memory Hierarchy
- Microbenchmarking
- C Programming
Computer Systems and Organization - CodePrincipianteNuevo
Primera contribución upstream a un dev-tool open source popular
Elige 1 issue real abierto con etiqueta 'good first issue' en un repo upstream popular (mínimo 8.000 estrellas, mantenido activamente). Lee CONTRIBUTING.md, code of conduct y la…
- Open Source Contribution
- Git
- Code Review
Open Source Contribution and Maintainership - Browse challenges
Explore role
Product Manager
Ship product that solves real user problems. Combine user research, prototyping, and stakeholder alignment to turn ambiguous briefs into measurable wins — the role at the centre of modern software teams.
- CodePrincipianteNuevo
Parser combinators en F# para DSL fiscal española
Define la sintaxis del DSL fiscal (variables, expresiones aritméticas, condiciones, llamadas a funciones del catálogo fiscal). Implementa el parser con FParsec y AST como tipo d…
- Fsharp
- Parser Combinators
- Embedded Dsl
Functional Programming - CodePrincipianteNuevo
Implementa pruebas automatizadas para un sistema de trazabilidad en bodega
Debes implementar un conjunto de pruebas automatizadas para el módulo de alertas del sistema de fermentación. El sistema recibe lecturas de sensores cada 5 minutos, aplica regla…
- Unit Testing
- Test Automation
- Ci Cd Integration
Software Engineering and Quality Assurance - CodePrincipianteNuevo
Caches L1 con Política LRU y Análisis de Miss Rate sobre Trazas Reales
Implementa el simulador en C++ con clases para Cache, Set, Line y una jerarquía de políticas. Soporta tamaños 4KB-64KB, asociatividad 1/2/4/8/16-way y 3 políticas (LRU, FIFO, Ra…
- Cpu Architecture
- Caches
- Competencia En Lenguajes De Sistemas (Go, Rust, C++)
Computer Architecture - CodePrincipianteNuevo
Calcular descuentos progresivos con recursión y funciones de orden superior
Modela las reglas de descuento como funciones de orden superior: cada regla es una función pedido -> descuento. Implementa al menos 5 reglas (volumen escalonado, club por antigü…
- Recursion
- Higher Order Functions
- Abstraction
Programming Abstractions Build a verifiable portfolio.
Submissions become evidence. Reviewers with shipping experience score against a rubric; the result becomes a credential anyone can verify.
Why Ewance
- CodePrincipianteNuevo
Motor de reglas en Haskell para pricing dinámico de hotel
Diseña el lenguaje de reglas como tipo algebraico (Regla = Si Condicion Entonces Accion | Y Regla Regla | O Regla Regla). Implementa el intérprete puro en Haskell. Define condic…
- Haskell
- Algebraic Data Types
- Embedded Dsl
Functional Programming - CodePrincipianteNuevo
Aplica SOLID a un sistema legacy de gestión de citas médicas
Recibes el repositorio y los módulos diana: ReservaCitaService (cerca de 700 líneas, hace 6 cosas) y NotificacionService (cerca de 480 líneas, acoplado a SMTP concreto). Aplica …
- Python O Javascript
- Solid Principles
- RefactorizacióN
Object-Oriented Programming and Design - AnalysisPrincipianteNuevo
Documento de Requisitos para una App de Logística en una PYME de Zaragoza
Recibes 4 sesiones de 45 minutos grabadas (transcritas) más 3 ejemplos de Excel actual anonimizados. Identifica al menos 25 requisitos funcionales (creación de ruta, asignación,…
- Requirements Engineering
- ComunicacióN Con Stakeholders
- User Stories
Software Engineering Foundations - CodePrincipianteNuevo
Triage y limpieza del issue tracker de un proyecto OSS hispano
Firma el CLA. Acuerda con los 2 maintainers la taxonomía propuesta de etiquetas (tipo, área, dificultad, estado) antes de tocar issues. Procesa los 380 issues: confirma reproduc…
- Issue Triage
- Open Source Governance
- DocumentacióN Auditable
Open Source Contribution and Maintainership - CodePrincipianteNuevo
Refactor a patrón Strategy del cálculo de tarifas eléctricas
Recibes el código original (Java 17), su suite de tests JUnit (cobertura 72 %) y la especificación de las 5 tarifas actuales. Aplica patrón Strategy: una interfaz CalculoTarifa,…
- Python O Javascript
- Patrones De DiseñO
- RefactorizacióN
Object-Oriented Programming and Design - AnalysisPrincipianteNuevo
Subsistema de Memoria Multinivel y Sweep de Configuración para Embebidos
Implementa simulador en Python que modele L1-I, L1-D y scratchpad con latencias parametrizables (L1=1 ciclo, scratchpad=1, miss a flash=80). Soporta 3 splits objetivo (128I/64D/…
- Memory Hierarchy
- Sistemas Embebidos
- SimulacióN
Computer Architecture - DesignPrincipianteNuevo
Sintetizador de audio FPGA para taller maker LATAM
Diseña en Verilog: 8 osciladores DDS (Direct Digital Synthesis — síntesis digital directa) con tablas de onda en BRAM, mezclador con saturación, envelope ADSR (Attack, Decay, Su…
- Verilog
- Fpga
- Dds
Digital Systems Design - CodePrincipianteNuevo
Grafo de rutas para servicio de pedidos en mercado central
Modela los 180 puntos como un grafo ponderado (peso = tiempo estimado entre puntos, calibrado con datos GPS históricos). Implementa la lista de adyacencias y Dijkstra con cola d…
- Graphs
- Dijkstra
- Adjacency Lists
Data Structures - CodePrincipianteNuevo
Programación dinámica para una bodega que optimiza envíos
Dispones del catálogo (220 SKUs con peso, coste, precio de venta a importador y stock disponible) y de 6 meses de envíos históricos. Implementa: (1) knapsack 0/1 por programació…
- Dynamic Programming
- Knapsack
- AnáLisis De Algoritmos
Algorithm Design and Analysis - CodePrincipianteNuevo
Cola de prioridades para despacho de logística urbana
Implementa una cola de prioridades min-heap binaria desde cero en Python (sin usar heapq), con operaciones insert, extract-min y update-priority en O(log n) demostradas con prue…
- Heaps
- Priority Queues
- AnáLisis De Complejidad
Data Structures - CodePrincipianteNuevo
Procesador RISC-V de Ciclo Único en Verilog para un Curso Industrial
Implementa los bloques en Verilog: registro de archivo (32 registros de 32 bits), ALU con 10 operaciones, memoria de instrucciones, memoria de datos, unidad de control combinaci…
- Verilog
- Cpu Design
- Risc V
Computer Architecture - CodePrincipianteNuevo
Implementar un planificador MLFQ en el kernel docente xv6
Forka el repositorio xv6-riscv e implementa MLFQ en proc.c con 3 colas de prioridad, rodajas de tiempo por cola (10ms / 20ms / 40ms), degradación al agotar la rodaja y un boost …
- Sistemas Operativos
- PlanificacióN
- C Programming
Operating Systems - CodePrincipianteNuevo
Rasterizador 3D desde Cero en C++ para un Estudio Indie
Implementa pipeline gráfico software: vertex transform (model → view → projection), clipping en clip space, división por w, viewport transform, rasterización de triángulos con a…
- Rasterization
- GráFicos Por Computador
- Linear Algebra
Introduction to Computer Graphics - CodePrincipianteNuevo
Front-end Léxico-Sintáctico para un DSL de Reglas Logísticas
Implementa el lexer con ANTLR4 o escrito a mano, generando tokens con posición de origen (línea, columna) para mensajes de error. Implementa el parser que produzca un AST tipado…
- Lexical Analysis
- Parsing
- Ast Design
Compiler Construction - CodePrincipianteNuevo
Algoritmos voraces para asignación de cuidadores en HealthTech
Modela el problema como emparejamiento (matching) entre visitas y cuidadores con restricciones: zona, idioma del paciente, especialización, horario. Diseña al menos 2 estrategia…
- Greedy Algorithms
- Matching
- AnáLisis De Algoritmos
Algorithm Design and Analysis - CodePrincipianteNuevo
Implementar un parser recursivo descendente para expresiones aritméticas
Define la gramática (BNF mínimo) para expresiones aritméticas con precedencia correcta y asociatividad de potencia a la derecha. Implementa el tokenizer, el parser recursivo des…
- Recursion
- Abstraction
- Data Abstraction
Programming Abstractions - CodePrincipianteNuevo
Suite de Pruebas Unitarias para un SaaS de Facturación Electrónica en Madrid
Te entregan el repositorio del módulo de cálculo de IVA (TypeScript + Vitest configurado) y la documentación funcional de los regímenes especiales (recargo de equivalencia, crit…
- Unit Testing
- Test Design
- Code Coverage
Software Testing and Quality Assurance - CodePrincipianteNuevo
Logging estructurado en migración Rails monolito a microservicios
Define el estándar (10 páginas): formato (JSON), campos obligatorios (timestamp, level, service, env, request_id, user_id_hash, tenant_id), campos opcionales (latency_ms, status…
- Structured Logging
- Loki
- Ruby On Rails
Software Observability - CodePrincipianteNuevo
Diseño OO de un simulador de inventario para tienda de cómics
Diseña un modelo OO en C++17 que incluya: clase abstracta Producto con subclases Comic, MerchandisingFigura y JuegoMesa, clase Cliente con subclases Casual y Coleccionista (con …
- Competencia En Lenguajes De Sistemas (Go, Rust, C++)
- DiseñO Orientado A Objetos
- Polymorphism
Object-Oriented Programming and Design - CodePrincipianteNuevo
Refactor SOLID de un Módulo de Notificaciones en una EdTech de Lima
Recibes el módulo en Python 3.12 con pruebas mínimas. Empieza por escribir tests de caracterización para los 3 canales existentes. Aplica Single Responsibility separando dispatc…
- Solid Principles
- RefactorizacióN
- Python O Javascript
Software Design and Design Patterns - CodePrincipianteNuevo
Verificación funcional de IP DMA para empresa de IoT industrial
Construye un testbench en cocotb (Python) para el IP DMA provisto (con interfaces AXI4 para configuración y AXI4-Stream para datos). Implementa modelo de memoria, drivers AXI, y…
- Cocotb
- Functional Verification
- Axi4
Digital Systems Design - CodePrincipianteNuevo
Suite de Pruebas para un CLI Sin Tests en una EdTech de Barcelona
Recibes el repositorio en GitHub (Python 3.11, sin tests, sin CI). Configura pytest con cobertura, escribe pruebas unitarias para los 4 comandos críticos (import, validate, publ…
- Testing Automatizado
- Pytest
- Ci Cd
Software Construction - CodePrincipianteNuevo
Análisis Semántico y Tabla de Símbolos para un Lenguaje Educativo
Implementa la tabla de símbolos con un stack de scopes (global, función, bloque). Recorre el AST con un visitor que rellene la tabla y luego una segunda pasada que verifique tip…
- Semantic Analysis
- Symbol Table
- Type Checking
Compiler Construction - CodePrincipianteNuevo
Refactorizar un script monolítico a módulos reutilizables
Lee el script (proporcionado), entiéndelo y traza un mapa de qué hace cada parte. Refactoriza en 5 módulos claros: io (lectura CSV), tax (cálculo de impuestos por país), invoice…
- Modular Programs
- Abstraction
- RefactorizacióN
Programming Abstractions - CodePrincipianteNuevo
Acelerar entrenamiento de modelo con CUDA para banca AWS LATAM
Recibirás dataset anonimizado (8 millones de filas, 240 features). Migra el pipeline de preprocesamiento a cuDF y el entrenamiento a XGBoost GPU. Perfila la pipeline con Nsight …
- Cuda
- Gpu Computing
- Rapids
High-Performance and Scientific Computing - AnalysisPrincipianteNuevo
Diagnosticar un interbloqueo en un indexador multihilo en C
Clona el repositorio del indexador (proporcionado), configura ThreadSanitizer y Helgrind, y produce un caso de prueba que reproduzca el interbloqueo en menos de 5 minutos. Diagn…
- Synchronization
- Deadlock Analysis
- C Programming
Operating Systems - CodePrincipianteNuevo
Diseñar un programa modular para análisis de logs de un restaurante
Diseña 4 módulos: io_logs (parseo y validación), aggregate (cálculo de métricas), analyze (detección de anomalías como margen fuera de banda), report (formato del informe). Cada…
- Modular Programs
- Abstraction
- Python O Javascript
Programming Abstractions - CodePrincipianteNuevo
Cliente HTTP/1.1 desde Cero en Sockets para un ISP Andaluz
Implementa la CLI en Python usando solo socket y ssl (para HTTPS). Implementa: parsing de URL, resolución DNS con socket.getaddrinfo y reporte de tiempo, conexión TCP con SO_KEE…
- Networking
- Http Protocol
- Sockets
Computer Networks - AnalysisPrincipianteNuevo
Detección de Code Smells con Análisis Estático en Backend Django
Configura SonarQube self-hosted, Pylint con configuración custom y Radon para complejidad ciclomática y mantenibilidad. Integra en GitHub Actions: cada PR muestra delta de issue…
- Code Smells
- AnáLisis EstáTico
- RefactorizacióN
Refactoring and Code Smell Detection - CodePrincipianteNuevo
Modela un torneo de pádel con interfaces y composición en C#
Diseña en C# (.NET 8) un dominio de torneo con: interfaces IFormato, IReglaDesempate, IModoEmparejamiento; entidades Jugador, Pareja, Partido, Torneo. Aplica composición — un To…
- Csharp
- DiseñO Orientado A Objetos
- Interfaces
Object-Oriented Programming and Design - CodePrincipianteNuevo
Diseño en VHDL de controlador para sensor de presión neumático
Diseña en VHDL la arquitectura: máquina de estados para secuenciar 4 conversiones SPI, registros de desplazamiento para los frames del ADC, contador de muestras y módulo de prom…
- Vhdl
- Fsm
- Spi
Digital Systems Design - CodePrincipianteNuevo
Mantenimiento Evolutivo de una App de Inventario en una Bodega de La Rioja
Recibes el repositorio (PHP 7.4, MySQL 8, sin tests, despliegue manual con FTP) y una entrevista de 60 minutos con la operadora principal. Migra primero el repositorio a Git si …
- Maintenance
- Git
- Php
Software Engineering Foundations - CodePrincipianteNuevo
Aplicación móvil de inspección de calidad para proveedor automovilístico
Desarrolla una aplicación Android nativa en Java o Kotlin (se recomienda Kotlin por ser el estándar actual de Google) que reemplace el sistema de inspección en papel de la plant…
- Android Development
- Offline First Architecture
- Sqlite Database
Web and Mobile Application Development - CodePrincipianteNuevo
Pipeline de Cinco Etapas y Análisis de Hazards en LegV8
Implementa el simulador en Python con 5 etapas (IF, ID, EX, MEM, WB), pipeline registers explícitos y unidad de detección de hazards. Soporta el subset LegV8 (ADD, SUB, AND, ORR…
- Pipelining
- Hazard Detection
- Forwarding
Computer Architecture - CodePrincipianteNuevo
Tabla hash para deduplicar registros de pacientes en clínica
Implementa en Java o Python una tabla hash con encadenamiento separado (separate chaining), redimensionado dinámico al superar factor de carga 0,75 y una función hash adecuada. …
- Hash Tables
- Collision Resolution
- String Normalization
Data Structures
Cómo funciona
Del briefing al certificado, en seis pasos.
Paso 01
Explora retos alineados con tus estudios.
Paso 02
Acepta el que encaja con tus metas.
Paso 03
Trabájalo con la guía del AI Copilot.
Paso 04
Envíalo para una evaluación estructurada.
Paso 05
Consigue una credencial verificada.
Paso 06
Añádela a LinkedIn con un solo clic.
Roles relacionados que podrías explorar
Ver todos los roles →Software Engineering
Ingeniero/a de Backend
Detrás de cada aplicación que un usuario toca, hay un sistema más silencioso haciendo el trabajo real: enrutando solicitudes, manteniendo el estado, rechazando entradas incorrectas de manera educada. Los ingenieros backend construyen y cuidan esa capa oculta. El rol es parte oficio, parte diplomacia: estás diseñando APIs en las que otros ingenieros confiarán durante años, y una elección descuidada de esquema puede resonar en una empresa por mucho tiempo. Un buen trabajo aquí se parece a código que es aburrido de la mejor manera: predecible bajo carga, fácil de leer para la próxima persona, observable cuando algo se rompe. Los estudiantes crecen en este rol sintiéndose cómodos con Python u otro lenguaje de servidor, y luego aprendiendo cómo se comportan realmente las bases de datos cuando el tráfico se dispara.
Software Engineering
Ingeniero/a de Frontend
Cada botón que un usuario pulsa, cada estado de carga que espera, cada formulario que casi funciona pero no del todo, todo eso pasó por el editor de un frontend engineer. Esta disciplina decide cómo se siente el software. El rol vive en una intersección peculiar entre el diseño empático, los presupuestos de rendimiento y los estándares de accesibilidad, por lo que los estudiantes a los que les gusta tanto el oficio visual como el pensamiento sistémico suelen encontrar aquí su lugar. Crecerías en él construyendo cosas reales con React o Next.js, leyendo código de otras personas y desarrollando el criterio para saber qué se siente bien. Herramientas como GitHub Copilot aceleran la escritura; el juicio sobre cuándo refactorizar y cuándo lanzar sigue siendo tuyo. Los buenos frontend engineers se preocupan de que un lector de pantalla pueda navegar por su trabajo.
Software Engineering
Ingeniero/a Full-Stack
Imagina el pequeño equipo de una startup donde un solo ingeniero lanza una funcionalidad desde el esquema de base de datos hasta el botón desplegado. Esa mentalidad generalista es lo que el ingeniero full-stack aporta, incluso en empresas más grandes. El rol existe porque la mayoría del software útil no respeta el límite entre cliente y servidor, y alguien necesita razonar sobre ambos. Los estudiantes crecen hacia esto siendo curiosos más allá de su zona de confort, aprendiendo PostgreSQL cuando vinieron por React, dominando flujos OAuth cuando vinieron por UI. El trabajo recompensa a quienes prefieren entender un sistema completo antes que perfeccionar una sola parte. Los ingenieros full-stack sólidos saben cuándo pedir ayuda a un especialista, lo cual es en sí mismo una habilidad que vale la pena desarrollar desde temprano. Tú navegarás entre frontend y backend, construyendo APIs con Node.js y TypeScript, diseñando interfaces en React o Next.js, y gestionando bases de datos como PostgreSQL o MongoDB. Implementarás soluciones en la nube con AWS, GCP o Azure, y orquestarás contenedores con Docker y Kubernetes. Automatizarás despliegues mediante CI/CD con GitHub Actions o Jenkins, y monitorearás sistemas con Prometheus y Grafana. Trabajarás con flujos de datos usando Kafka o Airflow, y manejarás almacenes como Snowflake o BigQuery. También integrarás modelos de lenguaje (LLM) mediante RAG, LangChain o herramientas como LangGraph, siempre manteniendo la seguridad con OAuth, JWT y prácticas OWASP. Colaborarás en equipos ágiles usando Jira y Slack, midiendo el éxito con KPIs, OKRs y SLAs.
Software Engineering
Ingeniero/a Mobile
Abre la aplicación en tu teléfono y toca algo. El hecho de que responda al instante, no agote la batería y funcione en un dispositivo de cinco años no es casualidad: un mobile engineer se obsesionó con eso. Este rol es para personas que se preocupan por el oficio en la interfaz donde el software se encuentra con el bolsillo de un humano. Espera días escribiendo código nativo contra el Android SDK o iOS, perfilando animaciones, lidiando con pruebas inestables y guiando lanzamientos a través de App Store Connect. Los estudiantes crecen en ello lanzando su propia aplicación pequeña y sintiendo la brecha entre un demo y algo que un desconocido realmente usaría. Los mobile engineers sólidos tratan la accesibilidad como una línea de base, no como una función.
Equipos del sector tras una década de briefings prácticos
¿Reclutando de este grupo?
Patrocina un reto y conoce candidatos a través de su trabajo real.
Los equipos de la industria pueden diseñar briefings en torno a las habilidades que buscan, y evaluar a los estudiantes por entregables puntuados con rúbrica — no por currículums.
¹ Salario mediano anual calculado a partir del histograma salarial de 50 ofertas de empleo actuales de Adzuna para «Ingeniero de Software» en United States, obtenido el mayo de 2026. Las habilidades provienen de las disciplinas etiquetadas en los retos activos de Ewance para este rol.
Retrato: Foto de Donald Teel en Unsplash.



















































































