Ending my fastlane chapter

I’ve built and published iOS apps for over 8 years now. Back then the App Store review times were over 2 weeks, iTunes Connect would allow only uploads of a single screenshot at a time, there was no CocoaPods… and code signing was pretty much the same as it is today.

In 2014, I sat in my dorm room and started working on a tool to solve some of the challenges I faced as an iOS developer. It started out by just automating the upload of screenshots and binaries to iTunes Connect. After publishing the initial version in November 2014, the iOS community seemed excited about it. It slowly went from just deliver, to more tools like snapshot to generate the screenshots and pem to automate iOS push notifications.

Fast-forward to today, I’m so humbled by what fastlane has grown to be. It has changed the way large iOS teams work every day, how they release their app updates, and how code signing works. It even enabled founders to start new businesses using fastlane as their core foundation.

I’m so proud to see how the community has grown around it. When fastlane initially launched, it supported only 10 integrations. Today there are over 570 different integrations, from code coverage reports, beta testing services to build version management. All of this wouldn’t have been possible without the all the 922 contributors of the fastlane main code base, all the authors of the 355 third party plugins, as well as the fastlane core contributor team.

It was great to see fastlane evolving from a small side project, into a stable, self-sustainable open source project with a strong community of contributors around it. I have no doubts that fastlane will continue growing stronger in the next years, with the support of Google, as well as other companies and individual contributors.

📯 After 4.5 years it’s time for me to step away from fastlane, and with that leave Google.

As for what’s next, I don’t have any specific plans yet. I’ll be taking a vacation and then figuring out what problem I’m excited to solve next :)

As always, you can stay in touch on Twitter and Instagram.

What does it mean for fastlane?

Google will keep investing in fastlane. There will be no changes to fastlane and its support system. To get help with fastlane, submit an issue on GitHub. At the same time, we will continue accepting new fastlane core contributors, meaning you can get full push access to the fastlane code base.

Thank you

I’d like to thank everyone from the Twitter Fabric, Firebase and Google Cloud teams for taking fastlane where it is today. I’d like to specifically call out all the contributors and the iOS community for welcoming fastlane and continuing to support it. In particular Hemal who believed in my vision and helped me grow personally and professionally.

Tags: fastlane   |   Edit on GitHub

How I silently changed my profile picture every other year

Ryan Hoover hasn’t changed his profile picture for about 10 years now.

He talks about it on his blog “Why I Never Change My Profile Pic”:

People recognize you by your avatar. Once changed, followers need to re-associate the new photo with your person.

I very much agree: whenever someone changes their profile picture, it takes time to get used to it, and start recognizing their avatar in timelines again.

Back in 2014 I took a photo at the local photo studio Die Fotogräfin:

Felix Krause in 2014

2014

After a while, I didn’t like the fact that the profile picture isn’t updated at all, but also I wanted to follow Ryan’s advice. The solution?

Let’s take the exact same picture again, same t-shirt, same light, same background, and same pose:

Felix Krause in 2016

2016

I silently changed the profile picture on Twitter and GitHub, and almost no one noticed, with just a few tweets calling me out.

It even went that far, that Peter Steinberger covered my profile picture story in his conference talk about personal branding.

Using this approach, you can keep the recognition value, while making sure your current profile picture reflects on how you currently look like.

Following the “Continuous Delivery for your profile picture” approach, I took another one this year.

Felix Krause in 2018

2018

Again, almost no one noticed, with only one tweet mentioning it.

So here are the last 6 years in profile pictures - I plan on continuing this strategy and take a new photo every second year:

Tags: profile, picture, personal, brand   |   Edit on GitHub

One year nomad - a review

Background

Today one year ago I decided to get rid of my belongings and live out of a suitcase. It started as an experiment I didn’t expect to be doing for long. However after 365 days without a permanent home, I have no intentions on changing my current setup.

To summarize the last year’s thoughts on why I want to stop having a lease:

  • Money: I only spent about 200 nights at home, making it unused for almost half the year
  • Routine: I don’t like having a routine when it comes places, subway and commute
  • Maintenance: I don’t enjoy spending time setting up my apartment & repairing things

Most digital nomads run their own business or are freelancers/consultants. I’m a full-time Google employee working on fastlane here in New York City.

