Hi. I’m Duncan Davidson.

I’m an American software developer living in Berlin, Germany. During the day, I work as Technology Advisor at Microsoft for Startups. After hours, I’m a photographer and author. All opinions here are mine.

You can find me on Twitter and LinkedIn.


Sunday, August 2, 2020

Bits from the weekend

✊🏿 Calendly founder Tope Awotona’s story about overcoming challenges is amazing. I love his closing thought: “You can dwell on all the reasons you shouldn’t do something or why it’s harder for you. Or you can just go out and do it”

🏡 Harvard Business Review has published a report about how employees adapted to being remote over these last months. A surprising tidbit: The number of 1 hour meetings actually went down in favor of an increased number of 30 minute meetings.

☎️ Personally, I’m a fan of the 20 minute online meeting. It gives time for a bit of note taking between calls, or even a quick bio break. Of course, the number of meetings that could still be an email discussion is too high.

🌍 Vox’s explainer on Microsoft’s climate change initiatives is a good read. I appreciate that it points out where the company can do better as well, including critiques of helping the oil industry continue to extract carbon from the earth and its weak public policy actions.

Tuesday, July 28, 2020

The best flight safety video I’ve seen in a long time

A local tavern in Nauossa. Amazing, the food was

👩‍🚀 Working while socially distancing in Greece is about the same as it in Germany. Too many calls on Teams. Lots of juggling coworkers’ hours with family hours. People who don’t want to wear masks indoors, so staying home is still the best option most of the time. But the food. The food is really great. And eating outside this time of year is de rigor.

🦠 We thought it was just a respiratory virus, but we were wrong, say Ariel Blecher and Katherine Conrad in the UCSF Magazine. And, it may be that our own immune systems are responsible for the worst of the damage it can cause.

🔔 Apple Maps is now sending notifications to international travelers. I didn’t get one of these last week when we traveled from Germany to Greece, but I did get three different SMS messages from a Greek number saying ”Welcome to Greece. Because of COVID-19 random testing my apply upon your arrival and you may need to self-quarantine.”

🏠 Looks like Google is planning to work from home until at least summer. I’m not surprised. Even if we do get a workable treatment or vaccine this year, the deployment of such will take a while to make a meaningful impact on the risk equation.

⚛️ From the department of cool stuff that my employer is doing, Microsoft used a 250 kilowatt-hour hydrogen fuel cell system to power a portion of a datacenter for 48 hours. Next up: a 3 megawatt system.

🖥 Git 2.28.0 has arrived, with a new init.defaultBranch option for changing the default git branch name from master to something else, like main. Soon, all the repos I own will have main as their primary branch.

Friday, July 24, 2020

Six for Friday

📲 Are my days of dual carrying mobile devices about to start again? Looks like the Microsoft Surface Duo device is getting ready to launch. I’m really curious to see what it’ll feel like in hand.

📢 The Cascadia Code font now has multiple weights, as announced by Kayla in the Windows Terminal blog. I use it as my code font on Mac OS X via Homebrew.

📸 The AP is going to equip all of its visual journalists with Sony gear. That’s pretty massive, but and makes sense to be able to have all of their photojournalists using the same basic kit based around the E-mount, from stills to video.

😱 During the flights we took on Wednesday, I saw one person wearing a chef’s transparent saliva shield. Technically, I guess it is a covering of the nose and mouth, but I think the person was seriously missing the point.

😷 Delta has already banned 100 people for refusing to wear a mask. Delta CEO Ed Bastian: "If you board the plane and insist on not wearing a mask, we insist that you do not fly Delta into the future.“ That’s an airline policy I can support 100%.

👨‍⚕️ I can’t imagine how Antony Fauci manages to keep going to work day after day. This quote from Fauci’s interview with New York Times Opinion writer Jennifer Senior is downright depressing: "But Jennifer, would you want me to say something that’s directly contrary to what the president is doing? That’s not helpful. Then all of a sudden you don’t hear from me for a while.” I couldn’t do it, myself.

Wednesday, July 22, 2020

Flying in corona times

Mr. 4 woke up at 7AM and bounced out from his room and right into our bed. “Daddy! Today’s the day, right!?”

“It sure is, kiddo!”

He’s been looking forward to this day for a long time. It’s the first time since the corona crisis started that we’ve gone on a trip outside of Germany, and it’s the first time we’ve had the chance to see any family that hasn’t involved a two-dimensional screen.

Frankly, I was a bit nervous about this trip. It was a serious stretch outside my current comfort zone. If it were just up to me, I’d have stayed happily in Berlin all summer long. So, we thought long and hard about how to make it work while minimizing variables and risk. As part of our risk mitigation, for example, we took a COVID-19 PCR swab test on Monday, as did the family on the other side we were meeting, and got the results yesterday.

Good news, the results were negative all around.

By 9AM, we were in the taxi van to the airport. Luggage in the back. Masks on. A decent plastic sneeze screen between the driver and us. Traffic in general around Berlin is still lighter than it used to be before the crisis, and getting to the airport in decent time wasn’t a problem at all. At the airport, traffic was lighter still.

