Carlos Ballesteros Velasco

Generalist programmer

Note: this document is a translation from the spanish version of my Resume. May have some parts in spanish.

Experience as Freelance:

Co-founder, developer and technical director of Kawagames.com

Work Experience:

January-2012-*

Self-employed and freelance

November-2010 -

December-2011

Working at this moment as programmer on The Netwizzy Company : ActionScript3, PHP, C# y Java

2009

Working as web developer on softonic.com

Summer 2005

Summer 2006

Summer 2007

July 2008

Working on XARXANET, S.L. Working as web developer: PHP, DHTML+JS, CSS, developing archivospc.com and pcfiles.com

2000-2008

Working as Freelance for business and particulars.

Achievements, contests/Olympiads:

2006

 Gold medal at olimpiada informática española (OIE)

 Silver medal at olimpiada informática iberoamericana por correspondencia (CIIC)

 Bronze medal at International Olympiad in Informatics (IOI)

Titles:

Summer 2010

40 hours grade on japanese level 1 (organized by instituto confucio)

May 2009

MySQL Developer Certificaton. 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

March/April 2007

"Foundations of digital Games" course given by Tomi A. Pasanen

2006

High School Degree

August 2005

Zend Certified Engineer (One of the 1,000 firsts)

zend.com/zce.php?c=ZEND002412&r=212545372

Education:

Summer 2010

Curso de 40 horas de japonés de nivel 1 (organizado por el instituto confucio) (Terminado)

2009

Curso de 43 horas de inglés pre-intermediate.

2008

Curso de 40 horas de japonés de nivel 1 (organizado por el instituto confucio) (Sin terminar)

2007

Ingieniería Informática Superior (en la FIV.UPV) (Únicamente primer año)

March/April 2007

Cursillo «Foundations of digital Games» impartido por impartido por Tomi A. Pasanen

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.

Languages:

Spanish

native

Valenciano/Catalán (Valencià/Català)

medium

English

medium

Japanese (日本語)

elemental

Opensource:

Github

https://github.com/soywiz

Googlecode

http://code.google.com/u/soywiz/

Sourceforge

http://sourceforge.net/users/soywiz

http://sourceforge.net/users/phpwiz2

Knowledge:

Programming Languages:

PHP

(expert)

8 years

Large knowledge of PHP Programming for Web, Console and Client Applications. Small knowledge about the internals of Zend Engine. Developed several C extensions for PHP. Experiencia dando clases de PHP. Experience teaching PHP. Zend Certified Engineer. Last PHP version used: 5.4. Spanish PHP phpElegante Blog.

JavaScript

(advanced)

8 years

Knowledge about JavaScript (and ECMAScript languages [ActionScript...]) applied to web. I have worked with jQuery.

ActionScript 3.0

(medium)

2 years

Created flash applications using ActionScript. Created games, animations and applications. Created two VMs on flash. Used Alchemy to integrate C++ code on flash.

DHTML

(advanced)

7 years

Knowledge about HTML and CSS working with JavaScript.

FLEX

(elemental)

months

Basic knowledge about Flex platform. Used FlexBuilder. Though advanced knowledge about ECMAScript and ActionScript 3.0.

Java

(medium)

3 years

Basic knowledge about J2SE and J2ME. Developed a couple of games for mobile devices using J2ME and some demos. Knowledge about the OO architecture of Java. Knowledge about the basic API. Baisc knowledge about Android. Integrated native C++ code in Java using JNI. Developed simple Java VM in PHP. https://github.com/soywiz/phpJavaVM

C#

(advanced)

5 years

Medium knowledge about .NET and C# for PC and mobiles: PocketPC, mobile and xbox 360 using XNA. Created opensource C# projects: CSharpUtils and created a PSP Emulator in C# capable of running commercial games.

C/C++

(avanzado)

10 años

Knowledge about programming in C/C++. Worked with IDEs: Dev-Cpp and Visual Studio up to 2011. Created several projects for several platforms. Scripts, programs... Created some games and engine ports using SDL and OpenGL.

D

(advanced)

4 years

Medium knowledge and easy programming in D1.0 and D2.0.

Developed graphical utilities like PopGUI using DFL, and lots of utilities (romhacking, and system administration...), console utilities.

Developed gameboy emulator, psp emulator. Developed cdvd plugin pcsx2 plugin. Libraries for D.

Python

(basic)

months

Used Python in a couple of projects. Used with google appengine and django.

Assembler

(medium)

4 years

Knowledge about 80386, working and basing instructions. Basic knowledge about other processors ARM y SH2. More advanced knowledge about Z80 y MIPS r4000. Knowledge about processors (mips): allegrex (PSP) y emotion engine (PS2)... Basic knowledge about PPC (MAC, GameCube, Wii, PlayStation 3 and XBOX360). Knowledge about Java and C# VMs.

IDA (Interative Disassembler)

(medium)

4 years

