Thursday 31 March 2016

"...then you win"? Some Thoughts On Bash For Windows

If you have not seen it yet, take four minutes out of your life to watch the announcement that Bash is going to be natively supported on Windows 10. During the video you're probably going to notice some confused-looking folk in the audience. Heck, if I was at the Build Conference I'd be confused, too.

In fact, when I first heard this story yesterday, it was such a non-event in my life that I chortled a little and thought nothing more of it. I don't even remember who it was who told me. I just remember laughing and then going about my business... Because I assumed this was a joke. The I realise that this is real. Now I've had time to think on it this, clearly, is not a joke. But it is a little weird.

Sunday 20 March 2016

Crate.IO: Anatomy Of A New Career

The eagle-eyed of you will have noticed that I have recently started a new career at Crate.IO. After 6 years in side the KDAB family (including Kolab Systems, KDAB UK and KDAB Germany) this came as a surprise to many people. KDAB gave me a lot of freedom to achieve some long-lasting successes as well as some failures for me to learn from. I will always be grateful. But it was time to move on. Here is how I ended up where I did.

What Do You Want?

1. Find an excellent team.

Having left KDAB I wanted to take the time to evaluate what I was trying to achieve with my career. I was never much of a programmer, but I like to think I have an excellent overview of software engineering as a whole. Whilst I did not want to be hacking (and no employer should want that, either) I did want to be kicking down doors. I want to kick down the doors that the other engineers did not even realise were in their way. This type of servant leadership is hugely enjoyable when you are working with the right team...

2. Product company, not consulting.

My career has been split between product and consulting work. Most recently, at KDAB, I was part of an incredible team on consultants. Those guys are solving problems with C++/Qt/OpenGL that most people would be outright scared of. The problem with consulting, though, is the lack of ownership. KDAB's engineers would achieve glorious results but not get any glory. Not only that, but often they would be working on multiple problems for multiple clients and not get the chance to feel a sense of real ownership. All software engineering is a team sport, both consulting and product work. But there is something awesome about being part of a team with a long-term product vision and ownership.

3. Free Software angle.

I have always worked in or around Free Software. This is something hugely important to me. Free Software was the subject of my PhD and has been at the heart of every job I've had. There is a certain sense of "doing it for a greater good" which really adds some good vibes to the work environment.

4. In Berlin.

I love Berlin. I might tongue-in-cheek write about the brokenness every now and then but, fundamentally, this is my kinda town. I've been here for almost two years, but I still feel like I'm new in town. In the grand scheme of things, I am. My time here is nowhere near done and so any new job had to keep me here. If this meant regular travel, so be it. Long commute? For the right job, perhaps. But with a large tech startup scene in Berlin this seemed unnecessary.

Joining Crate.IO

I write recently about my experience of attending the Crate.IO Snow Sprint. This gave me a great opportunity to meet the Crate team, learn about the technology and eat some phenomenal Leberkäse.

The Team

Needless to say, all of my boxes were ticked. I was impressed by the leadership team. The CEO and CTO were both very open about the company. This was not a recruitment sales pitch. Instead I was given the warts-and-all story of where the company and technology were at and where I might fit in to help. They are also generally cool guys with great humour under the pressure of leading a startup. Sadly, I did not get too much time to spend with the two team leaders during the sprint. What time I did spent with them gave me the impression that we all saw the world in very similar ways and that we were going to work well together. Everyone else was very welcoming of an outsider, had plenty of time to spare for me to help me understand the tech and generally made me feel like part of the team. Which I wasn't. As a nice touch, after deciding to evaluate how I might fit in, I even had the opportunity to speak with the newest member of the board, Ari Helgason. It was very nice to hear the investor's voice. And to hear that voice was genuinely excited about the technology...

The Technology

