Berlin for a month

A month ago my family and I left our home to go to a new country and city for a month. As an experiment. As a source of variation. As something new. As an adventure.

The background to going to Berlin is that we’re starting a new office in Berlin and people need to be onboarded (we are also looking for people in Gothenburg). This requires someone on the ground. At the same time, we, as a family, have been playing with the idea to relocated for a longer or shorter period and the timing of this opportunity was nice, as the length of the trip was short enough to be manageable.

The move led to a lot of changes. We went from a city of 40000 inhabitants to Berlin with around four million. We moved from a house of 200 square meters to a two room apartment of around 50 square meters. We also moved from two working adults with kids attending school, to four weeks of home schooling and one parent taking care of the home.

From a work perspective, it has been fun to get to know a group of new colleagues from all over the world. From that perspective, Berlin is very un-german. Everyone seems happy to speak English and you always encounter people from various background. Still, I got some proper german practice, so I now master explaining that my german is bad :-)

From a family perspective, things have been better than I ever expected. The benefit of a big city is that there are a million things to do. The feeling is more that we are running out of time, rather than that we want to go back home again. Also, the sheer selection of playgrounds in Berlin is really great. We have three good playgrounds within 2-3 blocks from our apartment, so plenty of variation.

Another family related issue is the ease of commuting. I went from a 45 minutes train ride to a 3-4 minutes walk, which gives me a lot more time to spend with my family. At the same time, it does take away 90 minutes everyday of concentrated mail management, which means that my inbox currently is in a very sad state.

Another aspect in the same direction is that we spend a lot more time together as a family, partly since the kids don’t run off to their friends right after school. This also means that I get a lot less free time for taking care of hobbies such as foss-north and foss-gbg.

As you can tell, most aspects of this temporary change are double-edged. If I were to move anywhere permanently, some of this would have to be resolved. At the same time, I got a month of working in Germany combined with way more time with my kids and wife than I usually get, so I would not want to change anything. I think that this picture really sums things up. Berlin is a city of contrasts and compared to my life in Sweden, the way I lived in Berlin had a strong contrast as well.

Building Qt on Debian

I recently followed the advice of @sehurlburt to offer help to other developers. As I work with Qt and embedded Linux on a daily basis, I offered to help. (You should do the same!)

As it is easy to run out of words on Twitter, so here comes a slightly more lengthy explanation on how I build the latest and greatest of Qt for my Debian machine. Notice that there are easier ways to get Qt – you can install it from packages, or use the installer provided from The Qt Company. But if you want to build it yourself for whatever reason, this is how I do it.

First step is to get the build dependencies to your system. This might feel tricky, but apt-get can help you here. To get the dependencies for Qt 5, simply run sudo apt-get build-dep libqt5core5a and you are set.

Next step would be to get the Qt source tarball. You get it by going to https://www.qt.io/download/, select the open source version (unless you hold a commercial license) and then click the tiny View All Downloads link under the large Your download section. There you can find source packages for both Qt and Qt Creator.

Having downloaded and extracted the Qt tarball, enter the directory and configure the build. I usually do something like
./configure -prefix /home/e8johan/work/qt/5.9.0/inst -nomake examples -nomake tests. That should build everything, but skip examples and tests (you can build these later if you want to). The prefix should point to someplace in your home directory. The prefix has had some peculiar behaviour earlier, so I try to make sure not to have a final dash after the path. When the configuration has been run, you can look at the config.summary file (or the a bit higher up in the console output) and you can see a nice summary of what you are about to build. If this list looks odd, you need to look into the dependencies manually. Once you are happy, simply run make. If you want to speed things up, use the -j option with the highest number you dare (usually number of CPU cores plus one). This will parallelize the build.

Once the build is done (this takes a lot of time, expect at least 45 minutes with a decent machine), you need to install Qt. Run make install to do so. As you install Qt to someplace in your home directory, you do not need to use sudo.

The entry point to all of Qt is the qmake tool produced by your build (i.e. prefix/bin/qmake). If you run qmake -query you can see that it knows its version and installation point. This is why you cannot move a Qt installation around to random locations without hacking qmake. I tend to create a link (using ln -s) to this binary to somewhere in my path so that I can run qmake-5.9.0 or qmake-5.6.1 or whatnot to invoke a specific qmake version (caveat: when changing Qt version in a build tree, run qmake-version -recursive from the project root to change all Makefiles to the correct Qt version, otherwise you will get very “interesting” results).

Armed with this knowledge, we can go ahead and build QtCreator. It should be a matter of extracting the tarball, running the appropriate qmake in the root of the extracted code followed by make. QtCreator does not have to be installed, instead, just create a link to the qtcreator binary in the bin/ sub directory.

Running QtCreator, you can add Qt builds under Tools -> Options… -> Build & Run. Here, add a version by pointing at its qmake file, e.g. the qmake-5.9.0 link you just created. Then it is just a matter of picking Qt version for your project and build away.

Disclaimer! This is how I do things, but it might not be the recommended or even the right way to do it.

The Humane Tech Interview

