Jobs

-

Technical lead at akamon.com / mundijuegos.com.

GIT SVN TDD Web ActionScript3 Java JavaScript TypeScript Flash Starling ANT Gradle Maven Kanban Scrum Pomodoro WebGL Stage3D Games Promises Android iOS Mobile IntelliJ Kotlin JTransc Libgdx
-

Senior SDK programmer at akamon.com / mundijuegos.com.

GIT SVN TDD Web ActionScript3 Java Games Promises IntelliJ FlashDevelop

Founder and developer of tradcloud.com.

HTML JavaScript CSS TypeScript Node.JS MongoDB GIT Translations Express.JS Photoshop Linux TDD Web

Initial development of leyrespuestas.es.

HTML JavaScript CSS PHP MongoDB GIT TDD Photoshop Linux Web
Freelance

Freelance programmer.

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 Games Web Pomodoro Blender
-
  • Worked as programmer for The Netwizzy Company for Our.com.
  • AS3 programming for facebook games.
  • Facebook integration for html, javascript and as3.
  • Creating a protocol encryption system and incremental compression for smartfoxserver using java.
  • Created deployer using C#.
  • Created a realtime massive ranking server.
HTML JavaScript CSS PHP MongoDB GIT Games TDD Web XNA HaXe Photoshop Linux OpenGL Shading Language FlashDevelop
-

Web developer at softonic.com.

PHP XML C# D MySQL Sphinx SVN TDD Web Linux

Co-founder, programmer, site layout and sysadmin of kawagames.com.

HTML JavaScript CSS PHP MongoDB GIT Games TDD Web XNA HaXe Photoshop Linux OpenGL Shading Language
Xarxanet

Worked for XARXANET, S.L. Worked as web programmer (frontend and backend) for archivospc.

PHP HTML CSS JavaScript Photoshop Linux XML SVN MySQL Web
-
Freelance

Worked as freelance for business and individuals.

PHP HTML CSS JavaScript C# XML SVN CVS MySQL Flash Photoshop Linux Web

Certifications

Japanese

Course of 40 hours of japanese level 1 (taught by “instituto confucio” at UV)

Japanese
Mysql Certificate
  • MySQL Developer Certification. Carlos Ballesteros Velasco.
  • http://www.mysql.com/certification/candidates.php?exam=3#Spain
  • Candidate ID: 12706
  • Certificate ID: 230151145
  • Can be validated on: www.mysql.com/certification
MySQL English
-
Foundation Games

«Foundations of digital Games» workshop from Tomi A. Pasanen at UPV.

C/C++ Games
Bachelror

Baccalaureate degree.

Zend

Zend certified engineer (one of the first 1,000).

PHP English
School

Graduated at school.

Achievements, awards, contests and olympiads

Oie

Gold medal in “olimpiada informática española” (OIE).

C/C++ Algorithmics
Ioi

Bronze medal in “International Olympiad in Informatics” (IOI).

C/C++ Algorithmics
Ciic

Silver medal in “informática iberoamericana por correspondencia” (CIIC).

C/C++ Algorithmics
Mathematics

Clasified for the provincial phase of the XI Mathematic Olympiad

Mathematics Algorithmics

Talks and Lectures

Tradcloud

Founder and developer of tradcloud.com.

HTML JavaScript CSS TypeScript Node.JS MongoDB GIT Translations Express.JS Photoshop Linux TDD Web
Shaders

Presentation about shaders at softonic. Explained PixelBender shaders and shaders in general. Used my phpmedia project for the exposition.

PHP OpenGL Shading Language

Projects

-
PSP Emulator (dpspemu, cspspemu, jspspemu)

PSP emulator originally made using D, then ported to C# and then to TypeScript working in the browser.

This is the largest project I have done in my whole life up to date. And I’m still updating it when I have some spare time.

It is a really really huge project that includes more than 100,000 lines of code and that I have been developing in the coming years.

It has lots and lots of things and uses most of the things I like from programming: emulation, low, medium, and high levels, compilers, dynamic recompilation / JIT, graphics, audio, operating systems, UIs…

Even when my emulator is not the most compatible out there, it is capable of running lots of homebrew games and some commercial games.

