Thinking on hiring me?

Please read

Fernando Guillén

a Freelance Web Developer

cabecera decorativa

software development as an artistic expression

Archive for the ‘opinión’ Category

Jueves, Julio 26th, 2012

Can we come to an agreement?

There were days where JS, CSS and Ruby programmers where each other sat in different tables and in each table we were using different naming convention and it was not a problem.

Well, times have changed, and now there is not three tables any more, we have put the three tables side by side building an only one web developer table, but we still keep the three different naming convention. Which is very damaging for our flabby brain.

I’m moving my text editor from the CSS file to the JS file and back to the Ruby one, and I have to say that my tab changing is very much faster than my mental change. If naming things wasn’t hard enough now we have to switch continuously between formats.

  • CSS: variable-name (hyphen case?)
  • JS: variableName (lower camel case)
  • Ruby: variable_name (snake case)

And when I start seeing things like this:

    $( ".time-ini" ).html( this.timeIni ) ;

I feel very nervous. So please let’s come to an agreement, what about a non-binding poll for starting:

Let’s move CSS, JS and Ruby naming convention to

  
pollcode.com free polls 

I’ll really would like seeing someone with community authority telling something about this.

Note: I know the variable-name option is not possible in JS neither in Ruby but I keep it in the poll for consistence with the article.

Note2: Also I know that the CSS attributes will remain variable-name style, and there is not much we can do about this.

Viernes, Julio 1st, 2011

I don’t like end customers

This is not a flash thinking. I have not just waked up angry with something and I just have taken this decision. It has been something cooking very slow.

I remember three years ago talking with one of my respected colleagues about our freelance way of life. I was defending the experience of working with end customer, taking the project from the beginning when it is only an abstract idea, extracting to the customer all the info the project needs, to become one abstract idea in reality, teaching your contracting how to build an internet project is and what it needs.

He was in the other side: he preferred to not deal with all of this.

He had just more experience than me. The time has placed me in the same opinion.

Now I’m starting to generalize so please don’t take offense of my words at least you feel recognized on them.

The history is common and it starts like this: A new email contact achieves to my inbox, someone was looking for a freelance web developer and arrived to this web site and decided to contact me. This history has never had a happy end. Just a waste of time on my side.

These are the mistakes this customer is gonna make:

  • He doesn’t believe there is a relation between quality and price. He thinks all professionals are the same, they just have to find the cheapest one.
  • He is not calculating property the amount of resources that an internet entrepreneurship needs to wake up. He thinks that finding a programmer is enough, no idea about user experience, information architecture, graphics and design, marketing, market studies, usability, SEO, maintenance, servers, customer attention, business model, investors, legal implications, …
  • He overrates his idea. He thinks he has a million dollar idea, but he even hasn’t studied the other players, the competitors. He thinks his idea is the most important part of the project when the reality is that it is worthless without a good development in every sense of the word. He thinks he has the idea very good defined but it is just an abstraction with not definition or analysis at all.
  • He wants it all. Every stupid functionality is indispensable. Not possibility to discern between necessary and desirable. Not possibility to define a first iteration with a basic functionality. Negation of the nature of an internet project: it will ask what it needs, you just don’t know yet.
  • He is not gonna take any responsibility. He thinks his only function in this adventure is to push with the budgets and the timings. He doesn’t accept he has to work, he has to offer answers, solutions, cover no technical tasks, … and do it fast. I need him to be a companion, a partner.
  • He is not gonna take any risk. Really? you are starting up a supposedly great business and you have reserved 1.500 euros to do it real?. This is less than the vegetable store on the corner pays for rent. This is very related with the previous point: one of the biggest responsibilities he is gonna avoid is the obtaining of money. He says he has not to much money and I should understand this issue. What he is telling me is that he just failed in one of his most important responsibilities: the money supply.
  • He doesn’t sell it self. He just writes an email with petitions (usually a budget). He just says he has a great idea and he is expecting me to convince him that I’m the right professional he needs. He doesn’t say anything about him, about his experience in internet entrepreneurship, why should I accept to work with him?, which are his references?.
  • He doesn’t understand his own business model. I know better than him which the possibilities are, even which of them are possible better for his business proposition. I feel scared with his ideas. This is one of the most frustrating situations. He has lost his leadership. He is not an inspiration for me.
  • He asks me for my programming skills and what he is really asking me is to be his CEO. He wants me to build the team, to manage it, to resolve any issue, to be a technical and business consulter. And if for any reason the project doesn’t success like it was supposed to, he will want me to be the responsible.
  • He wants a fixed budget, even if the idea is properly defined and documented (what is unlikely) is literally impossible to know which are gonna be the final needs of the project, or the issues we are gonna find, or the specification modifications we will should face up.