I am in a position where I interview job candidates. What I do is called the tech interview, which is an early vetting before we start discussing money and other contractual details. This is usually between one and two hours over Skype or telephone where I have to judge is a candidate is technically skilled and fits into the team. So, how to go about this?

I’ve seen many approaches. You can interrogate the candidate, you can ask about details about every line item on the résumé, you can ask the person about strengths and weaknesses. To me, all of these approaches are defunct – I want to have a conversation, not an interrogation. There does not have to be a right or wrong answer, just an opinion. This usually takes the tension out of the situation and makes the candidate open up. It also allows me to expose my weaknesses to make it more comfortable for the candidate to admit his or hers.

Going in to an interview, I usually make a list of topics that are relevant to the position in question. This can be knowledge about Linux, git, Qt, JIRA, agile, and so on. For each of these questions, I know what we do at Pelagicore, but instead of asking about the candidate’s experience with what we do, the questions from me goes like this:

– So, what kind of source code versioning system have you been using?
– Comparing git to svn, what did change, from your perspective?
– Could you see any situation where svn would be better than git?
– We use git like this, is there anything that you’d like to change with that?

As you can see, the questions are more about opinion that right or wrong. The point is that if you know the technology, you can pick up competence and experience through this discussion instead of asking about very specific details which easily can create a stressful situation for the candidate.

I generally do the same for technologies, e.g. what is your favorite feature of C++11? in what situations does that help you? Kickstarting a discussion instead of an interrogation.

Then we come to what I call the comfort zone questions. What do you as a person like, irregardless of the position being in question?

– Do you like to code drivers, middleware or end-user applications?
– Do you prefer to get a problem and really dig into it – like a complex bug – or do you want to be the generalist that holds the team together and spreads knowledge?
– Do you like to have a predictable day where you pick a task and carry it out, or do you like to work in a more reactive way, close to the customer and the chaos of reality?

There is no right or wrong here, only dimensions that can be discussed. There are lots of why and how and did you experience this in a previous job type of questions to keep the discussion going here.

During the entire interview I try to keep the conversation natural while moving through my checklist. I also try to check for a few basic signs, e.g. I like when the candidate has an opinion that differs to mine about something, I like the candidate to not be a 100% match to the position, I also like for the candidate to admit not knowing or being familiar with something. Nothing of this is dramatic in the context of a conversation, but in my experience it helps sorting out the honest and open candidates from those who try to provide the right answers the whole time.

This is what I try to do to make the interview more humane and less stressful. How do you like to do interviews? How do you like to be interviewed? I’d love to hear back from you.

foss-north 2017 follow-up

On the morning of April 26 I arrived at our venue, preparing for around 120 people to fill the rooms at foss-north 2017.

I’m still in the post-event cleaning up phase, so the visitor questionnaire has not yet been sent out, but the feeling is positive. This year we expanded changed venue and moved from one to two tracks. This led to more administration with two room hosts and double video recordings, so that everyone could see everything. The videos are available online now. You can either find a specific talk from the talks and speakers page, or simply enjoy the entire playlist here:

I’d like to extend a big thank you to everyone who made this possible: Jeena and Johnny helping out recording videos and hosting. All our speakers. Our partners Swedsoft, FSFE and BRG. Our sponsors Semcon, Rebel Alliance, Blackduck Software, Capture Innovation and Qamcom. And all the visitors. Without anyone of these pieces, the puzzle would not come together.

I’m already looking forward to seeing you next year again!

Five days and counting

It is five days left until foss-north 2017, so it is high time to get your ticket! Please notice that tickets can be bought all the way until the night of the 25th (Tuesday), but catering is only included is you get your ticket on the 24th (Monday), so help a poor organizer and get your tickets as soon as possible!

And just to reiterate what’s on the menu. This is a full day conference with two tracks and many interesting speakers from many projects, including Debian, Wikimedia, KDE, systemd, PulseAudio, Nextcloud, PostgreSQL, OpenRISC, flatpak, AsteroidOS and more.

Last year, over 30% of the tickets was sold in the last 48h. This year, we cannot provide catering for the ones buying tickets the last 24h, so hopefully the peak will come earlier. For now, we have 93 persons on the visiting list, but there are chairs for 100 more!

foss-north speaker line-up

I am extremely pleased to have confirmed the entire speaker line-up for foss north 2017. This will be a really good year!

Trying to put together something like this is really hard – you want the best speakers, but you also want a mix of local and international, various technologies, various viewpoints and much, much more. For 2017 we will have open hardware and open software, KDE and Gnome, web and embedded, tech talks and processes, and so on.

The foss north conference is a great excuse to come visit Gothenburg in the spring. Apparently, Sweden’s wildest city!

Just three days left…

The call for papers for foss-north 2017 ends on Sunday. That means that you only have three days to…

  • … get a chance to visit Gothenburg, Sweden, the most sociable city in the world!
  • … speak in front of a great audience of 220 people (if we sell all the tickets – get your’s here).
  • … listen to other awesome speakers. Right now we’ve confirmed Lydia Pintscher, Lennart Poettering, Knut Yrvin and Jos Poortvliet. (There will be more awesome speakers announced when the call for papers is over).

So what are you waiting for – submit your talk proposal and join us at foss-north 2017!