C/C++ D C# JavaScript TypeScript Assembler Emulation Dynamic Recompilation OpenGL OpenGL Shading Language GIT TDD AST Compression Algorithms Image Processing Audio Processing Digital Signal Processing Video Processing Containers Muxing Binary Files Sockets Linux Windows Mac Android iOS Windows Phone
-
Kotlin.es

Created a spanish kotlin community. kotlin.es It is a blog published at github using jekyll with information and articles about kotlin in spanish language.

Kotlin HTML Jekyll IntelliJ Spanish
ILCC

C compiler made using C# for .NET (it generates IL code; executables and DLLs).

Generated code is completely portable and you can execute that binary without modifications in any platform supported by Microsoft .NET or Mono.

It includes C preprocessor and most of the C syntax.

It is capable to compile lots of simple programs, though it cannot compile the most complicated ones.

The main objective for that was to compile ffmpeg into .NET code in order to be able to use in my PSP emulator.

Even when it is not finished it is in a pretty advanced stage.

It allows to dump AST from C code as XML so any other languages can convert them into other stuff or to genreate documentation.

C/C++ C# Compilers GIT TDD AST
haxe-nme webm, webp and opus

I created three projects/libraries for multimedia playing in haxe. Those were: haxe-nme-webp, haxe-nme-webm and haxe-nme-opus.

Those aimed to be able to:

Decode webp images. Webp is a pretty efficient image format. Supporting lossy and lossless compression and alpha channel in both cases, as well as a better compression rate than jpeg and png. So it is a suitable image format suitable for games, specially on mobile where it is interesting having images in a fraction of the size.

Decode and play webm videos. Webm is a container based on ogg/riff, that uses VP8 as video codec and vorbis as audio codec. So I included both video and audio decoders.

Decode and play opus audio. Opus is a great audio format that allows a huge compression rate and handles pretty fine some use cases including speech and music and it is free to use.

HaXe C/C++ Muxing Video Processing Audio Processing Image Processing Containers
atpl.js

Advanced TemPLates (Node.JS).

I started this project in javascript when I begin to use node.js. I wanted to have an identical template engine or very similar to PHP’s Twig / Python Django that was what I was using until then.

Then I realized that there were some other projects that aimed to do the same thing: “swig” and “twig.js”.

After a couple of years giving them opportunities to both projects I realized that they didn’t implemented the most powerful twig parts and that one of them didn’t even make dynamic recompilation, so I decided to continue with the project.

I ported the project to typescript, and continued making TDD and adding interesting test cases from the powerful twig part.

It uses extensively the prototyping part on javascript in order to implement very fast scopes and allow a flexible and powerful inheritance.

It has dynamic recompilation (translates template into equivalent Javascript Code, that ends being converted into native code by the V8 runtime).

Right now ATPL implements most of the parts from twig and it is being used in some production projects.

JavaScript TypeScript Node.JS TDD Compilers Dynamic Recompilation AST
smrr-server

Simple Massive Realtime Ranking Server

It is a very simple ranking server: users have a score associated and an instant associated to that user/score pair.

It allows to insert scores in logarithmic time, to list scores in linear time and to get the position of an user in logarithmic time.

The problem was that the only way we have to handle millions of scores and have reasonable times was to precalculate in a daily basis all the data. So it was not scaling well and was not realtime.

I dessigned an algorithm based in RebBlack trees that added stats to all nodes in a way that keeped logarithmic insertion and allowed to locate also in logarithmic time a node by position.

C# Algorithmics Sockets GIT TDD
poly2tri (as3)

I collaborated in the project poly2tri porting the code to ActionScript3.

The library aims to make possible to triangulate a set of polygons so you can handle them easily, for accelerated APIs drawing, physics and path fidning.

I made a small demo combining the triangulatiom I made of the ported library, with a path search using a TA* (Triangulated A Start) plus a funnel algorithm implementations in order to find the shorted direct path between two points of a mesh of generated triangles.

Demo here

ActionScript3 Algorithmics
-
pspautotests

I created a project to do portable integration tests for all the PSP emulators out there.

Initially I created them for my emulator cspspemu, and later I ported it to jpcsp and it ended being adopated by ppsspp emulator, which made it grow a lot.