I think I have realized that the desirable end customer, the one that knows the domain, who knows the value (and the price) of the quality, who respects me as a professional, who takes risks to stand up his idea, who has the experience to offer justified and well analyzed ideas, who understands his responsibilities, the one that is a really leader and an inspiration, who really believe on his project, he is not calling you in his own name, will be the start-up he has just created to wrap the project who will call you.

This is why my really preferred end customer, which officially are not really end customer, are the Start-Ups.

Sábado, Marzo 5th, 2011

Coding in Berlin

Ruby Room

Today I have comeback from a five months isolation bubble of coding, partnership and teamwork in Berlin.

When I talked by phone with Markus for first time I didn’t expect how wonderful and grateful was gonna be to become the new member of his team.

I just was looking for a position that allow me to work among an small developer team and I found an excited startup very concerned in find the most talented people, I have spent half of a year surrounded by 60 very interesting and friendly people from more than 22 nationalities.

The multidisciplinary team

One thing SponsorPay has confirmed to me has been that it isn’t possible to success in an Internet entrepreneurship if you only focus in technology. From the 60 people of the Berlin SponsorPay’s team only 7 of us are programmers. The big weight of the business is carried by people attending the needs of our customers and users, people thinking in new business ideas, people measuring what is working and what isn’t, people talking to other people about us, …

Of course every of these departments depends in one way or another in our small techie team, as well as we depend in the plugs to work, is a very common mistake to don’t think even in the existence and the necessity of this people as much as the programmers.

You are very wrong if your think behind a successful website there is just code.

Teamwork

This last five months have been stressful and rewarding very just in the perfect balance. I feel like I have been doing anything else but work but in the same time I feel full and not empty.

In any case my stress feeling has never been produced because an slavery schedule or my bosses pushing me, all the opposite, the schedule is based in objectives and not in hours sitting down on the chair, an the objectives for every sprint are decide by all of us with especial respect for the development team previsions.

Technically the projects we are carrying are not specially complicated, the hard part is that every thing is in continuos movement and everyone in the team has to know and to understand what the others are doing.

We have become in a git warriors.

Another hard side of our technology is that it has to deal with a high work load, with an average of 150 requests/second and maximum peaks of 400 requests/second, we have to move any feet very carefully.

The Ruby table

So this is the situation: we are 7 people dancing together in a very dense and moody multiple choreography carrying cups in our hands under an storm trying to not any drop to touch the floor.

This is why they need good dancers and this is why they can be proud of the dance group the already have.

The European Style

Another thing I have felt in my professional experience in this wonderful city is the respect for the talent.

SponsorPay is a company with less than two years wich has already raised more than 10€ Millions of venture capitals.. And of course is not the only startup based in technology business that is protected this way by investors.

What is this money for? To build a good team, talented professionals. They know to obtain this costs money, they know they need it and they know that to choose a regular worked instead a good professional is never profitable.

Why isn’t this happen in Spain? Because there are not experienced business people carrying startups, so all the startups are carried by, possibly, enthusiastic people who is risking his own money to become an idea in a reality, but, sorry I say this, this is not enough. One of SponsorPay’s cofounders, and actual CEO, left his job as CEO of Telefónica Deutschland to push up an small company that was fighting in a very risky and futuristic business model.

When have you seen this in Spain? Do you imagine this guy taking the decision to change his very comfortable, and profitable, chair to put all his expertise and, even most important, all his contacts to drive a tiny and unknown company of uncertain future born in the hands of a twenty-something entrepreneur?

The summary of these last paragraphs is something that is becoming in a ‘meme’ lately: If you are a good professional and you want to find people that appreciates and respects your value run away from Spain.

So, what have I come back to Spain?, you will be wondering… because this and this. Besides, they have offered me the possibility to telecommute :).

Friendship

But over all and the most important thing I have build in this Berlin experience has been a few really good new friends.

Miércoles, Septiembre 29th, 2010

The Programmer Time Quanta

Different kinds of work have different time quanta. Someone proofreading a manuscript could probably be interrupted every fifteen minutes with little loss of productivity. But the time quantum for hacking is very long: it might take an hour just to load a problem into your head. So the cost of having someone from personnel call you about a form you forgot to fill out can be huge.

This is why hackers give you such a baleful stare as they turn from their screen to answer your question. Inside their heads a giant house of cards is tottering.

The mere possibility of being interrupted deters hackers from starting hard projects. This is why they tend to work late at night, and why it’s next to impossible to write great software in a cubicle (except late at night).

Paul Graham in How to Make Wealth.

…Reading Paul Graham I feel someone gets me on.

Lunes, Mayo 24th, 2010

theKidsArtGallery, the most awesome virtual Art Brut gallery