How is the nomad life so far?

  • I enjoy the flexibility of changing cities and neighborhoods as I want
  • Living out of a suitcase & carry-on has worked surprisingly well: while I do have to limit the number of items I own, I haven’t had any troubles with it. Getting through the New York winter is a little trickier, so I keep one winter jacket in NYC, and one in Europe
  • Maintaining fitness progress is trickier, mostly due to the change of kitchen on every move
  • One time I stayed on a boat in New York 🛥
  • I got to stay in 8 different New York neighborhoods
  • I always have clothes for 12 days with me
  • I never forget stuff as I always have everything with me, there is no such thing as “I didn’t bring X on my trip”

Money

One of the main motivators of starting my nomad life was to save money. Today I did the math to see if it actually worked.

The last 365 days I:

  • Spoke at a total of 7 conferences, in Russia, Austria, USA, Serbia and Norway
  • Visited the SF Bay Area 3 times for team offsites and WWDC
  • Stayed with my family in Austria for a total of 2 months
  • Stayed at “home” in NYC/SF in Airbnbs for a total of 231 nights paying a total of $26,130 (63% of the nights of the year)

As mentioned in my previous nomad post, the average rent in Airbnb can be assumed to be about $3,000 for a studio apartment. Including utilities, furniture and other expenses related to the apartment, you can easily pay a total of about $40,000 per year if you want your own apartment in Lower Manhattan.

Meaning I saved about $14,000 by going nomad, while having far less responsibilities, as well as get to see new places and neighborhoods each month.

Airbnbs

Most of the times I lived in Airbnbs in NYC, my experience with it has been pretty good so far. The check-in usually works by picking up the key from a KeyCafe in a nearby Deli. This part is quite tricky, as I have to enter the Deli with all my stuff, and then climb the stairs as most older buildings in NYC don’t have an elevator.

My friends working at Airbnb are happy about the fees I pay on each booking :)

One thing that has proven extremely useful is using the best travel credit card you can get: By receiving 4.5% cash-back for each travel-related purchase, I get over $1,000 for free every year by living in Airbnbs and using my credit card.

For a few nights I stayed on a boat in New York through Airbnb, costing the same as all my other Airbnbs per night (note: it’s the small one in front).

One highlight was a 2 weeks trip to Taipei together with @taquitos to work together, instead of meeting in San Francisco or New York.

Conferences

When being invited to speak at conferences, the conference organizers cover the hotel during your stay. Every night they cover saves me about $100 (assuming the SF/NYC rent prices), as I don’t have to pay my lease during that time. I usually combine multiple conferences on one multi-week trip and cover the hotel nights in-between instead of flying back and forth.

Friends & Happiness

This is something I talked about in the original nomad blog post: If you travel to a new city every other week, it’s going to be really difficult to build up close relationships with friends. That’s why I’ve been a big fan of the current setup: I stay in the same city, but move within it, meaning I get to hang out with the same group of people and spend quality time with them, while still having the benefits of a nomad life.

Since February 2018 I’m tracking my mood & happiness level 3 times a day, here is the result so far:

3 times a day I answer the question on how I’m feeling on a scale from 0 to 6 using my open source Telegram bot

If today were the last day of my life, would I want to do what I am about to do today?” And whenever the answer has been “No” for too many days in a row, I know I need to change something.

As everything in life, things are an up and down. The overall trend is visible as the green line, which is clearly a wave going in cycles. I marked the I'm feeling average level as orange. Ideally I don’t want any of the other colored lines to go below it. One-off values below it are common as seen as the light gray dots. Looking at the graph, every time the blue line dropped below the orange one, something happened that affected my overall mood. It’s good to see the line usually recovering back to normal rather fast.

Fitness

I’ve been spending a lot of time working on reaching my fitness goals in the year of 2018, and it has worked surprisingly well:

  • The last years I did mostly power lifting, so I also gained a good amount of fat. As of February 2018 I wanted to work on appearance and wanted to focus on a clean diet as well as a different workout
  • I lost 25lbs (11 kg) within 6 months while keeping a good amount of muscle mass
  • I stopped cooking at home, as finding things at a new kitchen and setting everything up doesn’t work if you’re only staying for a week or two. Instead, 100% of my meals were from the Google office and eating out. This makes following a strict nutrition plan a lot more difficult, as I can’t track the exact macros, and don’t have control over the fat that’s used
  • I managed to drop my body fat percentage by 6%, to a total of 8.9% according to the DEXA scan (the only decent-precise way to measure body fat)
  • I travel my own travel scale to track my body weight every morning
  • I track everything I eat in MyFitnessPal. Tracking food is a game changer, no matter how well you think you eat, MyFitnessPal will most likely tell you otherwise if you haven’t tracked macros in the past (very thankful my fitness trainer @faronsalisbury convinced me to do this)
  • I usually stock up the fridge with a few essentials, being frozen chicken breast, frozen veggies, black beans, oatmeal and some diet sodas.
  • Having a routine, and your own place with your own kitchen would make reaching fitness goals easier