C/C++ Assembler Emulation TDD
gameboy emulator

Started a proof of concept gameboy emulator using D. That version was interpreted and was the first approax to real devices before my psp emulator.

D Assembler Emulation OpenGL
-
TalesDepot

TalesDepot is a website for publishing stories. Plain short stories, choose your own adventure stories, and visual novels.

Node.JS JavaScript Await/Async Express.JS
Other

In my life I have created and contributed to dozens of opensource projects. You can access most of them at github, google code and sourceforge.

Languages

Spanish

I was born in Spain and I’m native.

Spanish
English

I studied english until the university and I’m reading english articles all the days. I can understand english pretty well, but my speech skills are rather limited at this point.

English
Valenciano/Catalán

I was born in Valencia/Spain and even when I’m not usually speaking it, I can understand it without any issue.

Valenciano
Japanese (日本語)

I have studied japanese. I have been a couple of times in japan.

Japanese

Open Source Software

OpenHub

OpenSource

Github

OpenSource GIT

Google Code

OpenSource SVN

Source Forge

OpenSource CVS SVN

Academic

English

Pre-intermediate, 43 hours englush course taught by Training Express SL.

English
Japanese

Level 1, 40 hours japanese course (from instituto confucio). Resumed at 2010.

Japanese
-
Foundation Of Digital Games

«Foundations of digital Games» taught by Tomi A. Pasanen.

Games
-
Bachelror

Scientific-Technical Bachelor’s Degree at I.E.S. Misericordia 26 (Valencia).

-
Primary

Early education, elementary and high school: Rodriguez Fornos & Escolapias (Valencia).

Autodidact

Self-taught, autodidact and proactive person, reading books and internet.

Programming Languages

-
Kotlin
(Advanced)

Ported framework from as3 to kotlin.

Kotlin Games Web Emulation Romhacking
Scala
(Medium)

Created incomplete java aot compiler using scala.

Scala aot Java
-
TypeScript
(Advanced)

Knowledge about TypeScript. Several projects in development. Created definition repository at github + created several definitions of some javascript libraries for backend and frontend.

TypeScript Web
Python
(Basic)

Used python in a couple of projects. Used google appengine and django.

Python Web
-
Dart
(elemental)

Made several server prototypes with Dart. Started a xmpp library for Dart. Very easy with Dart’s syntax and API.

Dart Web
-
Haxe
(Advanced)

Medium knowledge about Haxe. Created game port using haxe NME. Created several opensource extensions for NME and openfl: webp, webm, opus and cairo.

HaXe OpenSource Web
-
ActionScript 3
(Advanced)

Created flash games, animations and applications using ActionScript. Created two virtual machines and expression evaluators in flash. Used Alchemy/FlashCC to integrate C++ code in flash + used alchemy opcodes manually for fastest performance. Created ANEs. Created multiplatform webp image decoding with ANEs and FlashCC. Worked with facebook APIs to create games in our.com.

ActionScript3 Flash Games OpenSource Web
-
Java
(Advanced)

Basic knowledge about J2SE and J2ME. Developed a couple of games for mobile with J2ME and some demos. Knowledge about java OOP. Knowledge about basic API. Android development. Integrated C++ code in java using JNI. Collaborated in Jpcsp java psp emulator. Created Java Virtual Machine in PHP.

Java C/C++ PHP Games
-
D
(Advanced)

Medium knowledge about programming in D 1.0 and D 2.0. Developed graphical utilities like PopGUI in DFL, lots of utilities including romhacking and terminal tools. Developed gameboy emulator and psp emulator. Developed cdvd plugin for pcsx2 emulator. Some D libraries.

D Games Emulation Romhacking OpenSource
-
C#
(Advanced)

Medium knowledge about .NET technology and C# language for PC, .NET Framwork: PocketPC, mobile device, XBOX360 using XNA, and univeral applications. Created opensource project for C# utilities. CSharpUtils. Created PSP emulator in C# with dynamic recompilation as a successor of my psp emulator in D. Knowledge until .NET 4.5 including all the work of async + await. Developed a prototype of node.js for .net 4.5 (node.net).

