• Ver en:
  • Español
  • English

Lenguajes de programación:

  • C/C++ (22)
  • PHP (17)
  • C# (17)
  • JavaScript (13)
  • D (11)
  • Html (11)
  • ActionScript3 (9)
  • CSS (8)
  • Opengl Shader Language (7)
  • Ensamblador (7)
  • HaXe (7)
  • XML (6)
  • TypeScript (6)
  • Java (6)
  • Python (2)
  • Squirrel (2)
  • Dart (1)
  • DivGameStudio (1)

Bases de datos:

  • MySQL (8)
  • MongoDB (6)
  • SqLite (2)
  • Sphinx (2)
  • Redis (1)

Control de Versiones:

  • GIT (11)
  • SVN (10)
  • CVS (2)

Herramientas:

  • Gradle (1)
  • ANT (1)

Metodologías:

  • TDD (14)
  • Pomodoro (2)
  • Kanban (1)

Frameworks:

  • OpenGL (6)
  • Node.JS (3)
  • XNA (3)
  • Express.JS (2)
  • Asíncrono (2)
  • Starling (1)

Idiomas:

  • Inglés (8)
  • Japonés (5)
  • Español (3)
  • Valenciano (1)

Programas:

  • Photoshop (8)
  • Flash (7)
  • Graphviz (1)
  • Freehand (1)
  • Illustrator (1)

Campos:

  • Web (20)
  • Juegos (16)
  • OpenSource (12)
  • Linux (11)
  • Emulación (7)
  • Algoritmia (7)
  • Romhacking (5)
  • Procesado de audio (4)
  • Muxing (4)
  • AST (4)
  • Contenedores (4)
  • Procesado de imágenes (4)
  • Compiladores (4)
  • Traducciones (4)
  • Recompilación dinámica (3)
  • Procesado de video (3)
  • Sockets (3)
  • Archivos Binarios (2)
  • Dibujo (2)
  • Algoritmos de compresión (2)
  • Matemáticas (1)
  • Móviles (1)
Source: XML, Twig

Carlos Ballesteros Velasco

Soy un programador nacido en Valencia (España) de 27 años de edad.

He vivido la mayor parte de mi vida en Valencia, estuve un año en Barcelona y unos meses en Granada. Actualmente vivo en Valencia.

Desde pequeño me han apasionado la programación y los videojuegos, y aunque me especialicé en páginas web (y llevo trabajando con ellas desde los 14 años) también tengo bastante experiencia en otros ámbitos.

En la actualidad tengo un par de proyectos propios en funcionamiento: kawagames y tradcloud.

Visita mi blog profesional: blog.cballesterosvelasco.es

Si tienes alguna propuesta laboral interesante sobre cualquiera de los campos en los que tengo experiencia:

Contacta conmigo: cballesterosvelasco@gmail.com, Linkedin, Youtube, , , Google+, Github

Quitar filtrado de tags

Experiencia Laboral:

2011/10 - *
Programador autónomo.
  • ActionScript3
  • PHP
  • C#
  • Java
  • Html
  • CSS
  • XML
  • JavaScript
  • TypeScript
  • C/C++
  • HaXe
  • MySQL
  • MongoDB
  • Redis
  • Node.JS
  • Express.JS
  • SVN
  • GIT
  • OpenSource
  • Flash
  • Photoshop
  • Linux
  • TDD
  • Juegos
  • Web
  • Pomodoro
september/2013 - *
Technical Lead en akamon.com / mundijuegos.com.
  • GIT
  • SVN
  • TDD
  • Web
  • ActionScript3
  • Java
  • JavaScript
  • TypeScript
  • Flash
  • Starling
  • ANT
  • Gradle
  • Kanban
  • Pomodoro
2013 - september/2013
Programador SDK Senior en akamon.com / mundijuegos.com.
  • GIT
  • SVN
  • TDD
  • Web
  • ActionScript3
  • Java
2012 - *
Fundador y desarrollador de tradcloud.com.
  • Html
  • JavaScript
  • CSS
  • TypeScript
  • Node.JS
  • MongoDB
  • GIT
  • Traducciones
  • Express.JS
  • Photoshop
  • Linux
  • TDD
  • Web
2012
Desarrollo inicial de leyrespuestas.es.
  • Html
  • JavaScript
  • CSS
  • PHP
  • MongoDB
  • GIT
  • TDD
  • Photoshop
  • Linux
  • Web
2009 - *
Co-fundador, programador, maquetador y administrador de sistemas en kawagames.com.
  • Html
  • JavaScript
  • CSS
  • PHP
  • MongoDB
  • GIT
  • Juegos
  • TDD
  • Web
  • XNA
  • HaXe
  • Photoshop
  • Linux
  • OpenGL
  • Opengl Shader Language
