I brought an external display to my new desk in setting.io’s office. I really dig the change of scenery and having an optional commute again.
My micro.blog timeline is pretty empty during the day as I mostly follow people from US timezones.
I just spent more than 60 minutes reading up on Arel and trying a bunch of different things just to learn that it won’t work. So back to writing ugly SQL strings. Too bad.
Spatial audio with AirPods Pro when listening to music on my laptop is really confusing sometimes. After moving my head I wanted to make sure that the sound doesn’t come from the laptop’s speakers and indeed from the headphones. It appeared to come from the laptop. Crazy.
GitHub Codespaces port errors
GitHub codespaces is a great feature by GitHub that let’s me work on an iPad way easier than it was before. It’s also cool for teams to quickly setup a new developer, of switch between branches.
I use it for Ruby on Rails development, mostly. Sometimes a thing happens that prevents me from continuing
my work and I had trouble finding out how best to solve this. Here’s what happens:
I start my codespace and want to spin up a Rails server, to inspect the website.
Once I type bin/rails s the server starts and I get the notification to open up the browser in a new tab.
When I navigate there, I see this screen:

It’s a message from nginx that tells me that there is a 502 Bad Gateway error when I want to access my codespace.
The solution that always helps me is to unpublish the port and re-publish it again. Here’s how that looks in the interface:

That should solve your issue and you can quickly access the website.
Something new
Changes!
I joined my last client, Edeka, in April 2020. Since then I am not freelancing anymore. My old Wordpress site ran on quite expensive hosting. Which I could justify as a business expense. But since those are gone now, I have to switch to something cheaper.
This site now runs as a GitHub pages site, powered by Gatsby. Which I love quite a lot. And now I am free to experiment with this site more, again.
Onboarding new team members
Tomorrow I will help a new team member onboard at my client. I am the acting tech-lead for the client right now and so it’s my job to make sure that everything is in place for this new member of the team.
The former tech lead onboarded me in September (not so long ago). He had prepared a list of tasks we had to do together. He even created a whole new Trello board, just for the onboarding. Did he do it because it was so laborious? No! In fact, the onboarding mostly consisted of joining the services and Saas applications we use and getting familiar with all the processes for running the show.
But it did help to be able to cross items off the list. We were always aware of which services were yet to join. We also knew what was missing until I was at 100%. That was certainly helpful.
When I am onboarded at a new client, I generally send them my onboarding survey beforehand. In it I ask questions that are relevant to the process and to me, and that come up with every client. Asking them these questions before I arrive, they tend to be better prepared.
I am really looking forward to having the new developer join the team, tomorrow. I bet he’ll do great. And to help him along, I’ll just follow my onboarding sheet. 😉
Do you use something similar?
Yours,
Holger
Why ist software so bad?
A couple of days ago I talked about the Akimbo podcast by Seth Godin. It was an eposide about opportunity cost and how that relates to livelong learning as a software developer.
This morning I was on the train to a dear friend who happens to help me with my financial retirement plannings. She helps me choose equity funds and all those things related. I decided to take the train instead of the bike, which is what I usually use to get around Berlin. Taking the train meant that I could write a few words that moved around in my brain. I also meant I could listen to music or a podcast. It just so happened that the latest episode from Seth was relevant to our topics here again. Its title is the same as this email’s subject:
Why is software so bad?
When I saw the title appear in the episode list in my podcast app of choice (Overcast on iOS), I just had to listen to it. In it, Seth compares the evolution of the development of cars to the stagnating evolution of software. I believe you will get a lot out of this episode. If for nothing else, you will at least get one or two ideas for a software startup you could pursue.
Here’s the link to the episode: www.akimbo.link/blog/s-5-…
See you next week.
Holger
Opportunity cost
Today I heard a recent episode of the Akimbo podcast by Seth Godin. The topic was opportunity cost. As a quick recap, here’s what Wikipedia has to say about opportunity costs:
The opportunity cost, or alternative cost, of making a particular choice is the value of the most valuable choice out of those that were not taken. When an option is chosen from alternatives, the opportunity cost is the “cost” incurred by not enjoying the benefit associated with the best alternative choice
So… about that new JavaScript framework. Or, about the recent addition to React name suspense… have you already taken the time to read up on it? Do you know what it does? It is supposed to change how we render things onto the page and fetch the necessary data to display.
Or did you know that in Ruby 3.0 the handling or positional and keyword arguments will change from the way it was handled in Ruby 2.7 and before? How will your code have to be changed?
And that language Rust… and Elixir/Erlang. What else didn’t you yet learn? All the other developers competing for the best job probably already know at least something about those technologies, right? But I guess, you did watch the latest Netflix series.
Do you feel left behind already? What a shitty feeling. I know I do. About those tech that I wrote above… Every thing I know about those is what you can read in this email! I didn’t yet take any deep dive. I don’t even know GraphQL. (I wanted to add a “yet” but realized how phony that would have been. I won’t learn GraphQL unil I need it on some project!)
So here’s my take on all this FOMO: Ignore it. Learn fundamentals. Learn the basic building blocks of how the stuff works—and worked for last 40 years. It pays to know how a request is handled on the web. Generally. It’s fun to look at the complete request cycle of the Rails framework. But you don’t need it. If you can build a basic REST API you’ll be fine. And if you come across a use case that requires GQL you will be quick enough to adopt it and learn it as you go.
Don’t get freaked out but the lastest trends and what the cool kids think they need to learn. They are usually wrong and have been before.
Learn the basics, practice those “soft” skills like communication, articulating concepts in a way that people understand, practice your story-telling and call you mom regularly. That will help you way more than getting freaked out by the opportunity costs and all the things you might have to learn.
Time to say goodbye to Drip
This will be the last email that you’ll get from me sent by Drip. My account will be terminated tomorrow.
I just spent around an hour saving screenshots of my automations and text files with the contents of all emails that I send to my subscribers. What a hassle. And then I’ll have to recreate everything when I’ve found a new home for that.
I would like to go to something like ConvertKit, but they are not GDPR compliant. So that’s definitely not a solution for me. The next best thing looks like Mailjet, but I already know they don’t support everything I’d like to have. ☹
I am still toiling with the idea of writing something myself. But I don’t have time for that.
Work
I spent last week doing my first sabbatical week, inspired by this guy. That’s the reason I didn’t code anything at all for clients.
I worked on my pilot course a bit, but mostly on my website holgerfrohloff.de. I silently launched it yesterday because I figured that I’d already waited for too long. I know it’s not finished and that not everything is worked as it’s supposed to. The reasons for that are mostly a) time and b) Wordpress/PHP. I am still figuring out how Wordpress and PHP work. And it turns out I have a really hard time doing it. Even simple changes to the theme I bought and to Wordpress’ logic take me ages—if I am able to do it at all. It sucks.
But I am glad that I launched. Now day by day things will improve. I already know of things that do not work, but if you come across anything, please let me know. You have my email adress 😉
Personal
I used the week to spent quality time with my family, played some video games and read great books. But I also made time for high-intensity running workouts. It was an awesome week. I am already looking forward to the next one. Since I will be at my new client by then, I’ll have to see how and when it will be possible.
One work-related thing I that I want to leave you with is this tweet-conversation I had with the creator of the Lucky framework, Paul C. Smith: https://twitter.com/5minpause/status/1159464579249950721 He responded to my question “When is a class too big”.
See you next week, I hope (if I figure out how to send emails with Mailjet or something else by then).