It’s been twenty years since I was twelve and I started to learn to develop software.
During this time, I’ve been developing a passionate love for computing and, more precisely, for development.
And all of this time I’ve been growing as a professional.
Today I am CTO at Elma, and I would like to share my story with you.
This is your new computer
When I was twelve my parents bought me my first computer.
To be honest, I had been playing with my dad’s computer for some time. I remember playing MS-DOS Prince of Persia game, and the magic of writing some commands on console and watching the game begin. It was so huge.
But having my first computer was a very special feeling. And, at some point during the year, I had my first Internet connection. An incredible window opened to my mind.
I started to wonder how all these webs were built. I found Frontpage and Dreamweaver and sooner rather than later I started to do my own. At sixteen, I created a forum talking about the history of the Second World War. Today, it still is on the Internet.
This forum was built on PHP. I don’t remember exactly how old I was when I learnt PHP, but what I remember is how I learnt Java 2. My parents bought me a book on the topic, a very practical and well written one. And I read it many times, I practised, I almost cried but, in the end, I found my way.
A few months later, also my parents bought me a magazine called DIV 2 Games Studio. DIV 2 was a set of libraries to build videogames, and this awoke my curiosity.
Steve Jobs said in its famous speech at Stanford something like “you can only evaluate the things you do in life when you look at the past and connect the dots”. If I look back now, I am sure my parents, buying me those books, changed my future.
I don’t think many teenagers are going to read this. But for parents, don’t save any resource on your children learning path. One book at some point in their life can change their mind forever. And this will be the best present you can give them.
My first job
When I was twenty I got my first job as a PHP web developer. I was supposed to be a support for the current developer, but soon they just decided to have me developing and move him to servers maintenance.
I introduced the first PHP framework in the company, Codeigniter, and I started my path on learning how to do clean code. It was not an easy one as I was alone as a developer and no one could mentor me.
It was two years, and I learned a lot, not only about developing but also about HTML markup and design.
If I can give you some advice at this point it would be to look always for jobs where you have kind of a mentor. At least at the first steps of your career. Having people better than you is the best shortcut in your development path.
When I was eighteen I liked very much videogames development and I was doing some tries. Simple ones.
In Campus Party Valencia, which is an event for “people with computers” (I said that because you could found gamers, developers, astronomists, robot makers…) there was a competition: videogame development in 72 hours.
So I wanted to participate. And I did.
And… I could present nothing in my first year. I was trying to do some platforms 2D game but my knowledge was very basic and I couldn’t manage the physics. It was a time where everything was completely manual, no Unity, no nothing.
If you want some advice, the most important thing in this industry -development, in general- is perseverance. No matter how hard is to get something work, insist, try, try again, until you have it. Because this is how you learn.
A couple of years later I won my first prize in Campus Party. And the next one I won two more. Without perseverance, without my passion for videogame development, I could never have won any.
Eventually, I decided to move out of videogame development because the industry was too rough for my taste. But I know videogame development was one of these dots you can match later when you think what you have done in your career.
My years as a freelance
At some point, I have the chance to establish myself as a freelance. You don’t know how it’s like until you try.
And it’s not easy.
I was freelance for three years. I learnt a lot about how to manage customers, behave with them and be paid.
And I learnt one single truth: if you work as a freelance doing projects for customers you are working for a third party anyway. This is NOT a company.
It was not that bad and I made some money, but in the end, I arrived at a predictable point: I was not learning anymore. Don’t get me wrong, you can learn yourself and I am maybe an example of that, but it’s much faster to learn from others.
So I decided to move on.
Let me give you some advice: if you work as a freelance, then try to do strong contracts, part of the payments in advance, and a strong strategy on passive incomes and customer retention. Try to be a company and have the strongest structure and processes you can.
Growing, growing, growing
So I started to work for some startups and big companies to gain experience in backend development in PHP.
I became a senior backend developer, and architecture and infrastructure design started to be my speciality.
And eventually, I became a lead developer.
When you move from a development role to a managing role you must accept some things. And you have to learn some other.
You have to learn how to delegate, trust others and become responsible. You have to accept you are not the lonely developer that only write code.
My advice would be: learn how to trust others and how to value their work. How to calm down, you and others. The pressure is the best receipt to failure. You will find difficult to manage people. People with ego. I have been one of them, and I am ashamed about it. My only one advice on this is that, regardless this kind of people can be rude -we can- they are right often more than not. Don’t ignore this simple truth just because you don’t like their ways.
And then, I became CTO
I have to thank Elma for that. I know this is a big opportunity, an opportunity many people never have, regardless of their technical level.
One of the most overwhelming things you feel when you arrive at this position is that you don’t have excuses anymore. At least, at a technical level. You are responsible for any technical decision you make. Even when you delegate decisions to other people, you are their manager, so you are the top responsible. And this can be hard at the beginning.
Then, you start to understand why your previous CTO’s made some decisions, even when you thought they were stupid ones. And you feel bad for haven’t had more empathy.
Try to have empathy when your managers make decisions you don’t understand because they are looking at things from other perspective; and, as a CTO, try to listen to everybody: you are not always right.
I have made lots of mistakes in my career, and often rather than not it has to be with ego. I’ve improved this a lot, though.
But I also have done some right things in my journey, and most of them have to be with perseverance, passion, and eager of knowledge.
I hope you can find some useful advice for your journey!