2010/10 - 2011-12
Trabajado como programador en The Netwizzy Company para Our.com.
Programación en actionscript3 para juegos de facebook.
Integración con facebook desde html, javascript y as3.
Creado sistema de encriptación y compresión incremental de protocolo para smartfoxserver usando java.
Creado deployer en C#.
Creado servidor de rankings masivos en tiempo real.
  • ActionScript3
  • PHP
  • C#
  • Java
  • Html
  • CSS
  • XML
  • JavaScript
  • MySQL
  • SVN
  • OpenSource
  • TDD
  • Juegos
  • Web
  • Flash
  • Linux
2009 - 2010
Trabajado como web developer en softonic.com.
  • PHP
  • XML
  • C#
  • D
  • MySQL
  • Sphinx
  • SVN
  • TDD
  • Web
  • Linux
2005/Summer
2006/Summer
2007/Summer
2008-07
Trabajando en XARXANET, S.L. Trabajando como programador web para archivospc.
  • PHP
  • Html
  • CSS
  • JavaScript
  • Photoshop
  • Linux
  • XML
  • SVN
  • MySQL
  • Web
2000 - 2008
Trabajado como Freelance para empresas y particulares.
  • PHP
  • Html
  • CSS
  • JavaScript
  • C#
  • XML
  • SVN
  • CVS
  • MySQL
  • Flash
  • Photoshop
  • Linux
  • Web

Certificaciones, títulos:

2010/Summer
Curso de 40 horas de japonés de nivel 1 (organizado por el instituto confucio)
  • Japonés
2009/05
Certificación de MySQL Developer. Carlos Ballesteros Velasco.
www.mysql.com/certification/candidates.php?exam=3#Spain
Candidate ID: 12706
Certificate ID: 230151145
Can be validated on: www.mysql.com/certification
  • MySQL
  • Inglés
2007/03 - 2007/04
Cursillo «Foundations of digital Games» impartido por impartido por Tomi A. Pasanen.
  • C/C++
  • Juegos