C# Games Emulation TDD Romhacking OpenSource Web Await/Async
-
PHP
(Expert)
  • Wide knowledge about PHP for web, terminal and client applications.
  • Knowledge about Zend Engine.
  • Develop several extensions for PHP.
  • Experience teaching PHP.
  • Experience with PHP4 as well as PHP5.
  • Zend certification.
  • Last PHP version used: 5.6.
  • Created phpElegante blog, techniques and advanced tips about PHP programming.
PHP C/C++ Web
-
JavaScript
(Advanced)
  • Knowledge about JavaScript (and other languages based on ECMAScript like AS3, TypeScript and so on) applied for web including both frontend and backend.
  • Worked with prototype framework as well as jQuery.
  • Created server applications using node.js.
  • Some NodeJS libraries used: express, consolidate, twig/swig, underscore, mongodb, mocha, should, socket.io…
JavaScript Web
-
HTML5
(Advanced)

Knowledge about HTML 5 and CSS 3, worked in conjuntion with JavaScript Ecmascript/2015. Created website layouts of dozens of webs since 2001. Personal websites as well as professional for other people and business.

HTML Web
-
C/C++
(Advanced)

Extensive knowledge about C/C++. Worked with IDEs: Dev-CPP and specially Microsoft Visual Studio 6, 7, 8 (2005), 9 (2008) and used until 2012. Created several projects for several platforms. Scripts, programs… Used SDL and OpenGL to create games and port engines. Created a C compiler in C#.

C/C++ C# Games Romhacking OpenSource
-
Assembler
(Medium)

Knowledge about 80386 architecture, how it works, registers and basic instruction set. Some knowledge about ARM and SH2. More advanced knowledge about Z80 and MIPS r4000. Knowledge about MIPS processors: allegrex (PSP) and emotion engine (PS2)… Basic knowledge about PPC (PowerPC) (original MAC processor, GameCube, Wii, PS3 and XBOX360). Knowledge about C# virtual machine (created PSP emulator) as well as Java VM (created a PHP interpreter and a AOT in kotlin).

Assembler Games Emulation Romhacking

Databases

-
MongoDB (NoSQL)
(medium)

Medium knowledge about MongoDB. Created several pages using MongoDB without autosharding.

MongoDB
-
SqLite (SQL)
(medium)

Medium knowledge about SqLite using PHP, JavaScript and C#.

SqLite
-
Sphinx (NoSQL/SQL)
(elemental)

Basic knowledge Sphinx for document search.

Sphinx
-
MySQL (SQL)
(advanced)

Advanced knowledge aboyt MySQL database. Used from PHP using mysql, mysqli and PDO php extensions. MySQL certificate.

MySQL

Office

-
Open Office
(basic)

I have used both Open Office and Libre Office.

-
Google Office
(medium)

Basic knowledge about Google Docs and Google Spreadsheets.

-
iWorks
(medium)

Basic knowledge about Apple’s Pages, Numbers and KeyNote.

-
Microsoft Office
(medium)

I have worked with Word, Excel, Access and Powerpoint. I can create styled documents, spreadsheets, databases and presentations.

Experience in some knowledge fields

Web (HTML+PHP)
(advanced)

Great experience in web programming .Using standards HTML5+CSS3, XML, JS and (PHP + MySQL + MongoDB). Some fields treated:

  • PDO; PHP >= 5.4
  • Multi-layered cache system.
  • Image creation and manipulation using PHP-GD2 and Imagemagick.
  • Using MySQL and SQLite as db engines. Used their specific API as well as PDO unified API.
  • Experience using regular expressions POSIX and PREG.
  • XML parsing and creation using streaming apis and dom apis.
  • Created spider and crawlers.
  • Created powerful, small and fast framework.
  • Created flash animations dinamically using ming extension.
  • Opensource collaboration using CVS, SVN and GIT.
  • Created interactive web apps using JavaScript.
  • Created PHP4/5 extensions using Zend Engine 2. Created C wrappers for PHP.
  • Knowledge about fast-cgi protocol and creating native C apps.
  • Experience using intellij, firebug, wireshark and apache logs to develop and debug web apps.
  • Configuration and administration of apache and nginx web servers.
  • Experience with some of the apache and nginx mods as mod_rewrite.
  • Worked with sphinx for searchs.
  • Experience with e-commerce and social networks, including sms payments, paypal, facebook, google, amazon…
  • In later years I have strongly used node.js and typescript
