Skip to main content

Posts

Showing posts with the label stuff

Leaving eyeo

Thirteen blog posts later, this one notes my departure from eyeo after 4 years and 3 months. I joined eyeo around the headcount of 80 employees, and now I think there's just over 250 people there. My role coming in was as operations manager, doing a mix of infrastructure engineering and technical project management. I later on took on organizational development to help the company deal with its growing pains . We introduced cross-functional teams, departments (kind of like guilds), new leadership structures, goal-setting frameworks, onboarding processes and career frameworks.  And all of this in a rapidly growing distributed company. I'm proud and happy that for a long time I knew every employee by name and got to meet every single new-hire through training them on company structure and processes.  At some point, we had enough experienced leaders and organizational developers that I could zoom back in on working in one team, consulting them on  Git and continuous integ...

Recent Experiences - Possible Posts

Over the last year, I've been increasingly doing a lot of blogging the intranet at work. As a consequence of this, I think I've felt less urge for blogging out here. The same way an open source developer builds a public profile by having their product shared in the open, I think it makes sense for people who don't work on code to do the same in the form of blogging, vlogging, tweeting or writing posts on Twitter/Facebook. Unfortunately, the content I write on the intranet is very specific to that culture. So it wouldn't be right to copy it in here. What I can do is to iterate some of the topics just quickly in this post, and then think about what topics are worth writing more about here. Your feedback is appreciated! Write a comment below or tweet me if you want to direct my writing in a particular direction. What do I do anyway For context, the last years my role has evolved quite a bit. I have a tricky profile to pin down into a role: I've drifted from s...

Hosting Gregorio Billikopf's Empathic Listening audio seminar

Last year, I came across an awesome free resource for learning mediation and as part of that, empathic listening. As I blogged about at the time , Gregorio Billikopf 's audio seminar "Listening First Aid: An Empathic Approach" provided me some very useful knowledge, not only for conflict mediation, but for every day life: Listening is obviously a huge part of how we operate socially, and becoming better at it is something that not many think about, although it is sorely needed for many. "Engaging Conversation" by Michael Coghlan licensed CC BY-SA 2.0 Naturally, I was keen on letting others in on Gregorio's resources, but the website where the audio seminar is hosted only offers a single zip file download containing the mp3 files, and a slow download at that. In this day and age where everything can be but a click away for attention, I figured it would be worthwhile making this content more accessible. I sent Gregorio an email to ask if he was in...

Working in Teams over Working as Individuals

I recently   posted   this sketch on Twitter: Thanks to a few mighty retweets, it gathered a lot of views (9000 impressions, whatever that means). While that's fun and all, I still felt a bit sad that such an awfully simple insight can garner much more popularity than a thorough blog post that I put some hours into. So, rather than let Twitter get away with this, I'll steal my own content back into the blog :) The thread went like this: Pondering how to battle individualism in companies. For some, it is counter-intuitive that teams can be more responsive, faster and even more accountable than single individuals. Having "teams" in place is no guarantee that team work is happening. Be wary of too large teams, "I/me/mine", personal contact details instead of team point of contact. Good team is sailing crew, not galley slaves. Beware heroes, go-to persons, calling in favors and other shadow handling of work. Real teams make the work explici...

An Anecdote About Trust

Back at uni, we had a semester about IT project management , and one of the highlights was this two-day off-site where we went to a camp and did team-building kind of exercises to explore social dynamics and stuff. One exercise was called "Saboteur". In short, the mission was for the teams to recreate a complicated building block construction set in a different room. The constraint was that each team could only dispatch one person at a certain interval to study the original construction. The goal was to get to the identical structure first. Additionally, each team was "infiltrated" with an unknown amount of saboteurs, tasked with slowing down their teams without revealing their purpose. To counter for this, our team decided to use double-checking observation roundtrips to weed out the saboteur(s). The team members that were found to have provided wrong observations were excluded from making any more observation roundtrips. I remember this girl in particular th...

Mediation in Teams

I recently found myself mediating a personal conflict within a team. In this post, I'll share what I quickly had to pick up and learn in order to do so. Disclaimer: I am not a trained professional in conflict handling. If you find yourself in a similar situation, get professional help from a trained mediator and do not try to do anything without the backing of the supervisor(s) of everyone involved! Spotting the conflict I try to keep some tap on the conversations that are happening around the company, and in particular I try sensing conflicts. In this case, I spotted what at first looked like a regular somewhat heated exchange in a distributed team, and then as the discussion continued, the participants started to pull for executives to come in and break the argument in their favor. The topic under discussion was definitely a team-internal thing, so my alarm bell started chiming. This didn't feel like a regular technical discussion. It had an air of threat and desperation...