The taxi driver was confused when I paid him, thinking I’d given him way too many bills. I had, by German standards. Instead of just rounding up to an even number, I had tipped well by American standards. It’s corona times. Every bit counts for service workers, and I wanted to give him a surprise to help put a smile on his face for the rest of the day.

At the terminal entrance, there was a small queue gathered. At first, I thought we were going to have to join them and wait a bit. The people there, however, had arrived so early that check-in wasn’t yet available for their flight. While we had put extra time into getting to the airport, we hadn’t put in that much buffer time. So, we went right in and were greeted by a mostly empty terminal full of empty check-in desks with one longish queue leading to our airline’s counter.

One of the things we did to help make things easier was to fly a carrier that we have status on. It’s an advantage in the best of times, and is even nicer right now. That meant we were able to go right up to the gold checkin counter and skip most of the line, minimizing the time we needed to be even in a spaced out queue with other people.

The check in counters were nicely fortified with plexiglass screens, but the clerks behind the counter weren’t wearing masks. That struck me as strange, and as putting way too much faith in the sneeze shields. Too much faith in my opinion. Otherwise, the check-in process was fairly normal, with the one addition that we had to prove that we had filled out an arrival Passenger Locator Form (PLF) online.

After check in, we moved onto the next hurdle: security. The staffers at Tegal were very serious about allowing only one carry-on. No personal items. Between Katerina, kiddo, and I, we had three primary carry-ons, but we also had a tiny kids backpack for kiddo that I hoped would pass as a “personal item”. Nope. No joy. We ended up stuffing it into one of our other bags. Good thing it was so small.

Once we met the letter of the limits, the process was easy enough. No lines. Just the usual drill. Katerina did have a rude surprise when one of the security people took her glasses off her face, then handed them back after asking if Katerina could see without them. Of course, the gloves protecting the security person would have put whatever they’d picked up from other passengers on her glasses. Needless to say, the glasses got extra attention with alcohol after we were done with security.

Next up: Duty free. The store was creepily empty. We’re not big duty free shoppers, and we didn’t stick around, but I felt a bit bad for the employees there. None of them were wearing masks, however, which struck me as really strange. I’m not sure if they would have put a mask on if somebody had approached them, but I had no interest in finding out.

The most chaotic part of the day was the boarding process. Less attention had been paid to boarding by both the airline and airport than almost every other step. People weren’t spacing out in the queue to board. Aegean used the usual process of elites board first and didn’t board from back to front of the jet like some airlines are.

Once on board and seated, I really didn’t like the feeling of people boarding past me. I really wish I had skipped the instinct —built up over years — to board in the usual group order and instead waited to board last. The carry-on limits for security pretty much meant that overhead bin space wasn’t at a premium.

Add the fact in that there were so many people wearing their masks with their noses hanging out, and ewww. I really want to make some stickers of an entirely inappropriate illustration I’ve seen online to hand to people who sport the look.

Up in the air, things settled back to something that felt reasonably ok. Food service was in prepared bags. Unfortunately, there wasn’t any accommodation for dietary needs. Given that I _do _have restrictions, I was pretty happy that I had brought my own food on the trip. I’m sure the provided food was fine, but just not for me.

At least, Aegean was still using the espresso machines they have on board. I definitely took advantage of that.

Once we landed in Athens, the arrival process was really well done. We had to wait for our row to be called to stand up, get our stuff, and deplane.

Then, after a bit of a walk, we went into a well spaced queue, presented our passenger forms, and some people were sent off to get tested. The algorithm decided that we didn’t need to be tested, so we went on our way to our connecting flight.

The only annoyance on arrival was that we had to exit out through baggage claim and then go back in through security again. I could have really done without the extra security check, but I think they were doing their best to keep the flow of arriving passengers as simple as possible. And, getting through security in Athens was even smoother than it was in Berlin.

Now that we’ve been through the process, I have to say that I’m a lot more comfortable with the idea of flying now than I have been through the crisis so far. That’s not to say that I’d recommend it.

Like I said above, we thought long and hard about the risks of this trip and how to minimize them. We used N95 masks with glasses on, and kiddo had a plastic face shield. We stopped frequently to clean up and disinfect our hands. We upgraded ourselves using miles to business class to ensure that we had more space around us on board the aircraft. And, I was really happy that the relative lack of travelers meant that it was possible to maintain social distancing in most of the situations we found ourselves in.

Really, the only part of the process that the airlines and airports really still need to do more work on is the boarding process.

Nonetheless, I wouldn’t go out and do this again casually. The process of keeping your brain alert through every part of the travel process was tiring. And, even though I’m really happy with how we mitigated risks along the way, the risks are still there. Would I plan another trip if I really needed to? Say a family emergency? Sure. Not a problem, given what I experienced today.

On the other hand, I don’t see changing my attitude about doing my best to avoid very much travel over the year ahead, especially to countries that have been a lot less effective at controlling the spread of COVID-19. I’m looking at you America, especially for anything involving work. The payoff for the trip has to be worth the risk profile and the work it takes to mitigate those risks.