Worked with IDA, one of the best disassemblers. Knowledge about detecting program pitfalls, and to identify C/C++ code using assembler. Small knowledge about the IDA language scripting, IDC. Additional experience with several other disassemblers and debuggers.

Databases (SQL and NoSQL):

MySQL (SQL)

(advanced)

5 years

Advanced knowledge about MySQL and using it with PHP with mysql, mysqli and PDO extensions. MySQL Certification.

SqLite (SQL)

(medium)

2 years

Medium knowledge about SqLite database and used it with PHP.

MongoDB (NoSQL)

(medio)

1 year

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

Sphinx (NoSQL/SQL)

(basic)

months

Small knowledge about Sphinx for searching in documents.

Ofimática:

Open Office

(basic)

2 years

User Level Knowledge.

Microsoft Office

(medium)

8 years

User Level Knowledge about Word, Excel, Access and Powerpoint.

Google Docs

(medium)

4 years

Basic knowledge about Google Docs.

Some fields covered:

Client/Server Applications

(advanced)

5-6 years

Experience creating client/server applications. Bots, clients and server for several protocols. Experience using several languages: C#, PHP, C/C++

Console Scripts

(advanced)

7 years

Experience creating console programs to automate tasks:

backups, spiders, search, file renaming...

Videogames

(medium)

10 years

2D Videogame programming for PC (C/C++, PHP, DIV(Fenix,CDIV,DIV1/2,Lunea)); mobile devices: Pocer PC (.NET) and Mobiles with J2ME; consoles: GBA, Nintendo DS and PSP; videogames for web (Javascript+DHTML, FLASH+ActionScript). Online games (server+client). Used opengl shaders (fragment and vertex shaders). Knowledge about the opengl pipeline. Knowledge about SDL and Allegro. Small knowledge about 3D graphics

Examples: 3D Tetris using opengl, GameLib, Lunea, phpmedia, gameboy emulator, psp emulado, games for web. Basic knowledge about APIS Havok, Ogre3D and similar. Working with XNA/C# for (PC and XBOX360). Created iPhone engine using Squirrel and OpenGL|ES. Worked in The Netwizzy Company developed game platform in ActionScript 3.

Worked with textures in compressed formats DXT1, DXT3, DXT5 and variants. Createde decompessor. Worked with swizzled textures in machine formats: (PSP, Xbox360 and Sega Saturn). Pathfinding A* on bidimensional matrices  y pathfinding TA* with triangulated surfaces in conjunction with the funnel algorithm to find a direct path.

Romhacking

(advanced)

6 years

Game Romhacking. Architectures: GB/GBA DS y SNES; PSX, PS2 y PSP; GB, GBA, NDS. Knowledge about MIPS and Z80. Translated games with compressed and uncompressed texts. Modification of pointers to allow longer texts; graphical edition of fonts and other graphics. Tales of Eternia Spanish Translation (PSX + PSP), Tales of Destiny (PSX), Tales of the Abyss (PS2), Suzumiya Haruhi no Yakusoku (PSP), Tales of Vesperia (360). Other Games.

Videogame portings. Reprogrammed several PC games with reverse engineering (romhacking) reprogrammed using SDL, SDL_mixer, SDL_image, SDL_ttf y smpeg. Proted to PC, Linux, Mac, PSP, and DreamCast. Worked with the problem of reading slow optical mediums, worked with limited memory problems and optimizing performance. Implemented ringbuffer as filter stream for SDL_RWops.

Video editing

(basic)

1 year

Video editing. Put and remove Subtitles. Add titles, Karaokes. Encoding, muxing, demuxing. Elementan concepts about: stream, filters, layers, wrappers, codecs...

GUI Creation (Graphical User Interfaces)

(avanzado)

6 years

Created GUI. Dine with VB, C#, Delphi and D+DFL. Worked with scintilla.

Emulation

(advanced)

3 years

Advanced experience with debugging and tracing at assembly level on emulators. Proof of concept of dynamic recompilation applicated to emulation. Created psp emulator. Partial HLE emulation. Allegrex partial support (most cpu and fpu, and a large part of vfpu). It is capable of running homebrews and some commercial games. Disasssembler. Memory viewer. Registers. Tracing. Debugging. Basic knowledge about the PSP architecture. Created gameboy emulator.

Web Programming

(advanced)

8 years

Great web programming experience. Use of standards HTML+CSS, XML, JS y (PHP + MYSQL).

Some treated fields:

  • PDO; PHP >= 5.4
  • Created cache system of several layers
  • Dynamic image creation using PHP and GD2 or Imagemagick.
  • Used MySQL and SQLite as databases. Used its own api and with PDO.
  • Experience creating regular expressions: POSIX and PREG
  • XML parsing and creation
  • Created spiders and crawlers
  • Created powerful and efficient internal systems
  • Created dynamic flash animations using ming extension
  • Opensource project collaboration with CVS, SVN and GIT
  • Created interactive web applications with javascript: dynamic dom creation and handling, AJAX, JSON...
  • Extension creation using PHP4/5 for Zend Engine 2. And C Wrappers.
  • Knowledge about fast-cgi protocol and C native applications
  • Experience using firebug, wireshark , and apache logs for web development and debugging.
  • Configuration and administration of apache web server and nginx.
  • Experience using some apache mods like mod_rewrite
  • Worked with sphynx for search
  • e-commerce
  • Implemented payment gateways for SMS and paypal
  • [...]

