About Me

I’m Carlos Ballesteros Velasco. My nickname is soywiz. And I’m a passionate developer born in Valencia/Spain in 1986.

My brother, that is 12 years older than me, started to teach me some basic programming in MS-DOS’s QuickBasic when I was nine.

Some years later, and before I had Internet at home, my brother brought me by christmas several diskettes with Quick Basic and Assembly source code of several games. I was so grateful that people shared their code so I was able to learn new stuff.

That’s why I’m a huge OpenSource advocate and spend some of my spare time creating interesting projects at GitHub.

My areas of interest are Developer Tools, Compilers, VideoGames and Emulators as well as coding Backend and Frontend websites. Though I enjoy most areas of Computer Science. I also like to write technical articles explaining interesting things, or to draw or to do some basic graphical design for my blogs or my projects.

I started my professional career when I was 14 as a fullstack web developer: PHP, MySQL, HTML and CSS. I spent a lot of years doing just that professionally and creating several popular websites and even worked for a international website as a PHP developer. I got the PHP4 (one of the first thousands, and one of the first ten in Spain) and MYSQL certificates.

Later I worked for a couple of videogame companies using as3/flash. In the later one I worked as Frontend Tech Lead, and developed a portable game engine that later I ported to other languages. In the middle of that process I discovered Kotlin! And I liked it so much, that I created kotlin.es, and started to create a lot of libraries with it. And before Kotlin was really multiplatform, I created a project JTransc that allowed us to write code in Kotlin or any other JVM language and to target anything we wanted.

I participated in three programming olympiads the same year and won a gold medal for the Spanish one, a silver medal for the Ibero-American, and a bronze medal in the International. I was very proud of myself since nobody trained me for it, but just my eagerness to learn more.

In my spare time I also learned how to create proper games using C, C++ and later C# and AS3/flash.

And also learned romhacking in order to translate into Spanish some games that I liked that were being sold to Spain untranslated. I learnt MIPS assembly (just knew a small subset of x86), more about processors, compression algorithms, text encodings and more.

I introduced myself into the emulator’s world by creating a gameboy emulator in D programming language when I started the university. And later started a decade-long path doing a PSP emulator. I started the emulator in D, then switched to C# and later converted it into TypeScript to end doing it again in Kotlin. In that path I learned lots and lots of stuff. Starting from Operating Systems, instrution decoding, deeper knowledge about threading, dynamic recompilation, audio, DSP, video, muxing, containers, gpu, shaders, and all kind of optimization tricks… I really enjoyed it. And I still do!

I have written in all this time a lots of articles, and I hope you enjoy them!