x
This website uses third party cookies exclusively to collect analytics data. If you continue browsing or close this notice, you will accept their use. The EU now requires all sites to display this banner which confuses users and does nothing, actually, to improve your privacy.
Read more on why this law is ignorantLearn about this website's cookiesDisallow cookies
Carlos Fenollosa

Carlos Fenollosa

Engineer, developer, entrepreneur
TOC
This chip got me into computers

My projects

This is not your typical "personal projects" page. Well, the first part is. But, if you keep scrolling down, you will find some really nostalgic stuff. Up to you!

Table of contents

Current projects A nostalgic tour through my past projects

Current projects

These are the most relevant projects from my career. The few people that know me "from the internet" probably learned about me from one of these.

Even though some of these projects are finished, dead, or on hold, I still think of them as my biggest contributions.

Optimus Price, my startup

My main project is my startup Paradoxa, an AI company. We are working hard on Optimus Price, a software that helps retailers optimize prices and predict demand with AI.

We have gotten some recognition in the Spanish press (El Pais, El Referente, ???, Ynicio, other)

FOTO

[Back to top]


Funny science

I love science and the scientific process. I still keep a fossil from my PhD days, a compilation of funny papers.

The list is still maintained; if you happen to find a paper that is really funny, on purpose or not, send me a link!

Dog urinating

This paper discovered how smaller dogs pee "artificially" higher than their size to trick other dogs.

[Back to top]


Bashblog

I developed a blogging engine in Bash and it is probably my most successful public project. At the opposite side of the stack,

[Back to top]


OS Tutorial

I'm writing a tutorial operating system when time allows it.

[Back to top]


Learn To Program video tutorials

I believe video is the future of education and programming will probably be the most requested skill for the next 50 years. I produced a series of videos aimed at kids and adults who wish to program but don't want to deal with all the computing complexity: Aprende a programar (in Spanish).

[Back to top]


Podcasting and journalism

I've always been interested in journalism and, well, you have probably seen my blog. I started it in 2004 as Punto y aparte, with a tagline of writing is just an excuse to read things you like. Some of the content did not age well and was really embarrassing, so I and reset it in 2008 with a new name, Waiting for the jobs to finish, and a new approach.

If you like reading about the linux terminal, scripting and automation, keyboard layouts and technology hacks, you should subscribe to it.

My interest for journalism goes way back. I was the coordinator of my elementary school "newspaper", contributed regularly to my high school's, and joined my college magazine of which I became the director.

In 2007 I tried to launch a site ambitiously labeled as the Spanish BoingBoing. It was called "ExtraExtra" and consisted of a pulp mixture of links, original content and opinions, the only leitmotiv being geeky stuff.

ExtraExtra didn't prosper but the team moved to Referenta, another ambitious attempt to create the leading tech outlet in Spanish language. The writers were good and we were funded by some investors, but after a few months of highly praised activity, the project shut down due to management issues.

While all those projects kept appearing and disappearing, I took an interest in podcasts.

Even though the 2019 Spanish podcasting scene is still very amateur, I jumped in at the very beginning, in 2005. Podcasting is probably where most people know me from, especially, Dame la voz.

My first podcast is dated from 2005 (one of the first 20 in Spanish)

Dame la voz is news blog + podcast that I co-founded with a few other friends, realizing that there were no independent news shows in Spain. We were 100% amateur, but to date I still believe that our analyses were honest, mostly accurate, honest, and we clearly distinguished fact from opinion. We had a team of about 15 people from different ideologies who rotated on every week's panel.

The compliment that made me the most happy was one from a listener who told me: "I like Dame la voz because hosts frequently change their opinions live, when presented with reasonable arguments from other hosts."

YENDOR LAS TIRAS 5 minutos con Carlos Fenollosa (tech, in a hiatus), and El Amuleto de Yendor (tech, now finished).

Nowadays, my only journalistic activity is limited to sporadic guest contributions to Xataka, the biggest tech outlet in Spain. I take the opportunity as a really big honor and try to produce my highest quality articles within my limited skills.

[Back to top]


A nostalgic tour through my past projects

I first had the idea to create this section as a fun exercise, when I was digging through my old backups. Thanks to the magic of DOSBox and VirtualBox I recovered most of my data on floppies and CDs, and recreated the many OS environments, games and files that I used as a child.

I thought that, if the Internet had existed back then, I would have shared some of this stuff online for sure. So, why not do it now, 20 years later?

This page acts as sort of an extended curriculum vitae, a personal reference of all the computer or internet-related things I've been doing during my life.

