For January, I set the goal of implementing the PACT I created as part of the Mindful Productivity Masterclass in Ness Labs. The PACT had one must, one should, and two won’ts.
Regarding my must, I diligently put the two Pomodoro sessions toward a non-client project almost daily. I missed some days but made up for it by working more on it on other days. So I call this a success. One caveat with this goal: I find it hard to switch off again when working on my stuff. In other words, it takes more mental space than time on the calendar, which reduces my overall productivity. An alternative is to schedule the work on certain days, but I like the approach of showing up every day, so I’ll stick with it and monitor it for a while.
Regarding my should, I have probably only made a daily plan for one day. Whenever I want to make a plan, I procrastinate until I give up and start with something on my list without making a definitive decision. I could decide to give up planning and go with the flow, but I’m afraid I will eventually forget essential or urgent tasks if I don’t plan. So I should continue trying.
My first won’t was to avoid wasting time with research and reading articles unrelated to my work. I’ve been successful and read very little in January. I still save some tweets for later but mostly short-form stuff where I want to engage in conversation. Deleting those without replying because I don’t know what to write still feels like a failure, but I’m improving.
The second won’t was to avoid using social media when tired or an hour before bedtime. It is my least successful goal from the PACT, while it’s the most important. “Doom-scrolling” on Twitter or Instagram is often a waste of time and overstimulation that negatively affects mental health. Thanks to the bookmark features, it also adds things to my to-do list to engage later, as mentioned above.
Besides the PACT, the mindful productivity map includes an anchor ritual and metacognition practices. My anchor ritual is walking outside, which I do regularly. I still need to add the mindful observation practice I wanted to establish more often. I’ve tried counting the squirrels in the park that I’ve mostly ignored, while my friends who walk in the same park always mentioned them. Most of the time, I still return to my desk without a number or another observation.
As a metacognition practice, I wanted to write an interstitial journal and review my weeks with the plus-minus-next method. I’ve kept my journal, although I could write in it more. I haven’t done the plus-minus-next review in January. I didn’t find or take the time on weekends. Monday mornings, I felt so overwhelmed with the new week’s work that I postponed it until it no longer made sense.
Rituals and metacognition practices take some time out of your schedule. However, the idea behind them is that they will improve the quality of the remainder by giving you more clarity. I fully believe that, and still, I find it hard to make time for them.
For February, I’m not planning any changes to my PACT. As the must part is already working, I can double down on the other goals and the metacognition practices. I need to figure out how to make time for them. However, it’s not the lack of time but the fact that introspection can be difficult and scary because you see how different you are from the person you want to be. It is the same reason why I also fail with my should goal of daily planning because it gives you a realistic insight into the amount of work you get done without idealistic assumptions.
However, time is also a problem related to the failing won’t goal. Using social media and digital devices late at night affects my sleep schedule, which makes it harder to get up in the morning, especially on weekends. As a result, my days start feeling rushed instead of having the head-start of an early riser.
As you see, everything is connected, but I need to start somewhere. So I want to focus on the failing won’t goal. I should have a proper evening ritual to wind down the day without too much stimulation instead of ending the day glued to a screen and regretting it the next morning. That will be my focus for February.
There were a few highlights in January. I gave a talk about APIs at a local tech event. I hosted a virtual werewolf game for the Interintellect and participated in several virtual meetups and salons. Also, I met a new person from Twitter for a Zoom call. The most noteworthy thing, however, is that I have finalized a plan I’ve carried with me for quite some time: I booked another trip to India with a stopover in the UAE and am excited about it. Thinking about the itinerary, researching options, and talking to people took some time and distracted me a few times from other things, but I’m sure it’s worth it. I will tell you the details of the journey in another post. As I’m leaving in late February and returning in late March, I will write the February review post from a different continent.
That will conclude my first monthly review post for 2023.
The mindful productivity map is the outcome of the Mindful Productivity Masterclass, the homework from its last lesson. It covers four areas: pact, act, react, and impact.
The pact section describes my current direction and follows the MoSCoW method that suggests telling your goals as musts, shoulds, coulds and won’t’s. Mine are as follows:
The act section is about setting up an anchor ritual that helps you when you’re overwhelmed and can also include a support system so you know where to seek help. My anchor ritual is that I will leave my home or office and go for a walk in the neighborhood. I want to observe something in nature outside. Then, formulate the next action item in my mind before sitting down again. I will walk around the house or look out the window if it rains instead. I chose this ritual because it combines something I already do, which is going for walks outside, with something I already planned last year, becoming more present and mindful of my surroundings.
The react section is about metacognition. It’s about establishing regular review practice to see where you’re heading and whether you need to update your pact. I’ve decided to try interstitial journaling again, do a weekly review using the plus-minus-next method, and do a monthly public review on this blog (as promised).
Finally, the impact section contains my indicators of success. I mentioned a reasonable balance between being productive, socializing, and having experiences. I want to start my days well-rested and end them with a feeling of accomplishment. Also, I need to stay true to myself and have solid ethics. I think this is the section that needs some rework to become more specific.
Happy New Year! I wish for us all that 2023 will be a great year with joy, success, and whatever other wishes are on your mind. A year is just a number and a new page on the calendar, but we still like to use them as a mental model to structure time and understand ourselves. A new year is a time to look forward and make plans. It’s time to be optimistic.
In December 2021, a bit more than a year ago, I wrote a post laying out goals for 2022. It wasn’t a set of resolutions, just questions I wanted to explore and the commitment to regular review practice. Rereading this post, I could have written it just yesterday. It appears I’m no further than I was a year ago. I didn’t implement the review practice last year, but I’m trying again for 2023.
I attended a yearly review workshop hosted online by my friend Vensy. She had a fantastic review template with many great questions for analyzing the previous year and visualizing the next. The workshop lasted one hour, and it was expected that we could only do the first iteration of our answers. Doing a full review should take at least thrice the time. Still, I was shocked by the number of blank fields at the end of the hour. When we talked about this in the workshop, I said that the lack of a regular review made it so that looking at the whole year was too much at one time, which Vensy also confirmed and stressed the importance of reviewing your life regularly.
However, two more things made it hard for me to fill in the blanks in Vensy’s worksheets. There are questions that I find tough to answer, especially when I’m asked to name, rate, or compare things. Writing down my favorite X or the top 3 Y in black on white makes me very uncomfortable. I don’t usually think in superlatives or comparatives. Such statements express a level of confidence I don’t feel, and they seem unfair to those being rated, even if X and Y are things and not people with feelings and may never learn how I rate them.
The other interpretation of my difficulty in doing a yearly review could be that there wasn’t just a lot that I deem great about the year. I can’t confidently say I have progressed. Maybe 2022 was a year of stagnancy. Some notable things happened this year, such as the release of a published book, but that doesn’t count as a 2022 achievement because the work that went into it started in 2020 and primarily happened in 2021. All my major work projects were continuations of projects I started in the previous year. I had a solid URL-to-IRL pipeline (for those not chronically online, it means meeting people in person that you got to know through social networks or online communities), but that was also the result of online interactions in the previous years. I can’t think of anything I truly started anew in 2022 or unique first experiences. And I’m unaware if I’m just unaware of those, unable to celebrate them, or if I’ve become stagnant. I just turned 38 last month, and while that’s not exactly very young, it’s way too young to believe your life can’t change and you can’t make new first experiences or improve yourself.
I made some preparations for a new take on self-improvement. In November, I participated in the Mindful Productivity Masterclass hosted by Anne-Laure LeCunff of Ness Labs. As part of the course exercises, I created a mindful productivity map, planning and outlining my current direction, anchor ritual, support system, metacognition practice, and indicators of success. However, I still need to implement this in my life. I had a good excuse for December because there was almost no daily routine. I first fell ill with a cold and the side effects of dental surgery, then COVID hit, and when I barely tested negative again, I went on two business trips. First, I visited a client in Vienna, then attended the API Days conference in Paris. Afterward, it was already time for the holiday season. But I have no excuse for January, where I expect a lot more daily routine that I can optimize. I also started reading Atomic Habits by James Clear after seeing it recommended in every corner of the Internet I frequent.
Goal setting: I aim to implement and adapt the mindful productivity map for January and get back into some more tiny habit improvements. I will also post a summary of the map on this blog.
My social media strategy for 2023 still needs to be defined. In my previous post, I wrote about Twitter and Mastodon and how the future of Twitter looks unclear. I’m interested in decentralized networks, so I should use Mastodon more. But I was also thinking about investing more in Twitter and using it strategically for my business and personal goals, trying out new social media marketing tools. I should also post more regularly on LinkedIn to reach those who don’t hang out on Twitter. There are other networks that I’ve joined but don’t use. And overall, I need to ensure that my usage of these sites is healthy and that I don’t end up doom-scrolling or procrasti-reading.
However, for now, I have decided on a wait-and-see approach. More specifically, I have added figuring out social media to the not-to-do list for January. My reasoning is as follows.
At the moment, the situation with Twitter is in flux. What will Elon Musk do next? I assume things will stabilize, and he will put someone else in charge, but the company’s strategy needs to be clarified. And Mastodon is growing, but I’m curious if it will become a target for social media marketing and if third-party tools like schedulers will support that or if the Fediverse will actively resist this commercial side of social media. In about a month, I can be more confident about the state of things and see where they’re going.
The other reason is that I should focus on something other than marketing and personal brand building right now. I have a few long-term and returning clients and projects in the pipeline, so I can wait to sell more. I need to establish goals first. Three years ago, I created a website focused on selling developer content production. However, that was only one aspect of my work since then, and I’ve worked on many other things.
I’m often thinking about whether I should add more focus to my work and establish myself better in a niche or continue doing what I’m doing right now. Focusing would mean saying “No” to current projects I enjoy - and I don’t like saying “No”. But the path to growth from freelancer to an entrepreneur is productizing services, which requires some focus. So, there’s a lot on my mind that I need to figure out finally. The social network on which I announce the result has yet to have priority.
I’ll end with a Twitter thread by Thomas Frank, who claims that regularly posting on social media is insignificant. What matters more is working in seasons. Sometimes you need to go into hermit mode and create great things. Then, start “touring season” and reap the rewards. Now is my time for hermit mode.
When Elon Musk bought Twitter, I had very few expectations about the impact on the service. I’m neither a Musk fanboy nor an Elon hater (as the meme goes, I’m a third, more complex thing). He deserves credit for his entrepreneurial activities, including bringing electric cars to the mainstream car lover and reviving space travel. On the other hand, I knew some of his behavior and opinions were questionable, at the very least. And I’m generally wary of billionaires accumulating too much power, including control over an essential communication and media platform. However, I didn’t expect that Twitter would change significantly under Musk’s leadership. Now I have to admit I was wrong.
After he entered the Twitter headquarters (with a sink, just for a pun’s sake), Musk quickly changed the culture into “move fast and break things”, a motto that might work for an early startup but not for an established platform. Things have gotten chaotic, making many people worry about the long-term stability and viability of the service. I don’t want to recount everything he did and subsequently roll back. However, I’m pondering how to use Twitter in the future.
The chaos at Twitter has been great for alternative social networks. Tumblr appears to make a comeback. New competitors like CoHost are appearing. The biggest benefactor is Mastodon, though, along with the whole cosmos of ActivityPub-powered federated platforms often referred to as the Fediverse. There have been exodus waves from old social media sites into new networks, but they have yet to be sustainable. It could be different this time. I don’t expect Twitter to die or claim the Fediverse is already a complete replacement. Still, Mastodon might be the first federated network since email to graduate from geek toy to mainstream endorsement. There might have never been a better time to migrate.
From seeing the first drafts of OpenID to being a participant at IndieWebCamp, I’ve always been interested in federated and decentralized technology. Hence, observing these developments is interesting. However, I’m also worried about the financial and administrative sustainability of the Fediverse. Decentralization has a lot of advantages, but it’s neither a business model nor a panacea that solves all problems inherent to social media. In “Smoke alarm and snowfall”, Julia Racsko shares similar sentiments. Decentralized social media is an experiment that can fail, and we may find that centralization is better.
While Elon Musk seems erratic as the head of Twitter, his general idea of emphasizing the Twitter Blue subscription model over funding from ads seems intriguing. It’s another experiment that I want to see played out. It could change the overall vibe when Twitter rewards paid users more attention. The most active and visible Twitter users could be those who can justify Twitter Blue as a business expense, engaging more in promotion than conversation. Maybe we see a split where Twitter becomes even more of a broadcast network, and regular discussions move to Mastodon. Also, if the paid model works, Twitter could become what app.net tried to be. Of course, this is all speculation.
As I’m observing and speculating, I need to develop my social media strategy. I have two Mastodon accounts, but I rarely post on either. That should change because I don’t want the Fediverse to be a ghost town. On Twitter, I promote my business and my book and drive the conversation with the tech community around APIs and Developer Experience. I also engage in discussions around a broad range of interests with a vast community of active Twitter users. Doing both from the same account seems challenging, but setting up an “alt” account seems overkill, and I know there will be analysis paralysis if a tweet could fit both, and I can’t decide where to post. On top of that, I should spend less time on social media and more time creating stuff and engaging with people in the real world or more intimate virtual spaces.
While figuring mine out, I’m curious to hear about your goals and plans for social media usage in 2023 and how you deal with the Twitter situation.
“How to flirt with the world” was the name of the Interintellect salon I attended tonight. Pragya G., who I’ve been following on Twitter for a few months now, hosted it as her debut salon. I want to give a personal recount of my experience at the salon and why I attended it in the first place.
“Flirting” isn’t a word that’s been part of my regular vocabulary, and I’ve long had a lot of negative connotations. I would mostly think of cheesy pick-up lines and people (primarily men) aggressively forcing a sexual or romantic layer into a conversation instead of letting it flow naturally. It wasn’t until I came across an article (to which I sadly don’t have a link anymore) that my perspective changed. It described flirting in different terms. It doesn’t have to be sexual or romantic at all. It’s mostly just an open-minded, cheerful, light, and playful way to interact with the people you meet. It’s certainly not something I’m good at or do regularly, but I deem it positive and desirable. According to her tweets and the salon description, Pragya’s idea of flirting seems to be similar. She’s also someone I admire for her capability to feel gratitude for other people and the mundane aspects of life, something I’m not good at either.
Having attendedmultiple Interintellect salons, I observed that various hosts have different hosting styles. For Pragya, I noticed that she practiced what she preaches and flirted with all the attendees. But most of all, she cared a lot about all her attendees. She didn’t take that we took the time to join her for granted. Gratitude doesn’t always appear authentic when it seems over the top, but I could accept it as genuine from her. Maybe it’s because she told the story about one of her friends who did this for her, and she wants to carry it into the world, making others feel recognized. There’s an interview with Tasshin Fogleman that I listened to a while ago, which helped me understand from where she’s coming.
When the salon started, Pragya asked us to think of a situation in which we were involved in a successful flirt and what words and thoughts come into our minds when we think of it. One attendee came up with the term “benevolent transgressions”, which continued to be a theme throughout the salon. Flirting is always a play with boundaries; we also described it as a “dance of small steps” or “making small bets”.
Interestingly, Pragya, who does one-on-one flirt coaching, mentioned that the number one fear of her male clients is crossing too many boundaries and, thus, appearing creepy. This fear seems primarily male-coded, whereas women worry more about leading on and sending the wrong signs. In this context, most attendees agreed that indicating interest isn’t creepy, but only when someone cannot process disinterest from the other side. The conversation reminded me of a recent tweet from Clo S., who said it’s usually the “wholesome dudes” who worry about creepiness. The problem is that you cannot fully take responsibility for another person’s feelings. Yes, nobody should be a creep, but it’s practically impossible to live a life where the amount of discomfort you trigger in other people is zero because that would mean excluding yourself from potentially positive interactions. I think this is something I still need to learn and internalize. Making people just a tiny bit uncomfortable is okay as long as you are willing to admit mistakes, back off, and move on.
We touched on various other topics, such as the distinction between general and more romantic flirting. An interesting framing was that you could start with undirected flirting and then continually make it more directed to a person if they respond. People can flirt or be the receiver of a flirtatious approach without noticing it. It’s also possible to extend the definition of flirting by including things beyond people or even ideas. You can flirt with friends, but not everybody responds well, so you need to adapt. Most people like recognition and compliments, but people with low confidence may question their motives and not always take them positively.
The primary motivation for flirting should be generosity, the desire to make other people feel good. It is where Pragya’s idea of “flirting with the world” comes from, and many attendees can relate, even if there are additional ulterior motives behind the action.
It was a delightful salon; as I mentioned before, Pragya tried to make it a wonderful experience for everyone. It was also quite emotional for me, although I’m unsure if it was the room’s topic, host, or general vibe. I hope she’ll host more Interintellect salons in the future.
When I was in Lisbon for a month in 2019, I leveraged almost every opportunity to meet new people. One of the events I attended was called High Five Friending. It was a variant of a concept known as speed dating but taken out of the dating context to support a broader range of connections. A large group got together in a rooftop bar and had to install a mobile app that would ring every ten minutes to show you the picture of a person you should find as your next conversation partner. It was the first time I had participated in something like this, and I found it very enjoyable, even though it required a lot of energy to have so many conversations in a single night. This event gave me the confidence to participate in an actual speed dating event later that year, but that’s a different story.
Events facilitating one-on-one conversations are perfect, especially if you consider yourself shy or introverted. It may sound counter-intuitive initially, but I’ve noticed that I often tend to go quiet and listen without speaking in group settings. I find it hard to assert dominance and keep up with the speed of the conversation. A few people end up dominating the group. Having the undivided attention of another person, even just for ten minutes, means you can talk more and thus get more out of the encounter. Unsurprisingly, the Effective Altruism (EA) movement emphasizes one-on-one in its community-building strategy.
Local events like “High Five Friending” help find people in your vicinity. What can you do if you want to meet friends worldwide?! Luckily, a speed-dating setup works well with video chat applications like Zoom. For the Interintellect community, mingling salons have always been part of the other, along with the topic-based salons. Community members Brian Ahuja and Katrina Dela Cruz have hosted them a few times, but lately, the events happened at hours optimized for a primarily American audience. Anna Grigoryan and I wanted to attend the last one and voiced our discomfort with the scheduling in Discord. Instead of complaining or swallowing the pill of attending in the middle of the night, we spontaneously decided to team up and host our own mingle salon.
After that long-winded introduction, all that’s left for me to say is that I would love to see you at our salon. It will occur on Sunday, September 18th, at 18:00 CET. You don’t have to be an Interintellect member to come; you can book a ticket directly through their website.
Just nine euros to travel throughout the country! It was probably the most-liked policy the German government introduced this year, designed to help with rising energy costs. A highly subsidized monthly ticket granted access to the entire public transportation network in Germany, only excluding long-distance trains. You could buy it for June, July, and August, so it is currently the last month where it’s available. In our fight against the climate crisis, changing modes of traffic is a crucial building block. There was hope that it would move some commuter traffic from individual cars to buses and trains, but the effect seems small, probably because it was a temporary measure. However, the ticket supported local tourism and granted the financially poorer members of society the ability to travel.
One of the ticket’s effects was that it rekindled the discussion about public transportation prices. There has always been this idea it should be free for all. No tickets, no restrictions. Some countries or cities have already implemented it. The German government said they couldn’t afford to prolong the policy, but they want to evaluate and look into future approaches to make public transport more accessible. Political parties, transport groups, and NGOs have come up with suggestions such as a yearly 365€ ticket (1€ per day) or a tiered system with 29€/month for regional and 49€/month for national network access.
For me, the idea of whether public transport should be free or not is one for which I found it hard to form a clear opinion. As the discussion is ongoing, I’d like to share my thoughts. First, I find it hard to argue that something is too expensive when the price doesn’t even cover the cost. Long-distance train services are usually profitable, but local transport tickets sometimes cover as little as half the service’s actual cost; the rest is tax subsidies. If we further reduce ticket prices, we will eventually reach a point where the expense of running a ticket system (vending machines, etc.) exceeds the revenue. There is still an advantage to selling tickets, such as the ability to do yield management. For example, monthly passes only valid after 9:00 are often cheaper to dedicate earlier trains and buses to commuters who have to be in them and incentivize other passengers to wait till later in the day. It shouldn’t be the only reason to make people pay, though.
I have a general belief that makes me not too fond of subsidies: if there’s a person or group X that cannot afford a product or service Y, but we believe they should, we shouldn’t ask how to make Y more affordable; we should make sure X has more money (for example, by reducing taxes, increasing social security benefits or eventually through universal basic income). The problem with lowering prices through subsidies is that we minimize transparency and disguise the actual costs from the public. It also means that the government establishes preferences about the products and services it wants its citizens to purchase. It goes against free markets, so we should use it sparingly and only for good reasons. Of course, improving traffic and its climate impact could be a perfect reason. Finally, if people can’t afford or don’t want to pay even the subsidized price, they still pay for the subsidies with their taxes without getting access to the goods.
Due to the reasons laid out in the previous paragraphs, my reasoning is mainly between two alternatives: one is the current system or an even more expensive one, and the other is entirely free, ticket-less public transport. With the first option, we’d only focus on making buses and trains more attractive to use. I presume people who can get anywhere they want without a car will do so, and it will probably still be cheaper than the total cost of ownership of an individual vehicle. The second option begets the question of who will pay for it and how we can align demand and supply.
I assume we all agree that shifting traffic from cars to buses and trains is a desirable outcome because it reduces emissions and uses less urban space. However, we also know that public transport cannot cover every use case, especially in rural areas with lower population density. We still need cars, ideally small and electric, and we need to include walkability, bike lanes, and micro-mobility (think e-scooters) in the mix. Carsharing, ridesharing, hailed shared taxis, etc., can all help people get around. Which leads to another question: if all these other forms of transport (except walking) cost money, why should buses and trains be free? It would undoubtedly express a strong preference for them over any different mode of transportation. Our primary focus should be cars, though, since they are the most problematic form of transport.
One thing about privately owned cars is that they incur mostly fixed costs: purchase price or leasing rates, taxes, insurance, and checkups. The only cost that entirely depends on kilometers driven is gas or electricity cost. Still, the average car spends over 90% of its life in a parking spot, losing resale value and only 10% on the road. As a result, car owners are incentivized to use their car as the primary option to get around, and it will be mostly the cheapest option as well, as they already paid the fixed costs. If we want to minimize the use of cars, we have to reduce car ownership or move to usage-based models like carsharing, shifting from fixed costs to flexible costs. Those should be ideal for people who don’t need a car daily. The advantage is we also have to produce fewer cars because their utilization is higher. Alternatively, we need to make other forms of transport cheaper than the car you own. When we figure in the barrier of ticket purchase, I’m sure there’s only one price that works: zero.
Alternatives to car ownership, combining micro-mobility, public transport, and carsharing when you need it, already exist for those who want to use them. If we want more people to use them, we must make car ownership and use less attractive or the alternatives more attractive. The problem with the former is that it is politically hard to do. Car lobbyists and conservative politicians will frame it as “the war on cars”. Also, it will hurt people with no alternatives available who can’t afford more expensive vehicle use. Making other options more attractive, like introducing free public transportation, will likely meet less opposition. Therefore, let’s focus on this strategy. While charging for using buses and trains is fair, considering that all other options cost money and there’s no right to free mobility, I think it’s a viable way to lead the transition.
Some concerns remain when it comes to a free, tax-funded system. First, it will be considered unfair by those who cannot use it but still have to pay for it. Second, there’s a lack of incentive to improve the availability and quality of the system. Hence, I want to suggest an alternative approach.
Local public transport will be free, and there are no tickets or other access controls. However, it won’t be taxpayer-funded. Instead, there will be a mandatory fee for households and businesses connected to the network. This type of funding is not without precedence. In Germany, every home pays a media fee, separate from taxes, to fund public TV and radio channels. It is justified because everyone benefits from the existence of these media. In other countries, a TV license is mandatory for TV ownership, independent of the consumption of publicly-funded channels. There are also schemes where homeowners must pay for street maintenance in front of their homes. Why not apply something similar to public transportation? Everyone benefits from a good network, including car owners. A national government could define tiers of services, setting expectations on the quality of service. For example, a tier one household or business would have a bus stop within 300 m, from which buses run every 15 minutes during peak hours and every 30 minutes otherwise. Upon meeting the conditions, households pay a fixed fee for access to the network, and businesses might pay a minor percentage of their revenue. Another way to frame this is that the bus stop is a perk that justifies a higher rent.
The advantage of the system I described is that it doesn’t make households outside the network pay for something they can’t use, decreasing the likelihood of opposition. On the other hand, it incentivizes local governments and transport companies to extend their services to include more households and businesses and earn more money by capturing higher tier fees from more participants. The downside, however, is that some car-heavy suburbs might lobby for exclusion from the network to save money. Those who would otherwise lobby against public transportation, in general, may be the same, so at least the damage is contained within their neighborhood.
I’m not saying my system is perfect, but I think it’s at the very least an interesting thought experiment about funding public services. Let me know what you think! I’m curious to see how the discussion continues.
The climate crisis is here, and to prevent the average temperature from rising further, we need to stop increasing the amount of carbon dioxide and other greenhouse gases in the atmosphere. Doing so requires us to transition our energy system. In discussions about this transition in public forums like Twitter, I feel that many people don’t have a deep understanding of the topic. They might say things like “it’s impossible to produce enough electricity” for electric cars while suggesting synthetic fuels as an alternative or insist that we can’t store electricity from renewables and need a complete fossil fuel backup. I don’t claim to be an expert on the topic, but I’ve read quite a bit and will try to reproduce my understanding in a short blog article that aims to clarify some misconceptions. I may also make some mistakes along the way, so if you see any, let me know.
In a nutshell, modern civilization requires energy. We can save some of it through increased efficiency or sufficiency, but we can’t do without it. Our society uses energy in roughly two forms: fuels and electricity. For this purpose, “fuel” shall mean liquids, gases, and solids (e.g., wood and coal) that we burn. Let’s look at the origins of these two forms separately.
The vast amount of fuels is fossils, meaning we burn substances stored in the ground for a very long time. The problem: our current climate relies on their carbon remaining buried instead of released into the atmosphere. There is a consensus that we eventually need to stop burning them. The two alternatives are biofuels and synthetic fuels. Biofuels come from plants that bind CO2 from the atmosphere during growth, making them climate-neutral. We can create some of those from organic waste products, but to produce them at a large scale, we need to grow monocultures of fuel crops which take up a lot of space. Hence, experts generally consider it impossible to replace all fossil fuels with biofuels. For synthetic fuels, we use electrolysis, which requires electrical energy as its input. We’ll get back to those in a bit.
Electricity can come from three sources: we can burn fuels, we can harvest energy from nature (e.g., in the form of sunlight, wind, or streaming water), or we can split atoms. Burning fossil and organic fuels comes with the abovementioned problems, so they are no longer an option. Renewables like solar and wind aren’t reliable because their output depends on the weather. Nuclear power is climate-neutral, but it’s considered risky because of radioactive radiation in its waste products or released by accident. Outside of climate denier circles, there seem to be two groups: those who want to implement a fully renewable system and those who prefer to add nuclear power to the mix. I don’t want to argue in favor or against nuclear in this article, but I want to focus on overcoming the challenges of renewables.
Our electricity demands aren’t constant but follow a curve throughout the day and the year. Electricity production for the public grid must ensure that the production curve matches the consumption curve. If production is higher than consumption, we need to either decrease it or store the excess energy. If production is lower than consumption, we need to either increase it, release energy from storage or reduce consumption (I’ll get to that point later).
We cannot control the production curve for renewables (though we can make some predictions), and we cannot easily handle it for coal and nuclear, which only work efficiently with a steady output. However, natural gas plants can usually ramp up and down production quickly. The combination of renewables and gas works like this: renewables have immediate access to the grid. If their output isn’t enough, we switch on gas-burning plants (called “peakers”) to produce the remaining electricity demand. Our electrical system already does this. And ideally, the more renewables we add to the grid, the less fossil gas we need to burn because there will be smaller peaks to fill. Our current electrical grids already do this, which is why gas considers itself a “transition technology,” and the EU taxonomy for sustainability includes it.
Now, wait, you may now say that the argument that renewables need a fossil backup is indeed correct. However, you don’t need a full backup, and that’s for two reasons. First, renewable availability fluctuates, but not too much, especially if you combine a lot of solar and wind on a large, geographically distributed grid and include running-water and geothermal plants. The latter two provide constant output, and there’s always wind somewhere, especially offshore. So you don’t need to plan for zero. Second, this works with the assumption that we have no storage, which isn’t true. Even today, we have an extensive pump storage system. Admittedly, there is limited space to expand it, but other storage technologies exist, including, but not limited to, electrolysis and fuel production.
You may think we need to build more storage right now, but I’d argue it’s not yet the right time. We must first focus on building additional renewables and expanding the grid to bring them across vast distances from sunny and windy regions to consumers. Storing electricity is expensive and generally incurs losses, meaning you don’t get back the same amount of energy. It is always better to use it immediately, in other words, to control consumption. I understand this can invoke dystopian thoughts of power rationing and blackouts for crucial systems like medical infrastructure. Do we need to drop the idea that we can plug appliances into a power socket whenever we want?!
Control of consumption can comprise pricing strategies that make electricity cheaper when more renewables are available and expensive when there are fewer, ideally shifting loads. It’s called yield management, and it’s pretty standard in a market economy. For industrial use, it can make economic sense to implement the ability to stop production lines in exchange for cheaper electricity prices occasionally. Cars spend a lot of their time parked. They can charge whenever it is most affordable if you keep them plugged in. There are other examples, and a smart grid can manage them without inconveniencing consumers. Cars and commercial applications could probably cover it, so private households have no change (unless they want to leverage it as a discount). However, let’s get back to storage once more.
Due to the losses I’ve mentioned, storage doesn’t make much sense as long as there are fossil peaker plants on the grid. Please read that again because it’s essential. Burning fuel to produce electricity for storage requires more than if you just kept it and burned it later when needed. It’s neither economically nor ecologically sound. It also means that if you build an electrolyzer to produce green hydrogen and synthetic fuel, you should only turn it on when there’s an excess of renewable (or nuclear) energy and switch off all fossil fuel plants first. With the currently deployed renewables, this situation does occur, but it happens so rarely that it wouldn’t be viable to build electrolyzers and other storage systems for those occasions. At worst, we disconnect the electricity surplus and let it go to waste. We likely move through a phase where we have enough excess that it seems we’re wasting it but not yet enough to make it economically viable to deploy more storage. It’s the nature of transition, though, and not a flaw in the system. At some point, storage becomes more viable than fuel-burning plants, and we can dismantle the latter.
After talking so much about electricity, what about the situations where we use fuels directly? One option is synthetic fuels, but they are a form of electricity storage that incurs losses, so it seems evident that using electricity directly is the better option whenever possible. That’s why we should replace gas heaters with electric heat pumps and petrol and diesel cars with electric cars. Often this seems counterintuitive because if, on the one hand, we want to increase efficiency and save electricity whenever possible, why should we add more consumers to the electric grid?
The answer is straightforward, though. Yes, we add electric consumers, but at the same time, we reduce fuel-based energy consumption. Once we’ve accepted that fossil fuels are no longer an option and we don’t have enough biofuels to replace them, we can only choose between using electricity directly or producing fuels from electricity. In this battle, electricity wins practically all the time. Even when disconnected from the grid, such as in vehicles, batteries seem to be more efficient storage than fuels. There are exceptions where the higher energy density and lower fuel weight probably win over batteries, such as in jet fuel for airplanes. For cars and likely for trucks, the decision for batteries is clear.
In summary, to decarbonize our energy system, we need to electrify whatever we can and build a well-connected smart grid. We first must deploy as many renewables as possible on the grid to get regular excess energy. At that point, we need additional storage methods to capture the surplus and feed it back during low production. They gradually replace fossil gas peakers (if the form of storage is hydrogen or another gas, we can repurpose the same plants). The better we keep consumption aligned with production (e.g., through dynamic pricing), the less storage we need. If we decide to keep nuclear power alongside renewables, it can also provide some baseload. It doesn’t mean it solves the challenges in building the renewable-centered system because nuclear is not a peaker technology.
This post outlines my understanding of the coming energy transition. As I said in the beginning, I’m not an expert, just a curious mind. I hope it was helpful. If you find any flaws in my reasoning, please point them out.
I’m on a train to Berlin right now. Today I will make a stop on the way in Göttingen to visit a friend for her birthday. Then I’ll stay in Berlin for one night, before moving on to a small rural village approximately one hour away from Berlin. In that village, which is called Bad Belzig, there’s the Coconat Workation Retreat. The name “Coconat” stands for “coliving and concentrated work in nature”. Due to my interest in remote work and “workations” I’ve known and followed this place for a long while, but this is the first time I’m actually going there, and I’m excited how it will be like. The photos on their website and their Instagram account make it seem like beautiful spot with a very friendly community. I’ll certainly give you an update. Probably I’ll also do another day trip to Berlin from Bad Belzig mid-week. After one week of working from a different location I’ll go and see a friend who lives in another rural village outside Berlin next weekend, before coming back to my hometown. So, my time in Berlin is quite limited during this trip, but if you want to meet while I’m there I might be able to squeeze it in. Feel free to reach out.
Once in a while, you see a tweet that triggers all kinds of thoughts and deserves more than a like, retweet, or 280 characters reply. Anna Gát, the founder of Interintellect, wrote such a tweet for me lately. Here’s a quote: “I organise most of the things that exist in my life. Social, professional, intellectual events and impulses all come to me at my own effort. I’d love to be invited to other people’s parties, initiatives, idea-sharing as a guest sometimes.” Although I’m nowhere near Anna, who literally runs a community that is about organizing and hosting events for others, I felt this is relatable. Let me try and articulate my thoughts.
First, it’s a general rule of any community that most of its members are lurkers. Only a subset of the community actively participates in activities. And an even smaller group initiates anything in the first place. In fact, everything in the world exists because people are willing to take the initiative. We owe these people a lot, and it would be great to see more of them, but we can’t expect everyone to take on these roles. It takes effort and persistence, there’s always a risk involved that your thing fails, and you will face rejection and must not take it personally. On the flip side, you can be the one that makes the thing happen that you wish to exist.
Second, I feel I often enjoy initiating things more than participating in things others organize. It’s for two, probably related, reasons: One is that I like to be in control of what’s happening, and being in the lead lets you do that better. The other is that I sometimes find it hard to navigate social situations regarding roles and hierarchies and find my position in them. Being a leader or initiator gives you a predefined part, which helps. So … it’s all great, right?!
Although I’ve said that organizing things can be better than just participating, sometimes it’s nice to invest less effort into it. Also, sometimes not knowing what is happening is precisely the point. However, the sentiment of the original tweet that I can relate to isn’t about just that. It’s about being invited in the first place. Or, instead, not being invited.
When people attend events or activities you organized, you may start wondering why they showed up. Are they interested in the thing itself? Are they showing up because of you? Or are they just happy that something is happening that they can attend? It would be awkward to ask. I’d assume many people wouldn’t be fully aware of their combination of reasons anyway. But why does it matter? Someone showing up but not inviting you in return feels like rejection, just a different kind. Yes, the other person may be one who never initiates, but what if they do but not invite you? You start realizing you’re having a one-way relationship with that person, where you care about including them, but they simply don’t care about you at all, or, worse, they don’t like you. If they followed your invitation, they didn’t do so because of you, but despite you. Ouch!
The above paragraph may sound full of ego, but it’s the truth that humans, or at least most of them, are social creatures and want to be liked. Or even before they are liked, at least their existence and relevance wants acknowledgment. We want others to care about us. Some of it may seem superficial, like worrying about “likes” or follower-to-following ratio on social media. Still, these are just modern expressions of deeply human desires.
(A consolation for people who are already well-networked and lead a visible social life: others think you are already fully booked and wouldn’t accept an invitation anyway. So, they don’t receive invitations due to anticipation of rejection. If you are one of those others: don’t be afraid! Yes, these somewhat famous people receive many requests and invites and may likely turn you down, but there’s still nothing wrong with asking.)
In the past years I’ve increasingly spent time trying to build connections and participate in communities, both personally and for business (and at the intersection of both). I believe in the importance of a network of strong and weak ties to get ahead in life and work. I’ve invested some time in reaching out, following up, and building a personal CRM. Sometimes I wonder why I did this and whether these efforts pay off. Then, at some point, it hit me that one of the big reasons why I’m doing this is so I can receive the same in return. Again, this may sound shallow and self-centered, but I want to be honest. Every outbound connection is made in anticipation of an inbound connection. Every introduction creates the desire to be introduced to someone in return.
(To avoid misunderstanding, I have wishful goals for myself, and there’s nothing wrong with you having similar purposes. Still, I don’t think you should communicate these as expectations or attempt to run your social life in a tit-for-tat mode. For multiple reasons, including my first thought in this article, there will never be a perfect balance. Some people are natural givers, making others natural takers. And there can be a lot of joy in giving even if you get no return.)
A north star goal could be a life in “inbound mode”, where you stopped doing the work of reaching out and still have a pool of people who reach out to you instead. And I feel the tweet captures the sentiment for me. Yes, being invited to things is about experiencing new things and meeting new people that aren’t part of what you’re doing so far. However, it’s also about the safety of knowing that you still had an active social life even if you ceased any investments in it. The confidence of having people caring about you.
I am unsure if it’s possible or even desirable to live in “inbound mode”, because you will also receive a lot of unwanted attention and people aren’t taking rejections nicely. But it would be nice to get even part of the way there. Until then, let’s continue making the things happen that we want to happen and reach out to the people we want to include.
Scott Stevenson’s article “How To Finally Make Something” came up in a Twitter conversation that started with a tweet on problems with most productivity stuff by Sasha Chapin. In the article, Scott claims that people struggle in their creative process and their most important work because they engage in so-called fantasy games. These games seem to help us progress towards goals, but they can often be a distraction and become a method of procrastination. Scott identifies learning syndrome, tool syndrome, process syndrome, and maintenance syndrome. In a nutshell, people spend time learning (e.g., reading books, taking courses), improving their setup and toolchain, figuring out the best productivity system, and getting bogged down in small maintenance tasks (that they could probably delegate, automate, or remove). If you want to read more about them, check out Scott’s article.
I want to extend his thoughts around these fantasy games, focusing on why we engage in them. A common explanation is that they are easy, and doing the real work is hard. When the real work is creative, we’re putting ourselves out there, making us vulnerable. Our work can be a hit or fail, and unpredictability can be hard to swallow. If we’re unsure about the goals, there may be negative emotions associated with it (which was Sashas point in the original tweet). These are all great points, and I have observed them within myself. Around a year ago, I wrote about “exploration and exploitation”. I connected exploration to procrastination, communities, and the self-help industry (in a follow-up post, I talked about exploration and FOMO as a trap). Reading Scott’s article somehow gave me an epiphany and a new perspective on them.
Let’s talk about the industry first. People understand the value of education and good tooling, so it’s evident that we sell them. Authors, toolmakers, and course creators typically make profits selling their products and not through the outcomes of their buyers and students. Yes, they need success stories or testimonials, but buyers who don’t follow up on their intentions have still brought them money. And those addicted to buying tools and learning material drive down prices for everyone. There’s no criticism of anyone involved here, but we need to understand that there are economic incentives that drive these fantasy games as well. Even if you’re not in the business of selling information, if you want a visible personal brand and be known for something, the best way is to curate information. Your work doesn’t provide enough content to get started (and likely under NDA anyway).
Now let’s talk about community. Of course, commercial communities around exploration are a part of the industry. But even if we remove the profit incentive, humans are (generally speaking) social creatures who like to be part of a network of like-minded peers. Now, there’s the catch. Social connection relies on conversations, but what should the subject of these conversations be? Work is a prominent topic with people in a similar field, and you joined a professional community for that purpose.
Talking about your work to show what you’ve done and asking for feedback can be challenging and makes you vulnerable. It can also appear selfish if everybody talks about that. And now we’re back to the fantasy games. Tools and processes can provide unlimited fuel for conversation and create bonds and sub-identities, all without the discomfort that comes with revealing too much of what you do. A tech industry veteran and a recent boot camp graduate can fight or bond over whether vi or emacs is the better text editor or whether you should indent code with tabs or spaces. If you’re not in tech, I think you can find plenty of examples in your industry or creative field. As I already said earlier, your work doesn’t provide enough talking points, and you don’t want to appear full of yourself, so it’s essential to consume a lot of stuff not just for its own sake but also so you have things to talk about that others may know as well.
Now here’s the flip side of the coin. If you want to build community and bond with peers in your field, it can be instrumental to geek out over tools and processes. The minimal investment you need to make in these areas to do your work may not be sufficient for contributing to a community that rewards knowledgeable members and opinionated takes. Of course, you don’t need to be a top community contributor. You can be happy and productive toiling for yourself and not care about status games and peer recognition, but I believe it makes it harder to socialize. It’s a trade-off.
This realization (which makes sense, I hope) is vital for me. I think I am not very prone to these fantasy games. Sometimes I feel that I should learn more stuff, but I quickly understand that it won’t help me with my goals because I need to put what I already know into action. I also realize that the tools aren’t what is holding me back. If anything is stopping me, it’s perfectionism or lack of resources (due to trying to do too much). I feel I’m now on the other extreme, and sometimes investing a little more into processes and maintenance could be beneficial, but that’s a topic for another day.
For now, I’m getting at the following: I feel I’m not good at socializing and connecting with peers because I’m focused too much on myself and my work and don’t pay enough attention to the talk of the town. Yes, this talk might be just gossip that’s distracting me, but I still feel I want to join the conversation. However, doing so would demand making myself more dependent and connected to what others do and think, something I generally avoid and that would feel inauthentic to me.
I wish I could offer a conclusion to this blog post, but I don’t have any yet. It’s just a point that has gotten clearer to me, and I’d love to hear your thoughts.
Unit testing is mainly used to test smaller parts of your code, like a single class or function. But you can repurpose unit testing frameworks into API testing frameworks with libraries that combine an HTTP client with assertion functions that cover things you typically expect from an API response, such as status codes and headers. Apiritif is one such library for the Python language. My latest guest post for BlazeMeter is a quick tutorial that shows you how to build an API test with Python, nose, and Apiritif. Check it out on the BlazeMeter blog. You can also find a small code snippet on thiscodeWorks.
Disclosure: This work was paid for by BlazeMeter.
Moxie Marlinspike, the founder of the Signal messaging app, wrote a widely shared piece called “My first impressions of web3”. The article explains how many things around blockchain, cryptocurrencies, and NFTs aren’t as decentralized as people think. Running blockchain nodes requires computation power, so crypto wallets and “dApps” need an intermediary that provides a traditional client-server API between them and the blockchain. According to Moxies observations, the ecosystem is highly centralized around just a few of these intermediaries. They have the power to moderate and censor the ecosystem, such as blocking access to NFTs that still exist somewhere on the blockchain.
He starts the blog post with two statements. The first is that people don’t want to run servers, and the second is that platforms move faster than protocols.
I want to address the second statement first. It reiterates a previous post in which Moxie justifies that Signal is centralized. Being centralized allows them to move fast, while open-source and cryptography provide the necessary trust and insight in the platform and guarantee privacy. Apart from end-to-end encrypted messengers like Signal and Threema, Keybase is an excellent example of this model. I agree with him, and I disagree with decentralization purists who believe decentralized systems are always better. Not to be mistaken, I like distributed and federated systems and would love to see more for reasons I’ll get into soon. Still, centralization isn’t evil by definition and can sometimes work well, especially when there are measures to ensure that the interests of all stakeholders are aligned.
Going back to the first statement, I think Moxie makes the common mistake of a false dichotomy. It’s not a choice between everyone running a server or participating in a centralized platform. There’s a lot of middle ground. Think of managed hosting for open-source software—hundreds of companies of all sizes offer this. Smaller SaaS providers that interoperate with each other don’t even need to be open-source to interact with other small SaaS; open protocols are enough. Yes, protocols make change harder, but there’s still potential to innovate at the edge as Hey.com did with email. An intermediary between the end-user and a somewhat messy distributed protocol can do excellent business. It’s a level playing field for different companies competing at the edge without suffering from network effects that let consumers stick with incumbents due to lock-in. It’s my idea of an actual free-market economy.
In other words, it’s not wrong or hurting the decentralization of public blockchains to interact with them through a mediator. Problems start when one of these mediators becomes a monopoly or so strong that it could also be a centralized service. According to Moxie, this is what happens, but web3 proponents generally dismiss the concern because, in theory, there are other mediators. So, why are we seeing so few competitors? And why does the entirety of managed hosting services and micro-SaaS look like a dwarf compared to large cloud computing infrastructures or productivity suites from companies like Google, Microsoft, and Amazon?
Any price for a product on the market contains the R&D and marginal costs for each piece. For software, marginal costs are minimal, even for SaaS, because hosting has gotten cheap. The more you sell, the fewer R&D costs each copy includes. And because dominating a market is both possible and rewarding, venture capitalists are willing to fund unsustainable free products that outcompete bootstrappers trying to build sustainable businesses. Hosting has similar scale effects. Running a website for a few hundred visitors is easy because you only need a single server. Once traffic grows, you need to think about separating web and database instances, vertical and horizontal scaling, and other deployment and operations issues. Getting from a hundred to a million visitors is challenging. However, going to ten million is easier because you probably already have the necessary systems in place. You only need to deploy more instances. Neither markets nor technology rewards beings medium-sized, even though that could be the healthiest option.
Moxie ends his piece with two suggestions on improving our relationship with technology. The first is finding more ways to distribute trust without distributing infrastructure, effectively pushing the Signal/Keybase model. The second is making it easier to build. He claims that creating software has become harder in recent years and that distributed systems could accelerate the trend. I don’t think creating software has become harder per se or continues to do so. It could become even more accessible with better (AI-assisted) developer tools and the proliferation of no-code and low-code platforms that help people become citizen developers. Better technical writing for developer content can also lead people on this journey. In my opinion, one reason building software feels harder is that there are increasingly more tech stacks to choose from, which leads to analysis paralysis. There’s also a tendency to overengineer, such as believing you need to build a React app when static HTML with two lines of jQuery also does the trick. And not every app needs a sophisticated build and deployment pipeline. Finally, our expectations for good software have risen.
APIs are essential for (no-code) creators as they can be an abstraction layer for complexity, whether from underlying protocols and distributed systems or advanced algorithms like machine learning. The crucial question that we need to address is how we can make sure that not everyone relies on the same API and makes the API provider the gatekeeper it shouldn’t be. We need to determine how to build resilience into the API ecosystem by making it easier for upstarts to provide APIs and harder for incumbents to outcompete everyone and dominate the market. I don’t have answers to these questions yet, but a healthy API ecosystem needs to find them eventually.
Moxies piece is valuable because it helps people understand how the crypto and blockchain world works. It’s also refreshing to see more nuanced takes that go beyond uncritical web3 cheerleading on one side and complete naysaying or dismissing it as a scam on the other side.
It’s the time of the year that we Germans call “zwischen den Jahren”, which means “between the years”. One week bridging two holidays - Christmas and New Year’s Eve - the old year seems already over, but the new one hasn’t begun. A little bubble outside of normal time. An excellent opportunity to review and reflect on your life.
However, this isn’t one of those yearly review blog posts that others have written. I’ve decided against doing an annual review, neither publicly on this blog nor privately for myself. The reason is that I don’t see the point right now. That may sound overly negative, but the truth is I didn’t have set specific goals, so I’m not sure against what I should compare the past year. I laid out a few thoughts inmyblogposts in January, but I didn’t check in further, and they weren’t actionable enough. Also, the ongoing COVID pandemic still influences our lives, and I don’t want to blame myself for not doing things that the virus prevented. Instead of looking backward, I’d rather look forward.
One of the risks with New Year’s resolutions is that people write down huge lists and believe that a number on the calendar can change their entire personalities and routines overnight. As lovely as that might be, human beings don’t work that way. We need to establish tiny habits and constantly reflect on our progress to compound results. Hence, this blog post isn’t a list of resolutions either.
At this point, I’m setting one single goal for next year. I will bring back something I did a few years ago, a monthly review and goal setting for the next month. I want to get more mindfulness and self-reflection into my life regularly. So yes, there will be goals and resolutions and probably a few experiments with self-improvement in terms of productivity and other areas of life, but on a shorter timescale. Maybe I’ll even add a quarterly review on top of it, but I only commit to the monthly assessment for now.
Still, I want to share a few general thoughts about a few things I want to look at and improve in the future without setting actionable goals at the moment. I want to revisit them in my monthly review sessions.
Many of the things I’m interested in are related to my work. The rest of them fit the labels of either “intellectual” (politics and current affairs, effective altruism, basic income, future of work, etc.) or “nerdy” (board and roleplaying games, sci-fi shows). Time spent with these interests can be solitary (reading, writing, thinking) or social (reading and discussion groups, salons, and meetups). And here are two problems with that: one problem is that all of this stimulates (and strains) my brain, but nothing makes use of my body. A healthy mind can only exist in a healthy body, and I’m sure if I don’t take care of my body - which probably means taking away some time from serving my brain - I will regret that in the long run. And the other problem is that even though I spend time socializing around these interests, I won’t improve in social situations outside structured interactions around topics.
The other theme is mindfully living in the moment and experiencing gratitude for tiny day-to-day experiences. I tend to walk through the world, and my mind is mostly somewhere else, processing thoughts and ideas that are already there instead of soaking up the surroundings. Also, I hardly appreciate the things I’m doing and experiencing. Instead, I often think about what I’m missing out on or what I should have done instead. Sometimes I see tweets and posts from people who seem to be capable of enjoying their life’s moments much better, and I tend to get jealous.
To end this post, let’s reframe these thoughts as questions:
I’m looking forward to finding some answers to those in 2022!
Procrastination is one of the most annoying human behaviors. Even though we realize that it’s often small tasks that we’ve been putting off, and we’d probably feel better if we did them earlier, we can’t seem to go against our tendency to procrastinate. Understanding how procrastination works doesn’t mean we can stop it. At least not immediately. I still believe that understanding how and why we procrastinate may help improve our habits in the long run.
Anne-Laure LeCunff of Ness Labs has published two articles lately, sharing research around procrastination and introducing mental models for understanding the reasons behind this behavior. The DUST model contains four adjectives to describe tasks that we put off: difficult, unclear, scary, or tedious. Another model goes beyond that and includes eight procrastination triggers: boring, frustrating, difficult, stressful, ambiguous, unstructured, unrewarding, and meaningless.
I wanted to write this article to explain my personal experience with procrastination because I found both models not fitting well with what I experienced. I can relate to “unclear” and “ambiguous/unstructured” because I’ve found myself procrastinating when I don’t know exactly how to get started. Apart from that, I found others that I would like to explain.
For me, the main procrastination trigger seems to be a mismatch between the time I would like to spend on a task and the time that I should reasonably spend on it. It’s the choice between building a solution that works or a perfectly engineered solution. It’s the trade-off between executing a process or optimizing the process in ways that take more time now but could eventually (but not guaranteed) save time later. In other words, it’s a perfectionist’s problem—the fear of doing something in a mediocre way results in not doing it (maybe this fits “scary” from the DUST model). My difference is that I’m confident that I would have the skills to do it better, but I don’t have enough time (or the client doesn’t have enough budget). It may be a delusion, but I think it’s an interesting angle that I haven’t seen anywhere else yet.
In some cases, you can deliver what appears to be the same result with a perfect process or one that barely holds together. Whoever asked for the result may not care about the process, and I’m not sure how much the better one pays off in the long run. In these cases, “unrewarding/meaningless” may be good words because I’m doing something just for myself. I may care, but do I care enough to invest extra effort?
Another procrastination trigger is that when it’s apparent that I will miss a deadline or have already missed it, I find it even harder to get started. At least partly, this is the same perfectionism and time problem because I have to do something fast rather than doing it well in those cases. On the other hand, it requires facing yourself and your mistake. It’s easier to forget the looming deadline when you’re distracting yourself than when working on the project with that deadline itself. You may feel like whoever set that deadline, e.g., a client, might appear at every moment, and you have to explain yourself. Luckily, this is relatively easy to solve: ask for an extension of the deadline. Own your failure of delivering on time, and the stress dissolves. Then, you can focus on completing the task for the new deadline.
There’s another trigger that one could consider a combination of the previous two. I assume that I share this problem with other freelancers, entrepreneurs, and people who have a lot of priorities to juggle without clear order or who don’t like saying “no”. When you’re doing multiple projects in parallel, you will often end up overcommitting, and you will not be able to fulfill everything. It means you may have to deliver a flawed product or deliver too late, and you have to choose who you’re going to disappoint in which way. In these cases, I find that perfectionism leads to resignation. If I can’t satisfy all requirements, what’s the point in doing anything at all? I often find that I end up being tired, and I’m not sure if I’ve genuinely run out of steam or if it’s just a convenient excuse. However, once I’ve entirely accepted the situation that I’m in and then take a good rest, it’s easier to get back to my tasks the next day without procrastination.
I’m interested in your feedback! Can you relate to my experiences, or have you noticed some others for yourself?
Our book’s pre-release (MEAP) received two more updates since my last post. Now the missing chapters 18, 19, 20, and 21 for “Designing APIs with Swagger and OpenAPI” have been published as well. In chapters 18, 19, and 20, we’re looking at various advanced OpenAPI topics that help API designers refine their API definition and include as much machine-readable meta information as possible.
Chapter 18 is about filters, pagination, and sorting, topics of utmost importance for any API that provides access to an extensive dataset. Chapter 19 covers error handling. Finally, chapter 20 gives an excellent overview of the data validation capabilities of JSON schema that API providers can use for input validation. All three extend the PetSitter sample API that we use throughout the second and third parts of the book.
Our final chapter, 21, covers the next steps you have to take once you make a private or partner API available to the general public. We highlight the most critical API design issues and introduce the “API exposure index” as a way to decide and describe how much of your API you want to publish and which parts you want to keep private.
We’re getting closer and closer to the finish line. We only need to complete the final review and add the appendix(es). Then, the book enters production.
If you haven’t preordered the book yet, it’s a good time to do so. I am looking forward to your thoughts on these topics as well.
Polywork is a new term that describes the concept of choosing multiple part-time jobs or freelance contracts over a single full-time job, primarily when those jobs or gigs cover various areas of interest. I first heard the term when the namesake social network Polywork launched, which considers itself an alternative to traditional business networks like LinkedIn, designed with “poly workers” in mind. The term appears beyond the company, for example, in Neville A Mehra’s “Polywork, Personal Brands, and Jobs of the Future”. It also describes what I do, being a freelance entrepreneur who always works for different clients at the same time and covers various tasks such as software development, technical writing, and consulting.
Last night I saw a tweet that triggered writing this article. It featured two screenshots of articles describing polywork as a new trend embraced by millennials and Gen Z, captioned with: “They’ve come up with a new word for desperately working multiple jobs just to be able to afford rent.” Many of the comments agree with the original tweet, adding other words like “exploitation” in the mix. Now, what’s the truth about polywork? Is it “desire or necessity”, as a Forbes article titled it?
We live in exciting times with a lot of things changing around us due to digital transformation. We further live in times of rising economic inequality and insecurity in a lot of countries. There’s also a vast diversity of (sub-)cultures and lifestyles. One of the problems with this world is that it makes it increasingly difficult to throw large parts of the population together and describe them accurately. Any attempt to define millennials or Gen Z (or any other generation) as a whole is an oversimplification that ignores different economic realities and levels of privilege.
The truth is that one person can be forced into something that is a choice for another. You can be a freelancer because nobody wants to give you a full-time job, or you can choose it because you value freedom and diversity and don’t want to make yourself dependent on a single employer. Of course, the economic reality of the first person is terrible, and we should improve it, but that doesn’t mean that the choice of the second person is invalid. It’s wrong to assume that they’ve just been gaslit into believing they made a choice and they’d be happier with stable employment.
There’s the widespread belief among some in the political left, especially those closely aligned with worker’s unions, that the best way to end economic precarity is to make sure that everybody has a 9-5 job with strong worker protections. While I welcome the availability of jobs for those who want them, I believe it’s challenging to organize the whole economy around them. The necessities of modern companies require on-demand expertise that flexible contractors can bring to the table. Instead of forcing the 9-5 model on everyone, we should have different ways of social protection for freelancers and other poly workers, such as a universal basic income.
The whole concept doesn’t just apply to work but also to consumption habits. Let me tell you a story from my childhood. Our neighbors used to go on a skiing vacation every winter. Once, their son came to us and said: “I feel sorry for you that you can’t afford to go on vacation.” This child’s assessment was wrong because my parents could well afford it. They were just not interested in skiing.
One of the reasons for overconsumption is that people want to signal their purchase power. There are counter-movements like minimalism, but they’re still a niche. Again, some people may want to own a single-family home, a car, etc. but can’t afford one. Others prefer to rent an apartment or use carsharing for flexibility and avoid the responsibility of ownership, even though they could own more stuff. It’s crucial, however, to not mistake one for the other. We must improve the economic circumstances of the poor, but at the same time, there are benefits when the rich choose to work and consume less or differently. Having to do things due to poverty is not a “trend”, but neither is it helpful to force the middle-class and the rich into a “normal” lifestyle of overwork and overconsumption.
Path traversal attacks are a typical attack vector that compromises the security of APIs and web applications. It’s an injection attack where the perpetrator tries to access or modify private files on the webserver. I recently wrote a guest post for Stackhawk about path traversal attacks in PHP applications built with the Laravel framework. In the piece, I’m discussing what path traversal attacks are, how they occur, and how to prevent them. It was the second piece I wrote for Stackhawk after covering CORS in Laravel applications.
API security (and web application security in general) is a crucial topic if you care about the integrity of your systems and the privacy of your users. And still, things go wrong, so it’s necessary to raise more awareness, which I’m happy to do.
Disclosure: This work was paid for by StackHawk.
I have news to announce regarding the book about designing APIs with OpenAPI and Swagger that I’m writing together with Josh Ponelat. We finished all chapters except for the appendixes and are now in the exciting final review phase. While the whole book is probably still a few weeks from production, this was an important milestone on the way, and we’re proud we made it this far.
Also, the first two chapters of the third part of the book - 16 and 17 - are now available on Manning’s website as part of the Manning Early Access Program (MEAP). In the third part, we’re taking the API from the sample application we have built during part two and refine it to improve the developer experience for an eventual release of the API. We also extend its functionality and discuss bringing in a new version of API. In chapter 16, we’re outlining the whole process and update our user stories and domain model. In chapter 17, we’re adding a new feature, which leads us to discuss composition keywords in OpenAPI that help design more complex and still reusable schemas.
If that’s something you’re interested in (I bet you are!), please pre-order the book, read the new chapters and let me know your feedback.
Universal Basic Income (UBI) is the idea that every citizen should receive a monthly sum of money with no strings attached, regardless of other income sources. The idea isn’t exactly new, and it has supporters and opponents anywhere on the political spectrum. It also featured prominently during the pandemic. So far, no country has implemented it, but there are a variety of experiments. None of these reflect the universality of a basic income, but they’re helpful nonetheless. I hosted an Interintellect salon - my debut as a solo host after my Personal CRM salon co-hosted with Vajresh Balaji - to discuss the idea with fellow curious minds.
As is usual with salons, I asked an intro question, which was: “Who do you think would benefit from UBI?” We talked about cash transfers for low-income countries through charities like GiveDirectly, an approach popular in the Effective Altruism community. We also mentioned creative and innovative people in rich countries who may not currently have the freedom to invent or express their creativity as they’re stuck in their jobs. It reminded me of the description of basic income as “venture capital for the people”.
How high should basic income be? Public discussion centers around round numbers like $1000/month or a minimum livable wage equivalent. An alternative would be defining it as the percentage of the average or median income. The definition of what a minimum livable wage is may change, so tying it to existing wages avoids the discussion. Another idea is to look at current government spending per person and pay it out directly. The latter leads to another question, whose answer seems to depend on whether you’re more on the left side of the political spectrum or more libertarian. Which public services can and should basic income replace? Should we even see it as a replacement or more as an add-on to the current services? While large infrastructure projects such as flood defense should probably remain with the government, they could privatize communal services like swimming pools. Of course, it’s too early to propose anything specific, so we didn’t spend a lot of time discussing this point. There should be more research first.
If there was a way to implement basic income on a global scale, it could give people additional opportunities to move around the world and find the life that fits them. Even though it’s a fascinating idea, it’s probably even further away than national basic income. There are, however, exciting approaches for voluntary funded basic income that doesn’t stop at national borders. Most use blockchain and cryptocurrencies. Examples include Circles and GoodDollar. We’re not yet fully convinced, especially since these often create custom coins that don’t have serious trade value, so they need a lot of trust and buy-in into their currency first. How far can voluntary approaches go anyway, in terms of funding basic income or other worthy causes? High-income countries and businesses could do more to drive people to give to charity, for example, by offering benefits in exchange for (zero-knowledge) proofs of donation. They could also give people more say in where their tax dollars go, although that may be unfair and undemocratic when it gives high-income individuals more influence on the state’s budget.
A common criticism against basic income is that it’s people’s fault when they’re poor. Therefore, we shouldn’t give to “undeserving” people. However, we believe that poverty is mostly the cause of bad decisions, not its outcome. We should also look at the future where society benefits when we allow people to recover and grow. Another point of criticism is that, because basic income is a substantial money redistribution machine, it gives too much power to the state. The government might eventually use that as an excuse to increase demands on their citizens. Asking how basic income influences the job market, people are forced to take any job to survive without it. As a result, it currently creates pay rates below market rates, leading to an unfair market. That would change.
Our last point of discussion was whether technological unemployment would become so common that it’s a solid argument to make basic income necessary? We’re unsure. On the one hand, there is no precedence for new technologies destroying more jobs than they create. On the other hand, it’s much more likely now, primarily due to the differences between manual work and knowledge work.
Overall, the salon was a good discussion and exchange of ideas and thoughts. I’m looking forward to continuing the conversation some other time.
Racket is an exciting new social audio platform. Unlike other recently hyped real-time social audio apps such as Clubhouse, which Twitter copied with its Spaces product, Racket is a fresh take on podcasting. If you wanted to make an “X for Y” pitch for the product, you could call it Twitter for podcasting. Twitter is micro-blogging, and Racket is micro-casting. Every podcast episode, if you even want to call it that, on Racket has a limit of nine minutes. That makes them great to listen to during a short break. They don’t require the time commitment to listen to an hour-long podcast. Recording on Racket is an excellent exercise in bringing your message across in a world with short attention spans, as the medium forces you to be concise with your spoken word.
I have shared my thoughts about Racket and audio as a medium in my first solo recording and a conversation with my friend Clo. And that brings me to the second advantage of the platform. It makes recording podcasts with multiple people as easy as it can be. You can record directly on their website with the studio feature, and you can share the URL to that studio page with anyone. When they go to that page, and you approve them, you’re immediately connected. First, you can have an unrecorded conversation to get ready. Then, the studio owner hits the Record button, and the recording starts.
At the end of the recording, your podcast episode goes live immediately. If you recorded with two or more people, it appears on everyone’s profile. The latter feature improves discovery because people following just one of the participants can discover another person and their profile from this recording. It also solves the use case that some people have voiced about finding and listening to interviews with the same person on different podcasts. Of course, it works just within the walled garden that is Racket and not throughout the whole decentralized podcast ecosystem, but it’s a start.
Even though Racket takes out the complexity of recording conversations and interviews, you still have to schedule time for them. That’s where another appealing feature comes in: “Ask me anything”. Every Racket user has an AMA page where others can record a question for them. The user can then decide that they want to answer. Racket stitches question and answer together into one recording. Here’s my AMA page, and here’s the first question I received and the answer I’ve given. There’s also a related feature called “Volley” where multiple people can answer the same question, but I haven’t tried that and won’t comment on it.
My main concern with the platform right now is that I don’t see a business model yet. Will there be pre-roll ads or subscription fees? There’s no information yet, and a conversation I had with Stu from Racket wasn’t reassuring. I’m generally enthusiastic about new social media platforms (even centralized ones) because they stir things up and provide new means of expression outside the existing platforms like Twitter and Facebook. Without a sustainable business model, though, there’s always the chance that the company will get acquired (and listed on “Our Incredible Journey”), and their network ends up as a feature of a larger platform that boosts its dominant position that way. Although, to be fair, acquisitions happen even for companies that have found their product-market fit and are profitable, so that’s always a risk when you put time into a social network.
If you want to try Racket, please use my AMA page or contact me if you’d like to record a conversation with me.
Mishka Orakzai is the founder of thiscodeWorks, a Pinterest-inspired website for developers to share snippets of code. Lately, she hosted an Interintellect salon about coding to discuss the strong push towards learning to code. That coding literacy movement includes, for example, coding boot camps and events like Hour of Code. In our conversation at the salon, we took a step back first and tried to establish the meaning of coding literacy.
One way to describe coding literacy is thinking of it as a spectrum, with no-code being the low floor and advanced software engineering the high ceiling. The first and foremost goal is to demystify computing and develop a judgment of what’s even possible. Also, coding is a way of thinking, which I like to describe as algorithmic (or computational) thinking: being specific enough in your instructions to a dumb machine. Computers are deterministic and cannot understand ambiguity like humans. It’s possible to establish this mindset with a bit of self-taught coding without becoming a developer yourself. One participant mentioned he’s doing a “coder dojo” with his 10- and 12-year old kids. Even “toy programming” (think Roblox and Scratch) is still “real programming”, which makes it exciting, especially compared to other forms of building.
We talked about the education system as well. Compared to other subjects, high school computer science is relatively young, and the way it’s taught isn’t always good and sometimes doesn’t even cover coding. It may explain why few kids are excited about coding. On the other hand, maybe we’re expecting too much. Most children learn to pass tests and not because they’re passionate about every subject and want to continue learning in their free time. And nobody should feel guilty about not wanting to code. A more project-based way of teaching could improve education, though.
What’s the benefit of coding? Is the coding literacy movement’s purpose solely filling the demands of the growing tech sector? While that’s possibly true, coding can have additional benefits even when you don’t become a developer. For example, people in marketing can benefit from HTML knowledge. Again, the way of thinking can help in various ways. In the API sector, which is my primary field of work, there’s a lot of conversation about making the technical capabilities of APIs accessible to non-developers and more mainstream (lovely quote: “business developers are developers, too”). These capabilities can go beyond what the API provider intended. Coding can be a creative tool to unlock new possibilities (think of using a cup as a paperweight instead of a cup). However, it’s not the only one.
People like to have a creative outlet. It can be coding, sometimes it’s something else like homemaking, and for others, it’s creating TikTok videos. Sometimes we tend to think that previous generations were more creative, and our modern devices (like the iPad) are primarily consumption machines. For us nerds, it’s often the nostalgia of 90s websites. It’s important to remember, though, that in any community, it’s always few who create for a majority of consumers (look at the 90-9-1 rule). We believe that coding is an excellent outlet for creative building because you don’t need physical tools and material, driving the marginal costs to zero. That makes it accessible. Builders can avert the downside of non-tangible results with hybrid forms where digital things manifest physically, for example, through 3D printing.
Going beyond coding, Mishka had Marc Andreesen’s article “It’s time to build” on her reading list for the salon. Andreesen complains about a lack of desire to build stuff to solve problems in the world. We believe that there’s certain laziness and comfort in the Western world, and we make things for sufficiency rather than resilience. COVID-19 was a good wake-up call. Countries like Israel who are in a perpetual crisis mode were more capable of handling the pandemic than the West who’s invested in the good-enough status quo. Some people may have thought of themselves and their country as limited in the developing world, but remote work, often including coding, helps them grow out of that.
At the end of the salon, we discussed whether coding would remain an in-demand skill. We believe that digital transformation will change everything. No-code automation may make coding less critical, but related roles like user experience or management are growing. With artificially intelligent systems, new skills will become necessary. One participant described coming up with good prompts for GPT-3 as a coding-adjacent skill but more like writing magic spells. Interdisciplinary thinking becomes increasingly important, and the mindset learned through coding can help combine things and assist in learning other skills.
In summary, coding remains an excellent skill to have, but it’s not the most critical skill. Building the future is more than building apps. However, the coding literacy movement could provide a good blueprint for other fields to teach their skillset to a broader public.
Dominic Duffin’s recent Interintellect salon had the title “Time versus Space: The Geographies of a Digital World”. After having a good time at Dominic’s previous salon about our spaces on the Internet, which I summarized on my blog, I wanted to participate in this follow-up conversation. Once again, it was a smaller group of participants, which I found astonishing, considering how important the topic is, in my opinion. The pandemic has driven us to spend more time in digital spaces. As the world, or at least parts of it, slowly return to normal, it will be fascinating to observe the next transition.
Before writing about the salon, I want to mention another conversation I recently had with members from different effective altruism local groups in the GSA/DACH region. Group events had moved online with COVID-19, and most members can’t wait to meet in person again. On the other hand, there are certain benefits to virtual meetups. You don’t have to find a space, you save time going there, and it’s much easier to bring in guests and speakers from different places. The theory is that interest-based groups will eventually operate in a hybrid model, with events focused on working and learning happening online and social get-togethers happening offline. We see that happen with Interintellect as well. Most topic-based salons and series are still online, and the first IRL meetups are less topic-bound and more social. Since some salons are very niche, it may be hard to find enough interested participants in a single location, and you’d lose the benefits of international exchange.
Now back to Dominic’s salon on virtual geographies. His intro question was: “How relevant are your physical location and your timezone to your online life?” Timezones are the big differentiator and remind us that we don’t live in a single global village but on a round planet, even online. A participant from the US west coast remarked that the big political news of the day has always already happened by the time he wakes up. However, timezones can be an advantage, too, by distributing work shifts around the globe and providing 24/7 support even in a small team with everyone having regular workdays. Big global business used to be 24/7 for a while, and now it seems that it’s happening for all, leaving us to wonder why stock markets still have opening hours.
Even though the salon description used the analogy of a city where many activities happened, interestingly, most of our discussion at the salon focused on remote work. The pandemic has accelerated the information age. The upcoming significant difference after remote, on-site, and hybrid work is synchronous versus asynchronous work. Not every company can work in either model, but it can have vast advantages to implement the asynchronous model. Pieter Levels described the benefits for individuals in one of his articles, and we talked about hand-off between different timezones, which suits the asynchronous model well. It requires other tools and a distinct skillset, mainly writing. That leads us to the next topic, language.
Regarding languages, a participant from India gave us fascinating insights into their country. India has many local languages, and people are proud and protective of their native tongue. That makes it difficult to establish a shared Indian identity, for example, when the prime minister gives speeches in Hindi, a language that not all of his citizens understand. English is the standard business language in metropolitan cities, but language creates a division outside of them. As India’s relevance as a market for international companies grows, they’re increasingly localizing their products in Indian languages instead of just English.
Culture is another crucial aspect. For those spending a lot of time online, the global Internet culture can override local culture for the individual, especially younger generations. It can also influence local culture in general. Currently, global Internet culture’s strongest influences come from the US, but that’s changing as more people from other countries appear online. That change comes from countries with large English-speaking populations, though, like India and Nigeria. So far, we don’t see any attempts from China to push Chinese culture into global culture. They appear more focused on isolating themselves.
Is the Internet a single digital megacity or multiple cities? While there are overlapping spheres, filter bubbles are a real thing. The Internet influences what happens offline, for example, when a Facebook post causes people to form violent mobs in the real world. The division itself isn’t an online thing, though. In the US, self-division happens, and people choose to live in either conservative or liberal areas. How important is it to have diversity, though? Just bringing in different people is not sufficient. They also have to be willing to listen to each other. Something you always have to be aware of is that the loudest voices aren’t necessarily representative.
Later in the salon, we went back to COVID-19 and how it will change things. We believe that the “genie is out of the bottle” for remote work, and nobody can put it back in. There will be more options and more flexibility. However, remote work may affect those who can’t work remotely as well. If white-collar work happens remotely within the same organization, whereas blue-collar work happens on-site, it can create a divide between these groups. However, if we’re honest, often this divide already exists. Outside of work, we believe that arts and culture will go back to taking place in the real world, but movie theaters may no longer be the only place for the first screening of a new movie.
One participant mentioned that he wouldn’t have joined Interintellect salons offline. The online events allow for a broader range of backgrounds and viewpoints, and some conversations and connections probably wouldn’t have happened outside the Internet. However, there is still some division between digital natives and those who feel less comfortable using digital technologies.
At the end of the salon, we briefly mentioned relevant topics that we didn’t touch. Remote worker compensation and digital tools in government are just two of them. Maybe Dominic will host another salon for them. For now, he has planned “Digital Collectibles: Ownership and Scarcity; Infinity and Ephemerality?”.
Browsers restrict API requests to the same origin domain. CORS, or cross-origin-resource-sharing, is a method to overcome this restriction in a well-defined manner. If you’re on the receiving end of a CORS request, or, in other words, if you want your API to receive requests from different origins, you need to configure CORS in your web application framework. Assuming your framework is Laravel, you can read my introduction piece, “Laravel CORS Guide: What It Is and How to Enable It”, which I wrote as a guest post for the StackHawk blog (my first for them!). In it, I cover what CORS is, whether you need it, whether Laravel is the right place to control it (e.g., instead of a reverse proxy), and where to enable it in different versions of the framework. My emphasis is on minimizing the exposed surface. Check out the article now.
Disclosure: This work was paid for by StackHawk.