Joining Eyeo

A couple of months ago I left Viaboxx, more than five years after I started there . It was a great ride. It combined the excitement and intensity of working at a startup, with the safety of working with a profitable, self-organizing company of experienced full stack developers. During the time there I worked with everything from Raspberry Pis to huge parcel stations, from single-page-webapp AngularJS applications and Node, to state-of-the-art modern Java-cloud applications. I learned how to do infrastructure-as-code with Puppet, and immutable infrastructure with Docker. We developed our own products, did research projects and provided consulting for big enterprises - always learning, always trying out new things. Being small allowed us to optimize for learning while having an awesome culture where colleagues felt like family or great friends. Still, a part of me missed some of the challenges I worked more with when I was consulting, or working for larger companies. Helping people...

Replacing Boxen with Vanilla Puppet (for setting up a new mac)

I recently got a new MacBook at work and decided to overhaul my personal setup routine. Last time I tried an early version of Boxen , and although I was pretty happy with it there were a few things that bothered me. It is very opinionated, and I had a hard time stopping it from overwriting my .gitconfig and things like that. It also dragged in a series of dependencies I didn't feel the need for, and made Homebrew a bit weird by installing it in the non-standard location /opt/boxen/homebrew . Since Boxen is based on Puppet, and I've used plenty of Puppet on Linux, I wanted to simplify things a bit and see how far standard Puppet on OS X would get me. Warning! Make sure you don't install puppet using brew! It'll install an old version which is not trivial to uninstall. It's fairly straight forward to install Puppet on a Mac , but since there is no standard package manager, like there's yum or apt on Linux, you have to set it up with a provider, in our cas...

Android Voice Commands for Cyclists Listening to Podcasts or Music

Disclaimer: I do not recommend using earphones while on your bike, but there are times or roads where I think it's OK. Pull out your earphones when nearing potentially dangerous situations (like intersections). At least pause the audio. These tips also apply to anyone unable to look at and touch their device, leaving voice commands their only option (useful for visually impaired people, people wearing thick gloves, etc). First of all, you need an Android with a fairly new version of Google Now installed, like Lollipop. You'll need a headset with a microphone button.  I’ve got an iphone headset that works great with my old Moto G, excluding the volume control. You need to make sure that a connected headset can bypass the device’s lock mechanism . It’s in:         Settings -> Language & input -> Google voice typing -> Hands-free Your audio playback software has to work with the Google Now commands. I’ve tried Google Music and BeyondPod ...

Managing dot-files with vcsh and myrepos

Say I want to get my dot-files out on a new computer. Here's what I do: # install vcsh & myrepos via apt/brew/etc vcsh clone https://github.com/tfnico/config-mr.git mr mr update Done! All dot-files are ready to use and in place. No deploy command, no linking up symlinks to the files . No checking/out in my entire home directory as a Git repository. Yet, all my dot-files are neatly kept in fine-grained repositories, and any changes I make are immediately ready to be committed: config-atom.git     -> ~/.atom/* config-mr.git     -> ~/.mrconfig     -> ~/.config/mr/* config-tmuxinator.git       -> ~/.tmuxinator/* config-vim.git     -> ~/.vimrc     -> ~/.vim/* config-bin.git        -> ~/bin/* config-git.git               -> ~/.gitconfig config-tmux.git       -> ~/.tmux.conf     config...

Automating Computer Setup with Boxen

I just finished setting up a new laptop at work, and in doing so I revamped my personal computer automation quite a bit. I set up Boxen for installing software, and I improved my handling of dot-files using vcsh , which I'll cover in the next blog-post after this one. Since it's a Mac, it doesn't come with any reasonable package manager built in. A lot of people get along with a combination of homebrew  or MacPorts  plus manual installs, but this time I took it a step further and decided to install all the "desktop" tools like VLC and Spotify using GitHub's Boxen :   include vlc   include cyberduck   include pgadmin3   include spotify   include jumpcut   include googledrive   include virtualbox If the above excerpt looks like Puppet to you, it's because it is. The nice thing about this is that I can apply the same puppet scripts on my Ubuntu machines as well. Boxen is Mac-specific, Puppet is not. It was a little weird to get...

Calling All Programmer Podcasts

One of the reasons why I started podcasting , is that I listen to a lot of podcasts . It took me a long while to build up my podcatching portfolio. For half a year, I listened to mostly gaming podcasts because the only programmer podcasts I knew about was Hanselminutes and Java Posse . I simply didn't know what programmer podcasts were out there . Podcast discovery is about as well established as it was 10 years ago, meaning iTunes . Of course you can blindly google for "<topic> podcast", or you might start off with some recommendations from friends, but there still is no established way of discovering more podcasts of the kind you'd like (1). Another problem is that I see very little cross-pollination between the programmer podcasts. Even though they intersect just the right amount, I never heard  JavaScript Jabber mentioned on TheChangelog , for example (2). To help remedy this I've thrown together all the currently active, English-speaking pr...

