First 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

Milestone

7 March 2015 – a special day in my programming life. I have my first contribution to a major open source project accepted and merged into master!

Just a tiny little ticket, but a great way to start contributing. (It’s one small step for a man… ) I have to say, that the process of contributing is super easy for such a big project. Yes, there are procedures in place, but they are all clear and make sense… and the community ensures that they run smoothly. The entire adventure, from picking the ticket to having it closed and merged into master took less than a day.

Django (see code on github) is an awesome project, and has a most awesome community, by the way! If you need a great web development framework, and you like python, use it!

And that’s my contribution:
django_contrib

Using git with alternative username

I have a regular git username which I use with key based authentication, and it’s set up the most standard way, following the excellent tutorial for it from github. I use this username for work.

I also have another git username which I use for my private stuff.
Whenever I need to commit to a repository where I want to commit with my alternative username, I need to do this magic.


$echo ~/.ssh/config
Host github-sztrovacsek
HostName github.com
User git
IdentityFile /home/hanna/.ssh/sztrovacsek/id_rsa
IdentitiesOnly yes

$git remote add privorigin github-sztrovacsek:sztrovacsek/django.git

$ git remote -v
origin git@github.com:sztrovacsek/django.git (fetch)
origin git@github.com:sztrovacsek/django.git (push)
privorigin github-sztrovacsek:sztrovacsek/django.git (fetch)
privorigin github-sztrovacsek:sztrovacsek/django.git (push)
upstream git@github.com:django/django.git (fetch)
upstream git@github.com:django/django.git (push)