On the social responsibility of us, software engineers

“It is not enough that you should understand about applied science in order that your work may increase man’s blessings. Concern for the man himself and his fate must always form the chief interest of all technical endeavors; concern for the great unsolved problems of the organization of labor and the distribution of goods in order that the creations of our mind shall be a blessing and not a curse to mankind. Never forget this in the midst of your diagrams and equations.”

– Albert Einstein, speech at the California Institute of Technology, Pasadena, California, February 16, 1931, as reported in The New York Times, February 17, 1931, p. 6.

Three months at Google

The last three months were extremely exciting for me. I joined Google!

After three months I can say that it was a great decision. I love being here! I am surrounded by great people, very smart and open minded… and the job is a dream job for any software engineer.

I am a Site Reliability Engineer. I make sure our software scales up the the size where it supports all the people on this planet. And we are talking about a database which stores all the google advertisement events – every time a google ad is shown or clicked, it goes to our system – so you can imagine we are talking about unprecedented scale here.

After only three months and two weeks, I got the honour to join the team’s oncall rotation. I am proud of myself. I have to say, I even surprised myself.  :)

And the adventures don’t stop here. In fact, they are just beginning…

 

Inspiration

Something to read when you feel you are burning out…

I like the *process*. I like writing software. I like trying to make things work better. In many ways, the end result is unimportant – it’s really just the excuse for the whole experience. It’s why I started Linux to begin with – sure, I kind of needed an OS, but I needed a *project* to work on more than I needed the OS.

In fact, to get a bit “meta” on this issue, what’s even more interesting than improving a piece of software, is to improve the *way* we write and improve software. Changing the process of making software has sometimes been some of the most painful parts of software development (because we so easily get used to certain models), but that has also often been the most rewarding parts. It is, after all, why “git” came to be, for example. And I think open source in general is obviously just another “process model” change that I think is very successful.

So my model is kind of a reverse “end result justifies the means”. Hell no, that’s the stupidest saying in the history of man, and I’m not even saying that because it has been used to make excuses for bad behavior. No, it’s the worst possible kind of saying because it totally misses the point of everything.

It’s simply not the end that matters at all. It’s the means – the journey. The end result is almost meaningless. If you do things the right way, the end result *will* be fine too, but the real enjoyment is in the doing, not in the result.

And I’m still really happy to be “doing” 20 years later, with not an end in sight.

These are the words of Linus Torvalds, in an interview published here: http://techcrunch.com/2012/04/19/an-interview-with-millenium-technology-prize-finalist-linus-torvalds/ So, I am pleased to see that he is not just an arrogant smart-ass but a promissing philosopher too.

DjangoCon, first day, impressions

I am so happy that I am here! It was one of the best decisions in my professional life. My goal is to grow, and I grew more this one single day than I normally do in a whole year.

The Django community is really awesome! They are really smart people. The speakers all had a very clear way of thinking, and they all conveyed messages worth conveying. They are also open minded and brave in picking their subjects. And above all, they are respectful and welcoming people. The whole community is.

The location is magnificent. The beautiful classical building of the City Hall, and the magical dinner location of the National Museum. They are inspiring, and they help remember: we programmers are in a privileged position. And we should use this power to make the world a better place.

I was sitting at dinner with an Estonian, an Icelandic, a Russian, a Norwegian, a Swedish from Finland and a Czech. Myself being Hungarian. We talked about languages. Not just programming languages.

We had a speaker who opened my eyes: Lucie. An academic researcher from the field of social sciences. And she found Django to be the most useful tool to manage their data. And she just learned it! Wow!

I met Ola Sitarska and Ola Sendecka. The founders of DjangoGirls. Inspiring young women. Strong and smart – and at the same time: kind and friendly.

I listened to modern poetry presented by the author himself. It showed me how wide the world is, and this puts things into perspective. It also woke up the child inside me, who is a dreamer and used to practice poetry and philosophy before computers and maths took over my brain.

I heard a lot about burnout. And I agree, it is a topic worth speaking publicly about. And the conference organizers are well aware of this. I saw that talented and successful people are affected by it too. And I saw how you should never, no matter how depressed you are, forget that you are a valuable person.

I could go on with this list… There is a lot more to take in.
But there is another conference day ahead of me.
I am so happy to be here!

Ars poetica

I like quality. I like elegance even more than quality.
I like solution based on sound theoretical background, because they are better in quality and elegance.
I prefer to be around engineers who share this view of values.
However, I know that software engineering needs to be pragmatic. And you cannot always follow your beautiful theory. And when I have good reasons, I can be pragmatic and compromise. In a way, balancing theory and practice is another kind of elegance. The next leve of elegance.

Virtualenv with python3

Environment

RH-based linux with python2.6 and python 3.3 (default is: python 2.6)

Problem

[ec2-user@h1 django-test-project]$ virtualenv -ppython3 env
Running virtualenv with interpreter /usr/bin/python3
Traceback (most recent call last):
File "/usr/lib/python2.6/site-packages/virtualenv.py", line 21, in
from distutils.util import strtobool
File "/usr/lib64/python3.3/distutils/util.py", line 9, in
import imp
File "/usr/lib64/python3.3/imp.py", line 20, in
from importlib._bootstrap import new_module
ImportError: No module named 'importlib._bootstrap'

Solution

sudo rpm –nodeps -e python-importlib