How To Defeat Piracy and Conquer The Movie Industry With One Box

Some weeks ago, a friend of mine was tweeting about the crappiness of DRM and the movie industry. Well, actually I think all my friends have complained about this at one point or another. You know what the problem is (read anything by Cory Doctorow if you need more material). Instead of chiming along as usual, I decided to counter with: "Why don't you as a programmer come up with something better yourself?" The discussion that ensued gave me an idea for a business/product that I'll share here. Feel free to steal the idea and build the "BetaBox"! Imagine we built a solution for buying movies & series with all the problems of today's services removed. Imagine Hulu or Netflix, only with *all* movies and series, not just crappy old ones. It's not like Spotify is dominated by music from the 80-90's, and the newest songs are from two year's back, right? Additionally, all content can be streamed or downloaded onto all your various de...

The Stuff You Didn't Get Around To Read

Don't you think it's hard to keep up with everything going on out there? You probably think there's not enough time in the day to dig into the latest things going on in IT, science, games, sports, politics, finance, or whatever your interests are. Not to mention all those great books you got off Amazon, which are just stacking up. Maybe you got a Kindle or a tablet to help you get more reading done. And then there are those 200 videos from that awesome conference on Vimeo for free! Will have to dig through them soon. In a vain attempt to trick yourself into believing you'll get around to consuming all the material, you star it on Twitter. You tag it for later. You add it to Instapaper. Read Later. Watch Later. An ever increasing backlog of information you want to absorb, but the truth is that you'll never catch up. What if I were to say: You do have the time. You're just not using it right. You're trying to consume good information, but you'...

The Best Log Viewer Ever

This is what it looks like when I want to have a look through the logfile, to see what a user did on one of our machines one day: Read the whole story about how it works on the Viaboxx Systems blog (and upvote on DZone !).

The Google Nexus 10: A Review of Sorts

At the end of last year I got a brand new Nexus 10. I also got a Nexus 7 a bit before that, which I'll mention at times for comparison. I figured it would be a nice challenge to bring it on our Christmas holidays in Norway, and leave my laptop at home for a week. I got a bluetooth keyboard for it, and here are some of my thoughts on using it. Some of these are more Android focused than specific for the Nexus 10. Disclaimer: This review comes out a bit negative, but don't think that I'm an Apple fanboy. Before acquiring the Nexi I already had a Samsung Galaxy S on which I'm running a rock-solid ICS custom rom. I love the features of Android, and I think all three gadgets are really awesome, all things considered. Is it a good laptop replacement? It's definitely not a laptop replacement. Granted, it has some great specs, but it still feels way more sluggish than my older little i3 laptop running Windows 7. That probably has more to do with the design of Androi...

The Company Video Repo

I was recently making a couple of screencasts at work, and they were of the kind that were magnitudes better at explaining that writing the stuff down, or explaining it orally. I've also been thinking a lot about how companies like Github try to do all their work asynchronously . The prime example for this is the [idea - mockup/spike/code - pull request] cycle, aka. "every change is a pull request" : From idea to pull request Now, I've always had a little distaste for electronic communication over things like issue trackers, chat and email when there are so much richer channels available, with face-to-face with whiteboard being the best. But what if we could just enrich the async channels with this rich media? A little while ago, I   tweeted that it would be cool to leave a video message or screencast behind with every commit. (Yes, a bit like lolcommits , except it's not just for fun.) What if we had a repository of videos where it was super easy to ...

My résumé in git log

I was helping a friend shape up his CV/résumé recently. Along the way I thought it would be cool to maybe have a bit more original format than the traditional paper, so I tried it out on mine just for fun: $ git log career commit 6f554814186594113ce2060aed3e4240b7fb852e Author: Thomas Ferris Nicolaisen <tfnico@***.com> Date:   Mon Jul 01 11:01:59 2011 +0200     Software developer at Viaboxx Systems commit 1478c77d52fe41ba855fa2181527a7deea480e58 Author: Thomas Ferris Nicolaisen <tfnico@***.com> Date:   Tue Jan 3 10:03:18 2009 +0200     Senior software developer at IP Labs GmbH/FujiFilm Group     - Introduced a range of agile practices, like weekly iterations,        standup-meetings and continuous integration and deployment.      - Lead the first Scrum project, integrating services with FujiFilm        partners across the Atlantic and in Asia. commit 2326593676...