HTML CSS PHP MySQL MongoDB SqLite XML Web
Videogames
(advanced)

2D videogame programming for computers (C/C++, PHP, DIV(Fenix,CDIV,DIV1/2,Lunea)); mobile devices: Pcket PC (.NET) and Mobiles with J2ME; consoles: GBA, NDS and PSP; web games (Javascript+DHTML, FLASH+ActionScript). Online games (server+client). GLSL (opengl shaders) (fragment and vertex shaders). Knowledge about the opengl pipeline. Knowledge about SDL and Allegro. 3D graphics.

Examples: 3D Tetris using opengl, GameLib, Lunea, phpmedia, gameboy emulator, psp emulator, web games. Very basic knowledge about Havok, Ogre3D and similar APIs. Worked with C# for XNA (PC y XBOX360). Create iPhone engine using Squirrel and OpenGL_ES. Worked in The Netwizzy Company developing game platform in ActionScript 3. Worked in Akamon Entertainment in AS3 and Kotlin for a game platform.

Worked with compressed texture formats including DXT1, DXT3, DXT5 and variants and PVRTC and ETC1. Created texture decompressor. Worked with swizzled textures in specific machine format: (PSP, Xbox360 and Sega Saturn). A* Pathfinding for bidimensional matrices and pathfinding TA* over triangulated surfaces as well as implemented the funnel algorithm to find a direct path.

Assembler C/C++ PHP DIV Game Studio C# Java JavaScript HTML ActionScript3 OpenGL Shading Language XNA Squirrel OpenGL GIT SVN Games Algorithmics Flash Photoshop OpenSource
Video editing
(medium)

Video editing. Put subtitles and remove subtitles. Add titles, Karaokes. Encoding. Muxing/Demuxing. Knowledge about video terminology: streams, filters, layers, wrappers, codecs, containers…

Translation
(medium)

Experience with videogame translation (english -> spanish) unofficially. Experience using inline dictionaries. Google translate, RAE, urbandictionary, babylon and rikaichan.

Completed several unofficial translations.

Translations English Spanish Japanese
System Administrator
(medium)

Windows, mac and linux user. Knowledge about linux commands. Basic knowledge about bash. Installation and configuration of nginx, apache, php, mysql, mongodb, redis, virtualbox using linux systems, including Debian compatible and Fedora/Redhat.

Linux Mac Nginx Apache MongoDB Redis Virtualbox MySQL
Software Localization
(medium)

Experience with software localization and web pages. Encoding conversion and problem handling with: UTF-8, ISO-8869-1, Shift-JIS (japanese) and GB2312 (chinese). Experience working with texts in oriental languages as chinese, japanese and korean.

Translations English Spanish Japanese
RomHacking
(advanced)

Romhacking for unofficial game translation. Architectures: GB/GBA DS y SNES; PSX, PS2 y PSP; GB, GBA, NDS Knowledge about MIPS and Z80. Translated games with plain text and compressed text. Reallocating texts and modifying pointers to get able to have larger texts; image and font editing. Translation of Tales of Eternia (PSX + PSP), Tales of Destiny (PSX), Tales of the Abyss (PS2), Modificación de punteros para textos mas largos; edición gráfica de fuentes y otros gráficos. Suzumiya Haruhi no Yakusoku (PSP), Tales of Vesperia (360) and other games.

Old videogame porting. Reprogrammer PC game using reverse engineering (romhacking) and reprogrammed using SDL, SDL_mixer, SDL_image, SDL_ttf and smpeg. Ported to PC, Linux, Mac, PSP and DreamCast. Handled problems with optical disc reading, handled problems with limited memory and optimizing performance. Implemented ringbuffer as a filter stream for SDL_RWops.

Assembler C/C++ C# D Romhacking
Operating Systems

I have user knowledge about ms-dos, windows, linux and mac operating systems. I’m comfortable with both mac and windows keyboards. I have used in a daily basis android, ios and windows phone. I’m usually using a macbook to develop but I have been working on windows machine lots of years.