Besides being a cute personal complement to a professional portfolio, it is really meant as a nostalgia hook for you, the reader. Hopefully it will help you remember some of the things you did as a kid, games you played with, computers you hacked, and encourage you to dig through your old backups and re-live those fun memories.

Childhood (1992-1997)

Get ready for a nostalgia trip! I doubt this section has any professional value, but I guess it wraps up nicely my serious projects and provides a personal touch to complete the section.

my first computer My first computer

When I was a child my only access to technology were calculator watches, Game&Watch clones and a Game Boy.

I first got a computer around 1992. Well, I didn't get it, it was my father's work computer. It was an obscure brand 386 laptop with 2 MB of RAM that I used to "borrow" from my father when he wasn't looking.

My friends and I exchanged diskettes and we quickly learned what a computer virus was and how to make backups.

My main stack was DR-DOS and later Windows 3.1, using office suites such as Lotus and Open Access. We had to use what our parents bought, usually cheap software and games, or software copied from friends.

Obviously we didn't have any Internet so the only way to learn was by reading library books and computer magazines. I typed numerous QBasic listings by hand and ultimately learned how to write my own programs.

a BASIC program A "guess-the-number" game in BASIC
Digital magazines and animation

I loved reading magazines and I published my own, a digital one named El Pincho (The Prickle) illustrated with Paintbrush and edited with Neobook for DOS. I sold two copies for 100 pts (0.60€) each.

El Pincho Quality journalism

Along with my friend Carlos —signing as Spoke, I was Feyon— we spent many hours crafting frame-by-frame animations that could only come from the mind of two 13-year-olds. We used Autodesk Animator. Since we only had grayscale screens, we couldn't distinguish color, that's why all colors look super weird.

Look at these outstanding masterpieces from two bored kids. No youtube then. Nowadays, making a video like this one may get you a trip to the school counselor.

Games

I gamed heavily with DOS, PC Fútbol and adventure games like Monkey Island, exchanging hints for difficult puzzles at school.

At some point we discovered the sci-fi themed turn-based game VGA Planets, registered two copies with a friend, and after a few weeks we got the diskettes from the US. We played with some people from different schools, and use the message boards to chat. It was a really cool experience, like a prelude of the Internet.

The game that I have wasted the most hours on is definitely Civilization. I vividly remember the first time experiencing the feeling of hours flying by. I was playing Civ and forgot I was supposed to go to football practice!

Learned: DOS, Windows 3.1, office apps, publishing, animation

[Back to top]


High School (1997-2001)

In my late years of high school I discovered Visual Basic 6. Now that was approachable by a teenager! In the computer science class we were supposed to learn MS Office, but a group of friends who already knew how to use computers joined together to learn VB.

At the end of the semester we had produced an Excel spreadsheet full of macros, an Access database and a VB interface to store results from La Liga, along with the team info (like PC Fútbol).

La Liga results Football and computers, a 16-year-old dream

Thanks to the La Liga program I got in contact with the University. In Spain, the year before the University all high school students must complete a mini-thesis. Of course, I wrote a computer program, in Visual Basic. It taught Math to high school students. This is the first time I remember spending many nights awake, programming, with the only help of a not so great VB book.

In the end it was worth it, I received a prize and a grant to study Computer Engineering.

my first real program Ingenium, a software for tutoring math
First Internet contact

My first time on the Internet was circa 1997 when we snuck into the home office of my friend's father at night. I remember downloading and printing like 20 pages of bad jokes and thinking that was awesome. Then we chatted with some guy from Sevilla, on the other side of Spain. It was an incredible feeling. A few days later I copied "the internet" from my friend's computer, turns out it only was the shortcut icon and it didn't work at home!

I tried all Windows versions of the 90's until I settled on Windows 2000. It was very stable, especially to connect to the internet using dial-up.

My first Internet experiences, besides the Web and e-mail, were Usenet (newsgroups), IRC and especially MUDs. It was the era of chats and I was an early ICQ user though I ended up preferring MSN Messenger as it was very popular in Spain.

BeOS and early Linux experiences

Meanwhile, I visited a friend who had a very strange software in his computer. It was like Windows, but not really Windows. It was called Linux. He gave me a copy and I tried to install it. I failed miserably. It was RedHat 5.2 and it kept asking me weird questions about some RAMDAC and telling me it may damage my monitor.

Some months later I bought a magazine with another weird OS named BeOS. It detected my "winmodem" perfectly and got much better performance from my AMD K6-II, so I used it almost exclusively, but I kept a Windows partition for playing Starcraft