theKidsArtGallery, virtual art gallery

I have always loved the kind of paintings made for people that suppose don’t know how to paint, the drawings full of colors with aggressive strokes and absolutely non pretentious motive.

After a while I realized that there is a name for this kind of paintings: Art Brut, drawings made for people without art knowledge, the outsiders. I don’t know why but this paintings send to me a lot of energy and always produce an smile on my face.

After visiting several Art Brut expositions I have found the real Art Brut artists: the kids. They are awesome, they produce the most wonderful Art Brut I have ever seen, and they do it with an incredible productivity.

My girlfriend’s nephew is one of them, I love every of his drawings, I thought that it will be a good idea to build him an small website for his drawings, not only to share them with acquaintances but also to let him know I’m very proud of his stuff.

After a few code lines written I realized that this was a multi kids’ art gallery will be a fucking good idea and this is because theKidsArtGallery has born.

I have found a bunch of pages that implements the same idea but in my opinion none of them have a good functionality.

theKidsArtGallery is a virtual gallery of paintings and drawings of children from around all countries and continents.

A gallery that respects and assesses the artistic power that have the most creative creatures on the world.

It also wants to be a place for appreciation and motivation for the children creativity.

If you have children, or any other young relative you will know that they produce a very big and uncontrollable amount of small pieces of art, theKidsArtGallery can be a good way to keep them organized and to share them.

The whole project is non-profit, I just wanted to make real a reference place for people with my same interest for the kids drawings.

The site is on continuous development, I didn’t find yet the functionality and the style I’m looking for, any suggestion on this fields will be welcome.

If you are interested on open a gallery for your small familiars or even for your old drawings when you was a child, please contact with me.

Jueves, Abril 29th, 2010

Twitter must become in an open protocol

… if Twitter doesn’t do it, someone must to.

On a recent conversation with Raúl Murciano about the new improvements on the Twitter API I was defending the need of Twitter becoming an open protocol.

The first response could be “Why is this needed?, why don’t just use the Twitter platform?“, the answer is not easy to do with the mind it is more a feeling on the heart.

Twitter has been become on an incredible simple and useful service, twitter is everywhere and it is used for anything. It has become in the chat of our age, also in an alert system, in a marketing place, there where you want to put an small piece of information there is Twitter.

So now Twitter has proved what wonderful it is, what kind of a powerful tool it is, and all this power is always better to be shared and to open it to the people.

Of course there is something wrong on my approach: Twitter has built Twitter so it deserves to keep it, to open it is not a profitable idea and all of us know what is what moves the world. But at the moment Twitter keeps distrustful the control of Twitter it has not anymore the right of keep it.

The natural way of Twitter is being an open protocol where there is not anymore only one service provider but a bunch of them, communicating with each other, and anyone can buildup its own Twitter server, and we can choose our favorite one. I don’t see the difference between Twitter and email, or IRC, or HTTP it self. How would you feel if the email service was offered only by one company?, doesn’t matter how fashion and nice guys they were.

The decisions are not anymore taken on an unilateral way, the power is not anymore owned by anyone, the tool is already uncontrollable (in the good sense of the word), the service is distributed and scalable, the privacy has a possibility, the competition helps to the user, this is the kind of sons Internet is proud of.

Technically it has not to be the most complicated of the protocols, the most important thing Twitter is offering to us right now is just us, the users. Despite the incredible server balancing technology is has to support, but this is just a consequence of being the Only One.

Twitter is awesome and Twitter can be proud of itself, it deserves all our ovations but is time to move on, Twitter has the right to keep what it has built and we have the right to do it better, if Twitter doesn’t do it someone must to.

The real question is: are we willing to change our fashion ‘@nick‘ by a one more standard and scalable ‘nick@server.com‘?

Viernes, Agosto 28th, 2009

The Rails Rumble Experience

Software development is a box of wonderful surprises and the community I have found around Ruby on Rails is the most passionate I have never met.

The last crazy geek stuff I have been involved in was the RailsRumble. A contest where small web development teams have to show what they are able to build in only 48 hours. Of course the web framework to use is Ruby on Rails, which other can you use to implement something almost finished in only this bunch of hours?

The experience, besides being a technology challenge, is a very enriching personal experience

Our group was formed by Raimond Garcia, Felipe Talavera, Carlos Matallín and me.

RailsRumble Mallorca Team

Within a few days of cross mailing conversation we had an approximate idea of what we were gonna build. The 3 developers get together at my house in Mallorca, our designer and front developer, Carlos Matallín, could not enjoy physically the experience with us, but was on continuous contact through mail, skype and video conference.

The previous night was the discussion time.. a few cups of coffee and a lot of pen and paper, our idea was incredibly simple and could become something incredibly helpful, but it was full of small details and possible solutions that should be decided before work started.