Android iOS
Multithreaded Development
(medium)

Created multithreaded apps; mutex, semaphores… balancing all the work with each thread. Implemented synchronization primitives for a hle psp emulator kernel. Worked with OpenCL and shaders. Specially interested in single-threaded asynchronous applications and lock-free workers not sharing state but using message passing.

Await/Async
Mobile Game Development
(medium)

Experience creating mobiel apps using j2me MIDP 1.0/2.0 and CLDC 1.0/1.1. Knowledge about .NET Compact Framework.

Developed engine and game for iPhone (PushBox).

Mobile Squirrel C/C++ C# OpenGL HaXe OpenGL Shading Language XNA Games Java Kotlin Await/Async
Misc knowledge
(medium)

Working with ISO, UDF and other standards. Created reading implementations. Great ability to work with binary formats in all kind of programming languages.

Knowledge and practice about compression methods (compressor and decompressors): Huffman, LZ, RLE and derivates. Knowledge about ZLib and PNG. Knowledge about how to compress better, and specific filters for images; RLE/LZ per pixel instead of per byte, separating componentes… Implemented a PNG decoder; PNG filters: sub, up, average and paeth. Protocol and file encryption for an online game platform.

Compression Algorithms Image Processing Audio Processing Video Processing Containers Muxing Binary Files
Creation and image editing
(advanced)

Some experience with handrawing, and creating digital art with drawing tablets, tabletpc. Vertorization using freehand, flash, photoshop and illustrator. Image coloring with flash and photoshop. Digital image creation and composition. Photo editing. Plugin creation. Programatic image creation. Created glsl filters.

Photoshop Flash Freehand Illustrator Drawing OpenGL Shading Language JavaScript
GUI (Graphical User Interface)
(advanced)

Created some GUIs. Using VB, C#, DELPHI, D+DFL and Java. Worked with scintilla component (www.scintilla.org).

D C# HTML
Graphviz

I have used graphviz a few times in order to render some directed graphs.

Graphviz
Emulation
(advanced)

I have a huge experience in debugging and tracing at assembler level in emulators. Applied concepts about dynamic recompilation and jits for emulation. Created a PSP emulator firstly interpreted in D language, and after that reprogrammed to use dynamic recompilation in C# creating bytecode on the fly, after that ported to typescript generating javascript on the fly. Emulated partially the psp operating system with a HLE (High Level Emulation). Prototypes of LLE (low level emulation). Emulated vfpu vectorial instruction set of the PSP’s MIPS Allegrex processor. Capable of running homebrew and commercial games. Dissasembler. Memory viewer. Registers. Tracing. Debugging. Advanced knowledge about the psp architecture. Created gameboy emulator.

D C# Emulation Compilers Dynamic Recompilation
Drawing
(advanced)

Some times as a hobby I copy and draw some stuff.

Console Scripts
(advanced)

Experience creating terminal-based programs to automate stuff: backups, spiders, searching, file renaming…

C# PHP C/C++ D Python
Compilers
(medium)

Created a complete and working compiler and virtual machine for a scripting language. Including basic control structures, foreach, functions, delegates, generators and classes. Code optimization and simple constant propagation.

Created C and PHP compilers in C#.

Created a couple of template engines with inheritanced based on twig in C# (node.net) and JavaScript/TypeScript (atpl.js).

C# D C/C++ PHP JavaScript TypeScript Compilers AST
Client/Server Applications
(advanced)

Experience creating client/server applications. Bots, clients and servers for several protocols, including mmorpg emulators. Experience in several programming languages: C#, PHP, C/C++ and D.

C# PHP C/C++ D Sockets
Blogging

Experience with blogging. I have used wordpress, blogger and lately jekyll. I have my own blog (in spanish), a php blog phpElegante and a kotlin community.

wordpress blogger Jekyll github
Assembly writting and understanding
(medium)

Ability to write optimized assembler code for critical parts using several advanced instruction sets (MIPS, ARM, Z80, PowerPC, 8086`). Knowledge about SIMD (Single Instruction Multiple Data) instruction sets for multimedia applications for PC: MMX, SSE, SSE2, 3DNOW (basic), VFPU for PSP’s Allegrex, and ARM’s NEON.

Assembler