Finally, I got a Mandrake 7 CD set on a magazine and managed to install it, set up X11, and connect it to the internet after going through much hell. It was so different, I loved it!

Learned: The Internet, MS Office, Visual Basic, Linux, BeOS

[Back to top]


University (2001-2008)

I majored in Computer Engineering, a mixture of Computer Science with a heavy Engineering curriculum, not that much math, and lots of projects. It is a very thorough syllabus with hard classes on computation, networks, operating systems and processor architecture. We were taught mainly C/C++, Java, Assembler, and a few obscure languages.

It doesn't make sense to detail the many projects since it's a full University curriculum, though I want to highlight some of them. First, in our second year (2004) we implemented a Reversi game, using MiniMax for the computer player. It was extremely hard to do since we hadn't taken AI classes yet, but it worked, plus we learned a lot of Java. This turned to be my preferred language for a long time.

A Reversi game with an AI computer player A Reversi game with an AI computer player

In 2005, third year, we programmed a then-called domotics (now IoT) mobile app with Java+WAP and a REST interface to control home devices. Since we didn't have any smart home devices then, we simulated them too. The project was very successful and one member of our group did his PhD as a continuation of it.

While finishing the Engineering degree I enrolled for the Artificial Intelligence Master's program, so I defended both at the same time. The Master's was then brand new so we were few students per class and professors were very close to us. There were seminars from invited professors, interesting projects, opportunities to enroll on a PhD, it was a great experience.

First web sites, blog and podcast

University years are a great time for personal projects. This is when I created my first web page with Dreamweaver/Word, which I won't link here since it's a very embarrassing site full of GIFs and <blink> tags, then Humor Freak, a page with jokes and nerdy content to have something to read with lynx while Gentoo is compiling

Also while at the University I started my first blog (2004) and podcast (2005). Some years later, in 2008, I tried to launch a professional blog, ExtraExtra, with my friend Sergi. It evolved into a bigger project with some funding, Referenta, managed by external people. Our goal was clear and ambitious: to create the best technology blog in the Spanish language. Unfortunately, after a few months of producing critically-acclaimed content, some differences between management and the investors forced a closing. With it, ExtraExtra died, too.

ExtraExtra, a commercial blog project Announcing Android on ExtraExtra, a commercial blog project from 2007
University clubs: magazines and sysadmin

Since I spent almost all my waking hours at the campus and class schedules were not that great, I joined many clubs. That was definitely one of the best decisions I took. The dearest for me is L'Oasi, the Computer Engineers magazine. I was President for a few years, authored many articles and comic strips, and acted as sysadmin too.

In the Oasi mailing list we had great editor flame wars, and I decided to learn vim which, to date, is my editor of choice when no IDE is available.

I discovered Debian, my distro of choice since then, and set up a Jabber box for the whole campus with my friend Kiusap.

Another club I joined was the Fòrum FIB, which organizes a yearly fair for companies to approach the University world. And a fun one was Fiberparty, a computer LAN party which was very successful in an era when most people didn't have Internet at home — and we had to carry heavy CRTs and towers to the event!

Free software community

I got involved in the Free Software community by translating liferea, an RSS reader. Coincidentally, the 2006 GUADEC (Gnome international conference) was hosted in my home town, Vilanova i la Geltrú, so I volunteered with the organization. I joined the GNOME foundation and spent an insane amount of time proselytizing for Linux, especially Debian, and Gnome. I installed Linux on an old Libretto 50CT and got it signed by Stallman.

At a Stallman conference Stallman signing my Libretto

My first Debian was Woody (2002) and I've been using it in servers since. I was also a fan of Ubuntu for a long time, in L'Oasi we ordered hundreds of Ubuntus for distribution among students. Ubuntu was a great improvement for the Linux desktop at the time, though I've always preferred Debian on servers.

A cool anecdote from this era is that my friend Kiusap was working as a sysadmin an NGO also named Ubuntu. He observed that their server started bouncing a ton of e-mails sent to wrong addresses at @ubuntu.org instead of @ubuntu.com, and we wondered whether it would be a good idea to create an account mark.shuttleworth@ubuntu.org to email the actual Mark Shuttleworth as a practical joke.

Ubuntus for distribution We ordered Ubuntus from Canonical to distribute among students

Learned: Computer Engineering, Artificial Intelligence, Java, HTML, MySQL, Linux sysadmin, magazine editing, vim

[Back to top]


Barcelona Supercomputing Center (2007-2014)

I joined the Molecular Modeling group at the Barcelona Supercomputing Center. I was an intern at first, finishing my Master's thesis with a machine-learning software to determine promoter location