Image creation

(medium)

5-6 years

Handrawing and with tablets. Image outlining using freehand, flash and photoshop. Image coloring with flash and photoshop. Digital image creation and photo retouching.

Linux System Administration

(medium)

2-3 years

Knowledge about linux commands. Little knowledge about bash. Installing and configuring apache, php, mysql, sqlite and other software on linux systems on Debian compatible systems and fedora.

Multithreading development

(medium)

2 years

Creating programs with several threads; mutex, semaphores...

Work balancing on several threads. Nowadays it is getting more and more important since today platforms scale horizontally with more cores instead of more frequency. Implemented synchronization primitives in the psp emulator kernel. Worked with OpenCL and shaders.

Assembler coding

(medium)

4-6 years

Ability to write optimized assembler, critical parts and use advanced instructions for differet plataforms (MIPS, basic ARM, Z80, PowerPC, 8086+). Knowledge about SIMD technologies (Single Instruction Multiple Data) for multimedia applications for PC and PSP: MMX, SSE, SSE2, 3DNOW (basic) and PSP Allegrex.

Mobile videogame development

(medium)

years

Experience creating applications and videogames for mobile devices using j2me MIDP 1.0/2.0 and CLDC 1.0/1.1. Knowledge about .NET Compact Framework. iPhone, Android and WindowsPhone.

Developed game and engine for iPhone (PushBox).

Misc knowledge

Worked with ISO, UDF standards. Experience working with binary formats on all kind of languages.

Knowledge and practice with compression methods (creating compressors and decompressors): Huffman, LZ, RLE and other. Zlib and PNG knowledgeKnowledge about improvement compression/filter technices for lossless images encoding. RLE/LZ per pixel, split by components. Implemented png decoder; png filters: Sub, Up, Average y Paeth. Created encripted protocol systems for several online game platforms.

Translation

(medium)

3 years

Experience with videogame translation (english->spanish) on my spare time. Experience using online dictionaries. Urbandictionary, babylon y rikaichan...

Completed several non-offical translations.

Software localization

2 years

Experience localizing software and web pages. Conversion and working natively with UTF-8, ISO-8869-1, Shift-JIS (japanese) and GB2312 (chinese) encodings. Experience working with texts in oriental languages like chinese and japanese.

Compilers

Crated compiles and virtual machines completely functionals for scripting languages. With basic contro lstructures, foreach, functions, delegates, generators and classes. Code optimization.

Science programs:

Mathematica

(elemental)

1 basic

Little knowledge about Mathematica. (Used in practices on the Valencia’s universidad politécnic).

Matlab

(elemental)

1 basic

Little knowledge about Matlab.

Graphviz

(medium)

2 years

Used graphviz for generating directed graphs. Generated FlowChart for 4 game scripts.

Examples: [1] [2] [3] [4]

Desing programs:

Adobe Photoshop CS5

(advanced)

9 years

Photoshop knowledge: Filters, photo retouching, digital image creation, dynamical effects, picture painting and web design. Used content-aware filling and scaling. Created several photoshop javascript plugins (jsx)

[Dotted Gradient] [Overlay Slice]

Lastest used version: CS5.5.

Created filters using PixelBender shaders.

Creación de filtros mediante shaders de PixelBender. Using the lastest features content-aware (scaling and filling) and skinning.

Adobe Flash CS5

(advanced)

4 years

Medium knowledge. Clips, buttons, graphics, timeline and advanced actionscript. Complex animations and ActionScript 2.0.

ActionScript 3.0. (Tests with Flex+AIR). Created morpg client test and developed in a game platform at out.com. Last version used: CS5.5. Tests with new flash11 features. Audio generation. Using shaders and Pixel Bender to create personalized effects.

Pixel Bender

(medium)

1 year

Flash, photoshop and after effects shader creation.

Macromedia Freehand

 

(basic)

2 years

Basic knowledge about Macromedia Freehand. Image outlining, effects and vectorial images. Now I’m using Adobe Illustrator when required.

Adobe After Effects CS4

(elemental)

1 year

Baisic knowledge about After Effects.

Adobe Premiere

(basic)

1 year

Basic knowledge about Adobe Premiere. Create movies and presentations. Added titles with affects, synchronizing videos. Remove subtitles. Created text animations.

AutoCAD

(basic)

1 year

Basic 2D knowledge and trivial 3D.

Blender

(elemental)

1 year

Basic level of Blender.

Misc programs:

Virtual Dub Mod

(basic)

1 year

Basic knowledge. Open a video and MUX/DEMUX streams. Add subtitles. Reencode.

ffmpeg y mencoder

(medium)

3 years

Ability to recode and handle video using scripts and console.