About

avatar

Carlos Talavera

Web Developer

Hi, I can't (and won't) describe myself in a few words, so here's my story

My name is Carlos Talavera. I'm from Mexico. I was born in a city called Torreón, in a state called Coahuila back in 2002 (it's been a while, I know). Since I was a child I've always liked computers. When I was a kid I had a computer with Windows XP with a fairly modest hardware, which is the nice way to say that it was tremendously slow. So I was always trying to make things to improve its performance, reading articles, watching tutorials and researching about how to make it a bit faster.

I used to spend my childhood playing a lot of online videogames (in the browser, there was no other way) because I really liked being there. I also used to play a lot with my friends in the real world, sports and stuff, but being in front of a computer is something that I have always enjoyed for real. It even feels natural to me.

I studied a technical career in programming in high school. There I learned the fundamentals and in my free time I took web development courses because that was what I was most interested in. I remember when I learned HTML and CSS with a free Udemy course that I found out there. I was doing the design of the homepage of a blog which had a login form and at the end the instructor said that "in order to make the form functional and give interactivity to the page, you need to learn JavaScript".

At that time I was excited to keep learning that mystical thing that JavaScript seemed to be. However, I ended up learning PHP and MySQL first in some other place because, well, it's easy for the road to learning to be messy when you don't know what you need (which at present time is known as "tutorial hell").

After finishing those tutorials, I took a course on complete web development, that's what it was called, and it truly honored the name, it covered HTML, CSS, JavaScript (finally), jQuery (you can tell it was a different time), PHP and MySQL. The final project was a website for a conference, with a dashboard, PayPal payments and so on. Quite comprehensive. There's where I really learned the web development fundamentals.

I continued taking courses on the technologies that I already knew and some others that started to be widely used. I read the docs of the tools that I used, made projects and asked in forums when something didn't work as expected and I couldn't find information elsewhere, and after a while I started to work as a freelancer. My plan was to gain some experience as freelancer and apply to companies afterwards. I wanted to feel more confident about my knowledge.

I had explained my parents that in the IT industry a degree is not necessary, however my mother told me something that would mark me: "We haven't worked so hard that you don't have a degree". So, with the help of my older brother, I found an online university that offered me the possibility to study computer engineering with the flexibility I needed to be able to continue learning about the subjects I was interested in, complete projects and supplement what the university taught me. It also had the advantage that if I took the maximum curricular load, I could finish it in only 2 years and 8 months.

Almost a year later I quit freelancing (I'm currently only maintaining one project and plan to leave it that way) to focus on working in the industry and I got my first job at a company. I quickly realized that the rhythms of development and the lack of knowledge about good practices provoked what is known as "code degeneration", which refers to the fact that the code loses its quality over time as more and more features are introduced, and this is even worse if no testing is done (in code), which is sadly a common practice.

Also something that bothered (and bothers) me a lot is that the pace of development leads to a lack of clarity in the requirements, so if you don't know precisely what needs to be done, how can you expect to "ask" a computer to do it? This kind of discomfort led me to rethink what exactly software development is all about. Spoiler alert: you have to write code for people, not for machines.

So after a year I decided to leave the company, thanking them for giving me my first opportunity in the working world, to focus on learning how to develop truly sustainable software (yes, that's the word), that is easy to change and easy to understand. But the knowledge is useless if not shared, so I write this blog to pass on my learning, not only about sustainable code, but about whatever I've learned from my stumbles in developing software and that I want to share here so neither you nor anyone else will break their heads over the same problem.

I hope that this knowledge will transcend and be reflected in the projects of all the people it reaches, and also in future projects that I develop myself as part of my learning or future job opportunities where I can help companies and people through software. At the end of the day that's my goal, to have a positive impact on the world through lines of code that tell the story of everyone involved.