After finishing my thesis I joined as a Research Engineer, doing some R+D but mainly developing software to offer research services. I learned a great deal of supercomputing techniques and had access to the most powerful machines in Spain: the Mare Nostrum, then one of the fastest computers in the world and famous because it's located in an old chapel, and many dedicated machines, like an Altix with 1TB of RAM, or one with tens of thousands of GPU cores.

During this time I learned parallel programming techniques, applied Machine Learning for many problems, and also discovered many molecular simulation techniques.

My main contributions at the BSC were:

UNIX for scientists

As a research engineer, part of my job was to support other researchers and train them in the UNIX toolchain. I produced some content like a very popular bash cheat sheet ready to print and hang in your cubicle. The cheat sheet evolved into a text file with UNIX tricks that has been featured several times in HN and Reddit and that I still maintain.

Bash cheat sheet Bash keys cheat sheet
screen cheat sheet Screen keys cheat sheet

At some point I prepared a training workshop with basic UNIX tools (sed, awk, grep, ...), you can download the slides and a summarized cheat sheet

UNIX workshop slides UNIX workshop slides
Functional programming and MOOCs

I had the enormous luck to cross paths with Santi, a brilliant colleague who introduced me to Scala and functional programming.

I took the famous Odersky's Coursera class and found it fascinating. At the University we had been taught many techniques, but functional programming was new.

This was also my first MOOC, and I liked the experience, so I took a couple more, From the Big Bang to Dark Energy, just for fun because I like space (who doesn't?) and Computing for Data Analysis.

To date, I think MOOCs are a fantastic complement to traditional education, and I take online courses in high regard when I interview candidates for my company.

Learned: Molecular biology, personalized medicine, simulation techniques, supercomputing, Perl, Python, R

[Back to top]


Freelance (2014-2017)

For my 30th birthday I decided to take a Sabbatical and decide what to do with the next 10 years of my life.

I liked my job at the BSC, but I also had the opportunity to start a business with little personal risk. I decided that life is too short for regrets, so I left the BSC and took business courses at Barcelona Activa, Barcelona's public entrepreneur school.

First project: Puput

My first project was actually my partner Ramon's idea. It was a very simple concept: when you fly abroad and land, you usually want to call somebody to tell them you're ok. Furthermore, when we were teenagers with our first cell phones, we used to have a "missed calls" code with friends to save money: 1 missed call meant "I'm coming", 2 missed callt means "You go, I'll come later" and 3 calls meant "Call me, it's important and I don't have credit".

The association was simple: what if we could automate the process to send more complex messages?

Ramon and me co-authored a patent to send data without the internet, using missed calls. The patent was implemented into many products using DID numbers and an Asterisk server.

First we published a tech demo called Puput to listen to your emails using free voice calls. It was so surprising that it got us on TV!

Access emails without Internet Puput, access emails without Internet

The second one was called Xateja and it was literally a Whatsapp clone which auto-detected lack of Internet and sent messages using our patented protocol. I tested it on my honemoon while in the US and it worked, we approached Tuenti for a partnership, but we found it difficult to license the technology.

We also built other prototypes: An app to Tweet without the Internet which we presented to Twitter at the 2016 MWC, a weather app for travelers without internet which included radar images encoded in a single SMS, and many other twists around a technology which was cool but ultimately deemed to disappear along with roaming costs in the EU.

Tweet without the Internet Sending Tweets without the Internet

We learned three hard lessons: don't spend your money on lawyers and patents, selling is difficult, and never develop your product before talking with your potential customers as your assumptions will be wrong. Fortunately, in the end we applied Puput to a consulting job which helped us maintain the company afloat.

Second project: chat bots

While developing Xateja we included chat bots as contacts, like Telegram did back then. We continued exploring this path and found bots a very cool AI application.

Fortunately, until late 2016 there was an unofficial API to connect to Whatsapp and I built some Whatsapp bots that I tested with friends. The most critically acclaimed was "Roberto Bonio", which had many features such as event scheduling for groups, translating your dinner by using OCR on a picture of the menu, calling a pizzeria to place an order and, of course, mocking your Whatsapp group friends.

With the permission of my now wife, I built a special version of Roberto which DJ'd on my wedding by connecting to Spotify and accepting requests from guests via Whatsapp. DJ Roberto was built with Elixir which is an awesome language for robust webapp backends.

Jokes aside, we found bots easier to sell since it was very easy to tailor them for a customer. We created a chat bot for the fitness company of a very good friend of mine which onboarded new customers and provided personalized workouts for them.

Something different: electronics
Homebrew arduino other small projects

[Back to top]