Monday, July 20, 2020

Summertime travel prep

💉 The entire process of approaching travel this summer is so very different, if you’re able to contemplate it at all. The fact we live in a world where it seems perfectly reasonable to drop off a couple of PCR test swab specimens a few days before you fly is just… wow.

🇬🇷 Greece is open, at least if you reside in the EU+ or a dozen or so other countries. There’s also a process. First, you have to fill out an online form called a Passenger Locator Form (PLF) before you go so that they can find you once you’re in the country. Then, the Greek arrival protocols involve using a QR code on arrival to see if you are chosen to be tested. It’s actually not quite as strict as I would have expected. I think they should test everyone on arrival, myself.

🆘 Even once you decide to travel, I think it’s definitely a good idea to make sure that you can respond to changes. Local lockdowns will happen in seemingly random places. A surge of infections could take off at any time. Country closures can come and go in a blink of an eye. Having a thorough plan of what you’d do in a variety of situations seems pretty essential to me.

Sunday, July 19, 2020


Mr. 4 taking his first ride with pedals on his bike

🚴‍♂️ Kids in Germany start on two wheels using a laufrad, also known as a balance bike. Basically, it’s a tiny bicycle without the pedals. After a year or two running around getting the hang of balance, steering, and stopping, it’s a short hop to a bike with pedals. Mr. 4 made the transition yesterday and I’m so proud.

Saturday, July 18, 2020


Feb 20th at the Louvre in Paris

😱 In late February, Katerina and I went to Paris for a quick trip to celebrate her birthday and to catch the da Vinci exhibit at the Louvre before it closed. We were starting to try to social distance for most of the trip, but the Louvre was packed and both of us weren’t really comfortable. Looking back at the pictures I took of the crowded hall makes me downright nervous now.

🛳 In six weeks, Scott Galloway writes, the equivalent of over 2800 cruise ships with whiteboards and a young population will set sail in the middle of a raging pandemic. I have to say, if my kid was college age, I’d be doing everything in my power to encourage them to stay home this year.

🚀 We often talk about product market fit for startups as a binary thing. Either you have it or you don’t. But that’s not quite right. Richard Purcell argues that the right question to ask is “What’s the strength of a company’s product market fit?

🛫 British Airlines is the latest airline to completely retire the 747 from their fleet, moving up the planned retirement date from 2024 due to economic effects of COVID-19.

🔌 Volkswagen has stopped producing internal combustion vehicles at one of its biggest factories in Germany and is retooling it for electric vehicle production. They’re really trying to put dieselgate in the rear view mirror, aren’t they?

Friday, July 17, 2020
The former Edeka grocery store near my home in Berlin

🏗 One of our regular grocery stories in the neighborhood is now a pile of rubble. Besides being a fairly ugly East German relic, it was what the city planners call a “flat man,” a single story single use building that doesn’t efficiently use urban space. In a couple of years, it’ll be a 6-story residential building with a new grocery store at the bottom.

💶 Two of the German startups in the Microsoft for Startups program just had some major fundraises: LeanIX raised a $80 million Series D and Userlane raised a €10 million Series B. It’s really cool to see companies that we’ve helped continue to grow, despite all the uncertainty in the world.

📷 As part of the massive acceleration to online learning, the Nikon School UK is closing down in London. Going online, they’re able to expand their reach worldwide. Sure, it’s nice to learn in person, but I really love that this trend is opening up access overall.

⛈ I really like the idea of Terraform, but each time I look deeply into it for managing Azure resources, I get tripped up over lags in the feature set. For example, the Terraform azure_cdn_endpoint configuration directive doesn’t support custom domains yet even though custom domains have been supported by the Microsoft Azure CDN for a while. That was the end of today’s attempt, at least.

Thursday, July 16, 2020

Thursday’s Bites

S-bahn and regional train tracks near Gesundbrunnen, Berlin

🚶‍♂️ On my daily walks lately, my eye has been turning towards views that are urban and have the mark of people, but without the people themselves. It’s kind of a dark dystopian thing, but that’s the time we live in right now.

🐦 Twitter’s blue checkmark hack is terrifying. Admin tools, by definition, give too much access and are tempting targets to attack because of that, but it sounds like Twitter’s going to need to do a pretty big revamp of how they implement the principle of least privilege in their admin tools.

🔒 If you leverage Twitter as an identity provider to log into other services, I think right now is a good time to re-evaluate that decision.

💸 My eyes popped when I saw that TikTok has agreed to buy more than $800 million in cloud services from Google Cloud over three years. Holy smokes, I can’t help but think that something could be more efficient in their codebase.

😍 I am excited about Matt Aimonetti joining Microsoft. He’s joining a different team than mine, but I am looking forward to talking with him about how we can improve how Microsoft helps out startups.

☕️ I thought I’d satisfied my inner coffee nerd living in Portland for all those years, but no. Oren sent me down a rabbit-hole by mentioning the Decent Espresso machine. Uh oh. That might be the new toy for this fall when the days get short again.

👋 Stay safe out there. Wear a mask and review how you structure your identity online.