2006
Título de bachillerato.
    2005/08
    Ingeniero certificado Zend (De los 1,000 primeros).
    • PHP
    • Inglés
    2002
    Graduado escolar.

      Logros, concursos y olimpiadas:

      2006
      Medalla de oro en la olimpiada informática española (OIE).
      • Algoritmia
      • C/C++
      2006
      Medalla de plata en la olimpiada informática iberoamericana por correspondencia (CIIC).
      • Algoritmia
      • C/C++
      2006
      Medalla de bronce en la olimpiada informática internacional (IOI).
      • Algoritmia
      • Linux
      • C/C++
      • Inglés
      2000
      Clasificación para la fase provincial de la XI Olimpiada Matemática
      • Algoritmia
      • Matemáticas

      Charlas y ponencias:

      2012
      Ponencia sobre tradcloud en la UAB.
      • Inglés
      • Traducciones
      2009
      Charla sobre shaders en softonic. Hablando sobre shaders de PixelBender y shaders en general. Usado mi proyecto phpmedia para la demostración.
      • PHP
      • Opengl Shader Language

      Proyectos opensource:

      2007-2014
      CSPSPEMU

      CSPSPEMU

      Emulador de PSP en C# (originalmente en D).

      Este es el proyecto más largo que he hecho en toda mi vida. (Y aún lo sigo a temporadas.)

      Es un proyecto inmenso de más de 100.000 líneas de código que he ido desarrollando durante años.

      Tiene montones y montones de partes y toca la mayor parte de las cosas que me gustan de la programación: emulación, bajo, medio y alto nivel, compiladores y recompilación dinámica, gráficos, audio, sistemas operativos, interfaces gráficas, C#...

      Actualmente la calidad de la recompilación dinámica de la CPU que he logrado es la mejor de todos los emuladores de PSP que hay hasta la fecha. Aunque mi emulador no es el más compatible todavía, es capaz de ejecutar un montón de juegos homebrew y algunos juegos comerciales.

      • CSPSPEMU
      • CSPSPEMU
      • CSPSPEMU
      • CSPSPEMU
      • CSPSPEMU
      • CSPSPEMU
      • CSPSPEMU
      • CSPSPEMU
      • CSPSPEMU
      • CSPSPEMU
      • CSPSPEMU
      • CSPSPEMU
      • CSPSPEMU
      • CSPSPEMU
      • CSPSPEMU
      • CSPSPEMU
      • CSPSPEMU
      • CSPSPEMU
      • CSPSPEMU
      • CSPSPEMU
      • CSPSPEMU
      • CSPSPEMU
      • C/C++
      • D
      • C#
      • Ensamblador
      • Emulación
      • Recompilación dinámica
      • OpenGL
      • Opengl Shader Language
      • GIT
      • TDD
      • AST
      • Algoritmos de compresión
      • Procesado de imágenes
      • Procesado de audio
      • Procesado de video
      • Contenedores
      • Muxing
      • Archivos Binarios
      • Sockets
      • Linux
      2010-2012

      PSPAUTOTESTS

      Creé un proyecto para hacer tests de integración portables para todos los emuladores de PSP.

      Originalmente lo creé para mi emulador cspspemu, posteriormente lo porteé a jpcsp y al final el proyecto ppsspp lo adoptó y lo hizo crecer enormemente.

      • C/C++
      • Ensamblador
      • Emulación
      • TDD
      2012

      ILCC

      Compilador de C hecho en C# para .NET (genera código IL; ejecutables y dlls).

      El código generado es completamente portable y se puede ejecutar el binario sin modificaciones en cualquier plataforma soportada por MS.NET o MONO.

      Incluye el preprocesador de C y la mayor parte de la sintaxis de C.

      Es capaz de compilar muchos programas sencillos aunque algunos programas más complicados todavía no es capaz de compilarlos.

      El objetivo del proyecto era compilar ffmpeg en código .NET para poderlo usar en mi emulador de PSP.

      Aunque está sin terminar está en un estadio bastante avanzado.

      Permite dumpear el AST del código C como XML de forma que otros lenguajes lo pueden convertir a otras cosas o generar documentación.

      • C/C++
      • C#
      • Compiladores
      • GIT
      • TDD
      • AST
      2011

      SMRR-SERVER

      Simple Massive Realtime Ranking Server

      Creé este proyecto para our.com.

      Es un servidor de rankings muy sencillo: usuarios asociados a una puntuación y a un instante en el que se consigue dicha puntuación.

      Permite insertar puntuaciones en tiempo logarítmico, listar puntuaciones en tiempo lineal y obtener la posición de un usuario en tiempo logarítmico.

      El problema era que la única forma que teníamos de trabajar con millones de puntuaciones y tener operaciones con tiempos razonables era precalcular diariamente todos los datos. Con lo que no escalaba bien y no era en tiempo real.

      Diseñé un algoritmo basado en árboles RedBlack que añadía stats a los nodos de forma que mantenía la inserción logarítmica y permitía localizar en un tiempo logarítmico un nodo por posición.

      • C#
      • Algoritmia
      • Sockets
      • GIT
      • TDD
      2012

      ATPL

      Advanced TemPLates (Node.JS).

      El proyecto este lo empecé en javascript cuando empecé a tocar node.js y quería tener un sistema de templates idéntico o muy similar al Twig de PHP que había estado usando hasta ahora.

      Entonces me di cuenta de que habían otros proyectos que ya pretendían lo mismo "swig" o "twig.js".

      Tras darles casi un año de oportunidades a ambos proyectos y ver que no habían implementado las partes más potentes de twig o que uno de ellos ni siquiera hacía recompilación dinámica, decidí seguir el proyecto.

      Porté el proyecto a typescript, y seguí haciendo TDD y añadiendo testcases interesantes de la parte potente de twig.

      Hace uso de prototyping de javascript para implementar ámbitos muy rápidos y permitir una herencia flexible y potente

      Tiene recompilación dinámica (convierte el template a código javascript que a su vez el V8 convierte en código nativo).

      Ahora mismo ATPL implementa la mayor parte de Twig y está usándose en algún proyecto en producción.

      • JavaScript
      • TypeScript
      • Node.JS
      • TDD
      • Compiladores
      • Recompilación dinámica
      • AST
      2012

      haxe-nme-webp

      Proyecto para cargar imágenes en el formato webp usando haxe-nme.

      Webp soporta compresión lossy y lossless y canal alpha en ambos casos, además de una mejor compresión frente a jpeg y png, así que es un buen sustituto como formato de imagen para juegos, especialmente para móviles donde es interesante que las imágenes ocupen poco.

      Webp está basado en Webm.

      • HaXe
      • C/C++
      • Procesado de imágenes
      2012

      haxe-nme-webm

      Proyecto para reproducir vídeos en webm en haxe-nme.

      Webm es un contenedor basado en ogg/riff, que tiene como códec de vídeo VP8 y como códec de audio Vorbis.

      • haxe-nme-webm
      • HaXe
      • C/C++
      • Muxing
      • Procesado de video
      • Procesado de audio
      • Procesado de imágenes
      • Contenedores
      2012

      haxe-nme-opus

      Proyecto para reproducir audio en formato opus en haxe-nme.

      Opus es un formato de audio que permite encodear bien tanto voz como música. Así que es ideal como códec de audio para juegos para móviles que estén completamente doblados ya que con un bitrate bajo se consigue una calidad de voz muy buena.

      Opus está basado en el contenedor.

      • HaXe
      • C/C++
      • Muxing
      • Procesado de audio
      • Contenedores
      2011

      poly2tri (as3)

      Colaboré en el proyecto poly2tri porteando el código a ActionScript3.

      Hice una pequeña demo combinando la triangulación de la librería porteada, con una búsqueda de caminos triangulated-a-star y el algoritmo del embudo que implementé para la demo, para encontrar el camino directo más corto entre dos puntos en el mesh de triángulos generado.

      Ver demo

      • poly2tri (as3)
      • ActionScript3
      • Algoritmia
      2007

      Emulador de gameboy

      Hice una prueba de concepto de emulador de gameboy en D. Esta versión era interpretada y fue la primera aproximación a la emulación de consolas reales antes de mi emulador de PSP.

      • Thumbnail
      • D
      • Ensamblador
      • Emulación
      • OpenGL
      * - *

      Otros

      A lo largo de mi vida he creado y participado en decenas de proyectos opensource. Puedes ver la mayor parte de ellos en github, google code y sourceforge.

        Demos:

        2007

        Tetris-3D

        Hice un tetris en 3D para la carrera.

        • Thumbnail
        • C/C++
        • OpenGL
        • Juegos
        2007

        Open-Puyo

        • Thumbnail
        • C/C++
        • Juegos
        2009

        Charla de shaders

        • Thumbnail
        • PHP
        • Opengl Shader Language
        2011

        Fuegos artificiales

        • ActionScript3
        2010

        Sample mmorpg

        • Thumbnail
        • D
        • ActionScript3
        • Juegos

        Idiomas:

        Español (Spanish)

        (Nativo)
        Nací en España y soy nativo.
        • Español

        Valenciano/Catalán

        (Medio)
        Nací Valencia y aunque no suelo hablar valenciano, lo entiendo perfectamente.
        • Valenciano

        Inglés (English)

        (Medio)
        Estudié inglés hasta la universidad y leo contínuamente artículos en inglés. Mi comprensión es bastante buena, pero me cuesta entablar conversación.
        • Inglés

        Japonés (日本語)

        (Elemental)
        He estudiado en un par de ocasiones un curso elemental de japonés. Estuve un par de veces en japón. A finales de 2012 he estado recibiendo clases particulares de japonés.
        • Japonés

        Código abierto:

        Ohloh

        Ohloh profile for Carlos Ballesteros Velasco

        • OpenSource
        Github
        • GIT
        • OpenSource
        Googlecode
        • SVN
        • OpenSource
        Sourceforge
        • SVN
        • CVS
        • OpenSource

        Formación Académica:

        2010/Summer
        Curso de 40 horas de japonés de nivel 1 (organizado por el instituto confucio).
        • Japonés
        2009
        Curso de 43 horas de inglés pre-intermediate impartido por Training Express SL.
        • Inglés
        2008
        Curso de 40 horas de japonés de nivel 1 (organizado por el instituto confucio).
        • Japonés
        2007/03 - 2007/04
        Cursillo «Foundations of digital Games» impartido por impartido por Tomi A. Pasanen.
        • Juegos
        2002 - 2006
        Bachillerato Científico-técnico cursado en I.E.S. Misericordia 26 (Valencia).
          * - 2001
          Educación primera, secundaria y elemental: Rodriguez Fornos & Escolapias (Valencia).
            * - *
            Programador autodidacta usando libros e Internet.

              Lenguajes de programación:

              2001 - 2012
              PHP

              PHP

              (Experto)
              Amplios conocimientos de programación en PHP para web, consola y aplicaciones cliente.
              Conocimientos sobre Zend Engine.
              Desarrolladas diversas extensiones para PHP.
              Experiencia dando clases de PHP.
              Experiencia tanto con PHP 4 como con PHP5.
              Título de ingeniero certificado Zend.
              Última versión de php usada: 5.4.
              Blog phpElegante, técnicas y consejos avanzados de programación en PHP.
              • PHP
              • C/C++
              • Web
              2001 - *
              JavaScript

              JavaScript

              (Avanzado)
              Conocimientos de JavaScript (y lenguajes basados en ECMAScript [ActionScript, TypeScript etc.]) aplicado a la Web.
              Trabajado con el api prototype (en un par de ocasiones) y jQuery generalmente.
              Creadas aplicaciones de servidor con node.js.
              Librerías de NodeJS utilizadas: express, consolidate, twig/swig, underscore, mongodb, mocha, should y socket.io.
              • JavaScript
              • Web
              2012 - *
              TypeScript

              TypeScript

              (Avanzado)
              Conocimientos de TypeScript. Varios proyectos en desarrollo.
              Creado repositorio de definiciones en github + creación de definiciones.
              • TypeScript
              • Web
              Dart

              Dart

              (Elemental)
              Realizadas varias pruebas de servidor con Dart.
              Muy cómodo con la sintaxis y el api.
              • Dart
              • Web
              2010 - *
              HaXe

              HaXe

              (Medio)
              Conocimientos medios de HaXe.
              Creado port de juego usando NME.
              Creadas diversas extensiones opensource para NME: webp, webm, opus.
              • HaXe
              • OpenSource
              • Web
              2007 - *
              ActionScript 3

              ActionScript 3

              (Avanzado)
              Creadas aplicaciones en flash usando ActionScript.
              Creado juego, animaciones y aplicaciones.
              Creadas dos máquinas virtuales en flash y evaluadores de expresiones.
              Usado Alchemy/FlashCC para integrar código C++ en flash.
              Creación de ANEs. Creado lector de imágenes webp multiplataforma con ANEs y FlashCC.
              Trabajado con facebook para crear juegos en our.com.
              • ActionScript3
              • Flash
              • Juegos
              • OpenSource
              • Web
              2001 - *
              HTML 5

              HTML 5

              (Medio)
              Conocimientos de HTML 5 y CSS 3 trabajando conjuntamente con JavaScript 1.8.
              Maquetación de decenas de webs desde 2001. Tanto personales, como profesionales para personas y empresas.
              • Html
              • Web
              2006 - *
              Java

              Java

              (Medio)
              Conocimientos básicos de J2SE y J2ME. Desarrollado un par de juegos para móviles en J2ME y alguna demo.
              Conocimiento sobre la arquitecturá orientada a objetos de java. Conocimiento de API básica.
              Conocimientos elementales sobre la plataforma de desarrollo para móviles Android.
              Integrado código C++ en java mediante JNI. Colaborado en el emulador de PSP Jpcsp.
              Creada máquina virtual de java en php.
              • Java
              • C/C++
              • PHP
              • Juegos
              2006 - *
              C#

              C#

              (Avanzado)
              Conocimientos medio de la tecnología .NET y del lenguaje C# para PC, .NET Framework: PocketPC, dispositivos móviles y xbox 360 mediante XNA.
              Creado proyecto opensource de utilidades en C#. CSharpUtils. Creado emulador de PSP en C# con recompilación dinámica sucesor del emulador en D.
              Conocimientos hasta .NET 4.5 incluyendo la arquitectura async + await.
              Desarrollado un prototipo tipo node.js para .net 4.5 (node.net)
              • C#
              • Juegos
              • Emulación
              • TDD
              • Romhacking
              • OpenSource
              • Web
              • Asíncrono
              Python

              Python

              (Básico)
              Utilizado Python en un par de proyectos. Utilizado con google appengine y django.
              • Python
              • Web
              2006 - 2009
              D

              D

              (Avanzado)
              Conocimientos medios y soltura programando en D1.0 y D2.0.
              Desarrollado utilidades gráficas como PopGUI en DFL, multitud de utilidades (romhacking, gestión de sistema...), programas de consola.
              Desarrollado emulador de gameboy, emulador de psp. Desarrollado plugin de cdvd para el emulador pcsx2. Librerías para D.
              • D
              • Juegos
              • Emulación
              • Romhacking
              • OpenSource
              2000 - *

              C/C++

              (Avanzado)
              Amplios conocimientos de programación en C/C++. Trabajado con IDEs: Dev-Cpp y en especial Microsoft Visual Studio 6, 7, 8 (2005), 9 (2008) hasta 2012.
              Creado diversos proyectos para diversas plataformas. Scripts, programas... Usado con SDL y OpenGL para crear juegos y ports de engines.
              Creado compilador de C en C#
              • C/C++
              • C#
              • Juegos
              • Romhacking
              • OpenSource
              1994-*

              Ensamblador

              (Medio)
              Conocimientos de la arquitectura 80386, funcionamiento e instrucciones básicas.
              Conocimientos mínimos sobre otros procesadores como ARM y SH2. Conocimientos mas avanzados sobre Z80 y MIPS r4000.
              Conocimiento sobre procesadores (mips): allegrex (PSP) y emotion engine (PS2)...
              Conocimientos básicos sobre PPC (PowerPC) (procesador original de MAC, GameCube, Wii, PlayStation 3 y XBOX360).
              Conocimiento de las máquinas virtuales C# (hecha recompilación dinámica MIPS -> .NET IL) y Java (hecho intérprete en php).
              • Ensamblador
              • Juegos
              • Emulación
              • Romhacking

              Bases de datos:

              2000-*

              MySQL (SQL)

              (Avanzado)
              Conocimiento a nivel avanzado de la base de datos MySQL
              y de aplicación usando PHP mediante extensiones mysql, mysqli y PDO.
              Certificación de MySQL.
              • MySQL
              2008-*

              SqLite (SQL)

              (Medio)
              Conocimiento a nivel medio de la base de datos SqLite y de aplicación usando PHP y C#.
              • SqLite
              2010-*

              MongoDB (NoSQL)

              (Medio)
              Conocimiento a nivel medio de MongoDB. Creadas varias páginas usando MongoDB sin autosharding.
              • MongoDB
              2008

              Sphinx (NoSQL/SQL)

              (Elemental)
              Conocimiento elemental sobre Sphinx para búsquedas en documentos.
              • Sphinx

              Ofimática:

              2008-2010

              Open Office

              (Básico)
              Conocimiento a nivel de usuario.
                2002-*

                Microsoft Office

                (Medio)
                Conocimiento a nivel de usuario de Word, Excel, Access y Powerpoint.
                  2006-*

                  Google Office

                  (Medio)
                  Conocimiento básico sobre Google Docs y Hojas de Cálculo.

                    Algunos campos tratados:

                    Aplicaciones Cliente/Servidor

                    (Avanzado)
                    Experiencia creando aplicaciones cliente/servidor.
                    Bots, clientes y servidores para diversos protocolos.
                    Experiencia en diversos lenguajes de programación: C#, PHP, C/C++ y D.
                    • C#
                    • PHP
                    • C/C++
                    • D
                    • Sockets

                    Scripts de consola

                    (Avanzado)
                    Experiencia creando programas de consola para automatizar tareas: backups, spiders, búsqueda, renombrado de ficheros...
                    • C#
                    • PHP
                    • C/C++
                    • D
                    • Python

                    Videojuegos

                    (Avanzado)

                    Programación de videojuegos en 2D para ordenador (C/C++, PHP, DIV(Fenix,CDIV,DIV1/2,Lunea)); dispositivos móviles: Pocket PC (.NET) y Móviles con J2ME; consolas: GBA, Nintendo DS y PSP; juegos via web (Javascript+DHTML, FLASH+ActionScript). Juegos online (servidor+cliente). Uso de shaders opengl (fragment y vertex shaders). Conocimiento del pipeline de opengl. Conocimientos de SDL y Allegro. Gráficos 3D.

                    Ejemplos: Tetris en 3D con opengl, GameLib, Lunea, phpmedia, emulador de gameboy, emulador de psp, juegos via web. Conocimientos elementales del API de Havok, Ogre3D y similares. Trabajado con C# para XNA (PC y XBOX360). Creado engine para iPhone usando Squirrel y OpenGL|ES. Trabajado en The Netwizzy Company desarrollando plataforma de juegos en ActionScript 3.

                    Trabajado con texturas en formato comprimido DXT1, DXT3, DXT5 y variantes. Creado decompresor. Trabajado con texturas swizzleadas en formado de la máquina: (PSP, Xbox360 y Sega Saturn). Pathfinding A* en matrices bidimensionales y pathfinding TA* sobre superficies trianguladas junto al algoritmo del embudo para encontrar camino directo.

                    • Ensamblador
                    • C/C++
                    • PHP
                    • DivGameStudio
                    • C#
                    • Java
                    • JavaScript
                    • Html
                    • ActionScript3
                    • Opengl Shader Language
                    • XNA
                    • Squirrel
                    • OpenGL
                    • GIT
                    • SVN
                    • Juegos
                    • Algoritmia
                    • Flash
                    • Photoshop
                    • OpenSource

                    Romhacking

                    (Avanzado)

                    Romhacking de juegos. Arquitecturas: GB/GBA DS y SNES; PSX, PS2 y PSP; GB, GBA, NDS. Conocimientos de MIPS y Z80. Traducción de juegos con textos comprimidos y sin comprimir. Modificación de punteros para textos mas largos; edición gráfica de fuentes y otros gráficos. Traducción del Tales of Eternia (PSX + PSP), Tales of Destiny (PSX), Tales of the Abyss (PS2), Suzumiya Haruhi no Yakusoku (PSP), Tales of Vesperia (360). Otros juegos.

                    Porting de videojuegos Reprogramado juego de PC mediante ingieniería inversa (romhacking) y reprogramado usando SDL, SDL_mixer, SDL_image, SDL_ttf y smpeg. Portado a PC, Linux, Mac, PSP, y DreamCast. Tratado problema de lecturar en dispositivos ópticos, problemas con memoria limitada y de optimización de rendimiento. Implementado ringbuffer como filter stream para SDL_RWops.

                    • Ensamblador
                    • C/C++
                    • C#
                    • D
                    • Romhacking

                    Edición de video

                    (Medio)

                    Edición de un videos. Poner subtítulos, quitar subtítulos. Añadir títulos. Karaokes. Encodear. Muxear. Demuxear. Conceptos sobre: streams, filtros, layers, wrappers, codecs, containers...

                      Creación de GUIs (Graphical User Interfaces)

                      (Avanzado)

                      Creación de aplicaciones gráficas de entorno de usuario. Hechas con VB, C#, DELPHI y D+DFL. Trabajado con componente scintilla (www.scintilla.org/).

                      • D
                      • C#
                      • Html

                      Emulación

                      (Experto)

                      Extensa experiencia en depuración y trazado a nivel de ensamblador en emuladores. Aplicados conceptos de recompilación dinámica aplicada a la emulación. Creado emulador de PSP en modo intérprete (en D) y posteriormente reprogramado para usar recompilación dinámica (en C#). Emulación parcial HLE. Prototipos de emulación LLE. Soporte parcial Allegrex (mayor parte cpu y fpu, gran parte de la vfpu). Capaz de ejecutar homebrews y juegos comerciales. Desensamblador. Visor de memória. Registros. Trazado. Depuración. Conocimiento avanzado sobre la arquitectura psp. Creado emulador de gameboy.

                      • D
                      • C#
                      • Emulación
                      • Compiladores
                      • Recompilación dinámica

                      Programación Web (con PHP)

                      (Avanzado)
                      Gran experiencia de programación Web. Uso de estándares HTML5+CSS3, XML, JS y (PHP + MYSQL + MongoDB).
                      Algunos temas tratados:
                      • PDO; PHP >= 5.4
                      • Creación de sistemas de caché a varios niveles
                      • Creación de imágenes dinámicas usando PHP y GD2. Imagemagick.
                      • Uso de MySQL y SQLite como soporte de bases de dato. Usados tanto con su api específica como con PDO.
                      • Experiencia con expresiones regulares POSIX y PREG
                      • Parseo y creación de XMLs
                      • Creación de Spiders y crawlers
                      • Creación de sistemas internos potentes y eficientes
                      • Creación dinámica de animaciónes flash con la extensión ming
                      • Colaboración en proyectos opensource a través de CVS, SVN y GIT.
                      • Creación de aplicaciones Web interactivas con JavaScript: creación y manipulación dinámica de elementos, AJAX, JSON...
                      • Creación de extensiones en PHP4/5 mediante Zend Engine 2. Creación de wrappers C para PHP
                      • Conocimientos sobre el protocolo fast-cgi y creación de aplicaciones en C nativas
                      • Experiencia utilizando firebug, wireshark y logs de apache para el desarrollo y depuración web.
                      • Configuración y administración del servidor web apache y nginx.
                      • Experiencia con algunos mods de apache como mod_rewrite
                      • Trabajado con sphynx para búsquedas.
                      • Comercio electrónico
                      • Implementación de pasarelas de pago SMS e integración con paypal.
                      • [...]
                      • Html
                      • CSS
                      • PHP
                      • MySQL
                      • MongoDB
                      • SqLite
                      • XML
                      • Web

                      Creación y edición de imágenes

                      Creación de dibujo a mano, con tableta, TabletPC. Contorneado de imágenes mediante freehand, flash, photoshop y ilustrator. Coloreado de imágenes con flash y photoshop. Creación digital de imágenes. Retoque fotográfico.

                      • Creación y edición de imágenes
                      • Creación y edición de imágenes
                      • Creación y edición de imágenes
                      • Creación y edición de imágenes
                      • Creación y edición de imágenes
                      • Creación y edición de imágenes
                      • Creación y edición de imágenes
                      • Creación y edición de imágenes
                      • Creación y edición de imágenes
                      • Creación y edición de imágenes
                      • Creación y edición de imágenes
                      • Creación y edición de imágenes
                      • Creación y edición de imágenes
                      • Creación y edición de imágenes
                      • Photoshop
                      • Flash
                      • Freehand
                      • Illustrator
                      • Dibujo
                      • Opengl Shader Language
                      • JavaScript

                      Dibujo

                      En ocasiones, como hobby suelo copiar algunos dibujos y hacer los míos propios.

                      • Dibujo
                      • Dibujo
                      • Dibujo
                      • Dibujo
                      • Dibujo
                      • Dibujo
                      • Dibujo
                      • Dibujo
                      • Dibujo
                      • Dibujo

                      Graphviz

                      He utilizado en varias ocasiones el programa graphviz para renderizar grafos.

                      • Graphviz
                      • Graphviz
                      • Graphviz
                      • Graphviz
                      • Graphviz

                      Administración de sistemas Linux aplicado a la web

                      (Medio)

                      Conocimiento sobre comandos linux. Conocimientos básicos de bash. Instalación y configuración de apache, php, mysql, sqlite y otros en sistemas linux, compatibles Debian y Fedora Core.

                      • Linux

                      Desarrollo Multithreading

                      (Medio)

                      Creación de programas con varios threads; mutex, semáforos etc. balanceado de trabajo de cada thread. Cada vez mas importante ya que cada vez hay mas procesadores; ordenadores y consolas con varios procesadores y/o cores. Implementación de primitivas de sincronización en el kernel para el emulador de psp. Trabajado con OpenCL y shaders.

                      • Asíncrono

                      Escritura de código en ensamblador

                      (Medio)

                      Capacidad de escribir código en ensamblador optimizado, partes críticas y hacer uso de instrucciones avanzadas para diferentes plataformas (MIPS, ARM básico, Z80, PowerPC, 8086+). Conocimiento sobre las tecnologías SIMD (Single Instruction Multiple Data) para aplicaciones multimedia para PC: MMX, SSE, SSE2, 3DNOW (básico), VFPU de Allegrex y NEON de ARM.

                      • Ensamblador

                      Desarrollo de videojuegos para móvil

                      (Medio)

                      Experiencia creando aplicaciones videojuegos para móviles usando j2me MIDP 1.0/2.0 y CLDC 1.0/1.1. Conocimientos de .NET Compact Framework.

                      Desarollado port comercial de juego multiplataforma: iphone, android, windows phone 7, xbox 360, pc, linux y mac. “Curse of the Rock Manor”

                      Desarrollado engine y juego para iPhone (PushBox).

                      • Thumbnail
                      • Móviles
                      • Squirrel
                      • C/C++
                      • C#
                      • OpenGL
                      • HaXe
                      • Opengl Shader Language
                      • XNA
                      • Juegos

                      Conocimientos variados

                      Trabajado con estándares ISO, UDF. Gran capacidad de trabajo con formatos binarios en diversos lenguajes de programación.

                      Conocimiento y gran práctica sobre/con métodos de compresión (creación de compresores y decompresores): Huffman, LZ, RLE y derivados. Conocimientos de zlib y png. Conocimientos de mejoras de compresión/filtros específicas para imágenes. RLE/LZ por píxeles, separación por componentes. Implementación de decodificador de png; filtros de png: Sub, Up, Average y Paeth. Sistemas de encriptación de protocolo y de archivos para plataforma de juegos online.

                      • Algoritmos de compresión
                      • Procesado de imágenes
                      • Procesado de audio
                      • Procesado de video
                      • Contenedores
                      • Muxing
                      • Archivos Binarios

                      Traducción

                      Experiencia de traducción de videojuegos (inglés->español) extraoficialmente. Experiencia utilizando diccionarios online. Urbandictionary, babylon y rikaichan...

                      Completadas varias traducciones no oficiales.

                      • Traducciones
                      • Inglés
                      • Español

                      Localización de software

                      Experiencia con localización de software y páginas web. Conversión y trabajo nativo en codificaciones UTF-8, ISO-8869-1, Shift-JIS (japonés) y GB2312 (chino). Experiencia tratando con textos en idiomas orientales como chino y japonés.

                      • Traducciones
                      • Inglés
                      • Español
                      • Japonés

                      Compiladores

                      Creado compilador y máquina virtual completamente funcionales para lenguaje de scripting. Con estructuras de control básicas, foreach, funciones, delegados, generadores y clases. Optimización de código.

                      Creado compiladores de C y PHP en C#.

                      Creados un par de sistemas de templates con herencia basados en Twig en C# y en JavaScript/TypeScript.

                      • C#
                      • D
                      • C/C++
                      • PHP
                      • JavaScript
                      • TypeScript
                      • Compiladores
                      • AST