When I got up this morning, I quickly realized that my landline was out of service. Called my ISP, and apparently , it is due to thunderstorms in my area last night.
Pretty bad news. As a full-remote engineer, this means I will have to rely on the flaky 5G network I get round my house to work and communicate with co-workers.
I realize that I will have to write code in a completely gated environment, which, two days after writing a post about unplugging AI and reclaiming my thinking, means that I will have to code without the help of AI. This is a good test, a kind of reality check. What does it feel to code like it’s 2010 again?
And what a good idea for a blog post! I am going to write down my thoughts here along the way.
8:27 am
Re-opening my IDE where I left it yesterday only to realize that the feature I was working on is a front-end task in TypeScript / React 🤡. I am Ruby backend developer, but I get to do these kind of features for the admin from time to time, and I don’t mind. I can code in TypeScript, but this is going to be a little more challenging than I thought — there will be no agent at hand to guide me along the way.
Let’s take a deep breath and dive in.
9:08 am
It’s quiet in here. Let’s put some music on…
😬
Oh well, all I have is an Apple Music subscription! Where is my music collection? I guess that’s something I must address sooner or later. This is not work-related, but it is telling of our dependency to the internet.
9:42 am
Time for a break. I am feeling quite productive so far. I do lose a little time, though, due to the absence of code completion "on steroids". I have to type most of my code the old-school way, tabbing through variable completions. It’s fine.
My co-workers should now be up and working. I tell them about my network issues and re-activate notifications on my phone Slack app.
11:07am
I need to check the JIRA ticket I am working on to get some exact wording for a string. I don’t have the JIRA app installed on my phone, so I share my phone’s connection to the computer.
This is sluggish. Like 1995/33k-modem-sluggish. And JIRA is not the lightest UI around.
While the UI loads, I remember that I have the JIRA extension set up in Raycast. This will mean simple, faster API calls. It works and responds almost instantly. I can read the specs and get on with my work.
But it leaves me thinking: how on earth did we end up with such bloated web apps? There is such a contrast between the delay I experienced fetching data through the API (a few kilobytes in a few milliseconds) and the lagging UI that loads up megabytes of javascript just to have it displayed on a page. There is something broken here. We all know it. But actually experiencing it sheds a different light.
The irony of it all is that I am currently working on a React project used to render the admin backend at my company. The typical example of what React should not be used for — and yes, trust me, it si terribly slow to navigate.
11:44 am
I had to do the daily meeting with my squad in the garden.
Currently looking for how to do string interpolation in TypeScript… Good old Stack Overflow comes to the rescue on my phone. I heard they are going through hard times with the rise of vibe coding. I hope we don’t get to the point where they have to shut down. They are the Wikipedia of software engineering. They should be part of the commons and kept as a public utility service. What will happen when you really have to pay for AI (I mean the real price, not the huge discount we get these days)?
Still no internet. One neighbor just told me that it is going to last a few days. My ISP proposes to lend me a 4G home router in the mean time.
2:05 pm
I need to restart both front and backend servers, and this hurts. Front-end keeps repeating There appears to be trouble with your network connection. Retrying… . Backend is stuck…
I decide to share my lousy 5G connection. After a few minutes, my phone picks up a signal, and servers boot. At last!
Coding locally should be possible without the need for an internet connection. If you server calls external APIs as it boots, it should be fixed — what happens if they are down? Will file a ticket for this.
2:23 pm
I have a question on the way TypeScript handles undefined and booleans, and whether I can do some kind of type casting — I know I can, I just can’t remember how.
My first reaction is to fire up a search engine on Vivaldi. Ah yes, no internet. I get up, walk to the garden and find the answer to this. Not the shortest feedback loop. It would have been much worse if I had to go look up an obscure error message and figure out what it means.
2:48 pm
I am quite satisfied with my work now. Let’s review it.
This is usually when Claude walks in. I guess I will have to review it closely myself before I create the PR. This is hard, actually. I am not fluent in TypeScript, so I don’t have much to say about the stuff I have written. I just remove some unneeded code. Fingers crossed!
3:06 pm
Time to push. It’s connection-sharing time again. This is a little tricky, and I am moving my phone round the house, desperately trying to find a proper signal. Once I get something, I fetch latest main, but by the time I rebase, the signal is gone, so I have to find a better spot.
After a few minutes, the signal stabilizes and I can do some online stuff: push, create the PR, notify the reviewers… Let’s hope Github doesn’t decide it’s time to have an outage…
4:27pm
Yay! It’s the weekend!
Overall, this was an interesting experience. It was satisfying to find out that I can still code by myself, like a grown-up developer. It was also quieter, with less interruptions to deal with, since Slack notifications arrived when my phone caught a signal, so it was more a question of me reaching to my phone than the other way round.
I think I am going to reproduce this regularly. Switch off the wi-fi and work with no strings attached. But I need to regain control of my music library first!
And guess what? As I am writing these words, I just noticed that the internet is back on… True story.