...we definitely need to talk about the technology. If I was going to dedicate myself to a product company, the product had to be something epic. Something I cared about as least as much as Kolab. Crate is a departure from what I have done in the past but shares one crucial aspect that I care about most... solving a real problem. At this time I am not going into too much detail about Crate and what it does. What I will say is this: as a database, Crate helps to solve some seriously complex problems in the Big Data space, yet it is so easy to deploy that, at the Snow Sprint, I had a three-node cluster running on my laptop, with a simple schema, importing data, within minutes of me first sitting down to play with it. SQL with scaling, resilience, containerisation and such ease of use... it's a pretty compelling story.

Looking Forward

In future posts I will write about what it is I am precisely doing at Crate.IO. For now there is a lot of hard work ahead of me and I am definitely going to enjoy the ride. I have already started to submit presentations on Crate to various conferences, so I hope to see you soon and we can talk about what I'm up to.
I recently moved this blog away from a self-hosted Wordpress (just too much hassle to keep maintained). The good news is that this new career change will present me the opportunity to go back to some of the metrics-related content I used to work on before. So, if you have been following my nonsense for some time, you (hopefully) will be pleased to know that more oversized data visualisations are on their way.

Saturday 19 March 2016

Rush Hour Berlin: A Public Transport Survival Guide

Berliners love to complain about the public transport; it's in their blood. Within the city there are two major players: the BVG, who operates the buses, trams and UBahn; Deutsche Bahn, who operates the SBahn. The advice I am dropping here is, I hope, an invaluable survival guide.

Waiting

You can always tell the most experienced users of public transport because they strategically place themselves in the correct position to get straight onto the vehicle they are waiting for. When the vehicle arrives don't make too much effort to get out of the way of people getting off. Bonus points for standing front-and-centre of the door and blocking their way. If you see some idiots actually waiting at the side to let people off, don't wait or them. Ultra-bonus points can be earned for barging straight past them as soon as you can, more if people are still trying to get off.

Getting On

Now this is most important. Simply getting onto the public transport is so easy to get wrong. As you board your tram/train/whatever you should look around to see if there is some space for you to stand or sit in. Then (and this is most important) just stand there. Don't bother to move. Simply huddle by the door with all the other commuters. You get bonus points for blatantly ignoring space further into the vehicle and ultra-bonus points for blocking the entrance of another passenger behind you, who is also trying to get on.

Getting Off

It is rush hour so, inevitably, you vehicle is going to be busy. Don't let that bother you. When you arrive at your exit there is a simple procedure for disembarking. Firstly, don't bother to wait. What a complete waste of your time that is! Instead, start pushing your way to the front immediately. Don't bother to check if the person in front is also trying to get off. If someone is blocking your way, first you should check to see if they are even capable of moving for you. Yes? No? It does not really matter, squeeze past them and squash them into a uncomfortable position regardless.

Payment

This is one aspect of the public transport that most people fail to understand at first. In theory, you are supposed to pay. Many people actually get annual passes from their work or school. If you're one of the other folk that are supposed to pay, don't bother. Occasionally you might encounter someone with an ID and a tricorder who grunts at you. They probably want to see the ticket you do not have. No problem. Assume your finest non-German accent and in your native tongue (the further away from German, the better) say "Good morrow, sir. By happenstance I have just had my pocketbook purloined. Can you assist me with directions to the constabulary?"

Tarif Zones

Super-simple. Berlin basically only has two zones: Zones A + B and (confusingly) Zone C. Almost any ticket covers you for both Zones A + B. Zone C is special. Why? Because it is home to Schönefeld Airport and the mythical Berlin Brandenburg Airport. Both are side-by-side and are at the first stop in Zone C. That's right, you need the extra expensive ticket to go one stop when arriving/departing to the airport. Because: fuck you tourists. If you already have a valid ticket for Zones A + B (Why? Did you not read the previous section of this blog post?) then all you need is to buy an Anschlussfahrausweis. In the one stop between the airport and the freedom of Zones A + B you are almost guaranteed to have this magical little ticket checked. The correct procedure is to insert the ticket into the mouth of the person with the tricorder.