whereisfelix.today

A joke project I started back in February 2018: whereisfelix.today

As people in SF/NYC travel around a lot, it’s often difficult to schedule time to meet. Most conversations start with “Hey, when are you back in New York?”. I decided to buy this domain for fun, and have my travel schedule up there.

The reactions from people when I send them this link are great. I now even have a shortcut on my Mac to type the domain for me.

It’s a real-time dashboard of which city I’m currently in, as well as my upcoming travel schedule. Over the last few months I added more and more information to it, including my current mood (which I track with my open source Telegram bot), the macros I ate today, current time, weight and most recent Instagram pictures.

I used this project as an excuse to learn some things I haven’t used yet: TypeScript, node.js, Angular, and immutable deployments on Zeit.

The website itself is also open source on GitHub.

Downsides

  • Turns out, government entities and banks are not so familiar with the concept of digital nomads and are not happy when you tell them you don’t have a home address, nor a utility bill or lease agreement. I’m happy I opened all my financial accounts before this change, as it for sure makes things a little more complicated.
  • Moving around is exhausting, even if you only carry your suitcase + bag. It still takes about 3 hours to move to a new place.
  • Everything around fitness, from tracking, cooking to buying food in bulk, to meal-prepping would be a lot easier if I wasn’t a nomad
  • Media: I don’t watch a lot of TV, nor play a lot of games, but when I do, it’s annoying to get things up and running. Setting things up takes time, and is usually not worth it. I end up watching Netflix just on my phone, and the only console I have is the Nintendo Switch, as I can play without a TV. The same goes for the sound system: I ended up buying my own portable speaker I bring with me so I don’t have to deal with learning how each apartment’s sound system works.
  • It takes a lot of time finding good Airbnbs, lots of hosts don’t respond and you have to plan ahead
  • I miss having a proper working setup outside the office: Having an external monitor and a standing desk is something I really learned to appreciate. As shown in the pictures in this post, I carry around a mobile MacBook stand, as well as Apple keyboard, trackpad and mouse.

Conclusion

Living out of a suitcase comes with its challenges. You learn a lot about yourself, what you need, what you appreciate and how to optimize your life around not owning a lot.

I really appreciate the chance to re-invent your daily schedule every time you move. You learn a lot about different kinds of apartments and what you make use of most often.

Staying in one city, and moving within it has proven very efficient when it comes to being productive, getting to know new people as well as staying close with your friends.

It is possible to reach your fitness goals without a fixed routine, and without cooking, however it does make things a little more challenging. Having a gym membership with a chain that has multiple locations in your city is key 🔑.

I’m really happy I made the switch, it has been a great journey so far.

Tags: digital, nomad   |   Edit on GitHub

iOS-factor: A methodology for building high-quality iOS apps

iOS-factor was inspired by the famous twelve-factor app framework, a methodology to write high-quality web services. iOS-factor uses the same structure and similar principles, re-written and applied to the iOS app development processes.

Background

Over the past 10 years, the iOS development process has shifted drastically:

  • from supporting a single device to a wide range of available iOS-powered iPhones and iPads and various platforms like tvOS and watchOS
  • from manually including git submodules to using dependency managers
  • from iOS apps mostly running locally on-device, to iOS apps heavily relying on backend services
  • from iOS app review times of more than 2 weeks to less than a day
  • from installing an app on your phone using iTunes to distributing apps through the official TestFlight channel
  • from uploading 5 screenshots per language to iTunes Connect to 110 per language, as well as app previews
  • from plain Objective-C/C++ apps to a mix of languages including JavaScript
  • from slow releases whenever something is ready, to shipping every single week
  • from full releases to A/B testing, slow rollouts and automatic regression detection

What’s iOS-factor?

iOS-factor is a project I started in May 2018. It aims to provide a collection of best practices for building high-end iOS applications. Each topic is covered by a factor, which describes an ideal state of how a certain category of the iOS app development process could look like.

Due to certain limitations (like Xcode running only on macOS) not all requirements can be fulfilled. This project aims to define goals, as well as the best current approaches to solve some of the challenges we’re facing.

iOS-factor is all about the bigger-picture iOS app development processes and architecture decisions and will not cover any language specific challenges.

This is a living project, maintained by the iOS development community. You can find the full source on GitHub and update existing pages or add new factors.

Open iOS-factor.com

Tags: ios   |   Edit on GitHub