Functional Paper Doc2am, Day D -2, Hour H -48, the time of the first commit, just a very concise README.md file and go to sleep.

When I waked up in the morning my partner Felipe had already the server standing up and our most important tool working: the mail digester.

The day was very pleasing, not any pressure stressed us, our code was responding our expectations incredibly well, Raimond was concentrated on the integration test layer of our application, Carlos was sending us very correct designs time at a time, Felipe working here and there knowing all the stack of the application and me focusing on the mail parser. Time at a time we reset our bodies with a very cold dip up on our small swimming-pool.

At the end of the first day our application was working. Not on any casuistic worked well, but it was working.

The second and last day supposed to be only to correct details and test any problematic casuistics, I don’t know if it was for overconfidence or because the problems to resolve were too hard to resolve but the last commit was exactly at 2am on Sunday, that means Hour H on Day D.

The supposed objective of the RailsRumble is to convince the expert judges that our application developed on 48 hours is above the rest of them.. Our project was judged as the #57 of more than 200 applications. Not available to pass to the next level: the public vote. That suppose to mean that we failed. Nothing further from the truth. We built something very transgressor, very innovative and also very simple, we were congratulated for one of the most known Ruby on Rail gurus: Obie Fernandez, we enjoyed ourself a wonderful geek weekend and we have decided to improve the code and to expose it to the community to see if it becomes as helpful as we think.

And over all we were full up of new inspiration and energized passion towards our profession.

What was that we were working this weekend? … :), the new mailing bot to help your mailing list with informal votes: LetsDecide.us. I’ll talk more concise about it on future post.

Miércoles, Abril 15th, 2009

Satanizando Java

(Esto lo tenía por ahí desde hace tiempo… )

Últimamente está muy de moda eso de satanizar los grandes lenguajes corporativos en pro de los lenguajes de juguete.

Llevo 5 años trabajando con Java y sabéis qué os digo: que me uno a ellos, vine aquí para divertirme y creo que para eso se necesitan juguetes.

Domingo, Enero 18th, 2009

Ruby on Rails, Passenger… ¡alucinantemente simpático!

Estoy instalando Passenger (aka mod_rails) en el servidor de staging porque es lo que está ahora de moda para poner aplicaciones Rails en producción y la verdad que empiezo a entender porque.

La instalación es super sencilla, se instala como una gema:

$ sudo gem install passenger

Que en realidad lo que instala es el instalador en sí, que se encarga de buscar tu apache, compilar los módulos, buscar posibles dependencias que falten, decirte como arreglar estas dependencias y finalmente explicarte como activar el módulo y como configurar el apache para activar tu primera aplicación rails.

Osea que más que un instalador es un tutorial super amigable y fácil de seguir.

Una vez todo instalado y configurado mi primer virtual host apuntando a mi aplicación Rails intento acceder a ella y salta un error, pero no es un error de esos feos, de casque total que no sabes lo que es y tienes que empezar a navegar por los logs para detectarlo, no.. el error aparece en forma de página web dispensada por el propio Passenger que te explica amable y elegantemente que no tienes Rails 2.2.2 instalado y el comando que debes ejecutar para arreglarlo.. super simpático.

Instalado rails 2.2.2 me salta otro error, debidamente capturado otra vez por el módulo y con varias explicaciones, posibles causas y consejos para resolverlo.. en este caso me falta el database.yml.. normal que no funcione.. pero lo increíble es lo majo que está siendo conmigo Passenger.

Arreglado esto intentamos volver a acceder a la aplicación.. pum! nuevo error, falta una gema.. no pasa nada Passenger también me sugiere “A required library may not installed. Please install all libraries that this application requires.”.

Error de acceso a BD, ups! Passenger no me ha dado feedback de esto, una simple pantalla blanca con un poco sutil “500 Internal Server Error“. Ha habido que acudir a los logs para detectar la causa.. un punto menos Passenger :)

Toma otro 500 en frío, no había corrido las migraciones, ya lo sabía, era para ver como se portaba Passenger, parece ser que una vez arrancada la aplicación ya deja de capturar los errores, una pena, con lo bonitos que los muestra.

La balanza se inclina muy favorablemente y estoy encantado con Passenger.

Jueves, Noviembre 6th, 2008

Comerse un caramelo

No creo que sea posible comerse un caramelo sin acabar por moderlo.

Javier Vidal vía twitter.

a Freelance Web Developer is proudly powered by WordPress
Entries (RSS) and Comments (RSS).

Creative Commons License
Fernando Guillen's blog by Fernando Guillen is licensed under a Creative Commons Attribution-NoDerivs 3.0 Unported License.