We all have spare time, and my latest challenge has been to 'passively' make myself a more apt software engineer. After running a quick analysis on my screen time using the iPhone and Mac apps, I knew that I had a bunch of 'free' time (time that I was burning doomscrolling or watching nonsense) that I wanted to optimize. Here's more on how I converted some of that time into productive self development.
I will preface by saying what we sometimes catch ourselves saying when we're coding: "it works on my machine!". Basically, what I'm documenting here is stuff that helped me feel like I was learning more and being more productive with my downtime, but that doesn't mean it'll work for you! Think of this like a self-help book, either you'll read it and love it and use all the tips, or you'll realize that none of these will really work for you. Either way, enjoy reading my thoughts.
Ok, if you're like me, your general feelings towards engineering blogs put out by companies were that of wary curiousity. At first, I would run into google search results recommending engineering blogs from companies in ways that made me think "oh great, it'll start as a tutorial, but just end up trying to sell me on the product by the end of it, barf." For example, suppose I wanted to send an email in Python, and the first thing I saw was an eng blog by SendGrid (Twilio). My first thought would be, "Oh, I'm just cleverly being sold sendgrid. Away with you." But this was a pretty awful, cynical way to look at these things. I'm not saying every single one isn't a thinly veiled pitch for the latest shiny product that a company has put out, but most blogs are deeper than that!
I started thinking more favorably about engineering blogs after internal discussions at Athelas about creating one. We were talking about ways to level up our engineering org, and one of the topics that popped up was, "let's make a nice blog where we talk about some of the cool things our eng team is working on, so that we can show the world what eng @ athelas is up to!". What I also caught on to was that at the footer of every blog, we'd have some section that sounded like, "If this sounds neat to you, send me an email or apply to our careers website! :)". In addition to being a cool showcase of our eng work, it also served as a powerful recruiting function.
Seeing our own company do it was enough to get me to start "trusting" them more- but I soon learned that there were some eng blogs that I really enjoyed reading, and those were mostly the eng blogs that told some sort of story, framed around a technical issue at the company that was solved, and also discussed technology in a fairly approachable way to a junior fullstack engineer. There were certainly some blogs I got frustrated with in the middle, as I was googling every other term mentioned (many DL and ML blog posts which tended to get into the weeds felt like this), but there were also plenty where I felt like I was really learning a lot, or bolstering knowledge I had accrued already.
In terms of actually moving on these, and rain-dishing the knowledge stored in these blogs during my busy days, I've devised a bit of an odd solution. When I'm at the gym- I know, sounds like the worst kind of tech bro- and I'm in between sets, I've started to cultivate this habit of thinking of a 'cool' company (most recent example: Ramp) and going to their engineering blog page. Then, I click on a post that interests me and I start reading in between sets! By the time my workout is done, I'll have gotten through 2-3 engineering blogs, and now have something to think about as I do my cooldown stuff.
I've also found that rabbit-holing with these engineering blogs is such a fun adventure (and sometimes you feel a bit more like you're an archeologist as you dig, since links and references may not be served up for you on a silver platter). Too often will I be reading an eng blog, see a mention of a certain 2000s dot-com bust phenomenon, and then I'll happily chase it down on Google, eager to soak in this additional nugget of knowledge. For example, I was reading an opinion piece on the battle between Bard and ChatGPT and there was a mention of a service called 'ask Jeeves'- something I had to google- and then I went down the rabbit hole of learning about the service and how it was built and used, and then I googled why on earth it was named 'Ask Jeeves' in the first place, only to learn about P.G. Wodehouse and his 'Jeeves' books. Somehow, this felt so much more rewarding than getting the explanations handed to me- I felt like I was filling in knowledge gaps myself. On another occasion, I was reading the blog of one of my engineering role models when he mentioned something along the lines of "I am writing here to respond to blog post X, which was written in response to blog post Y. I believe what X is trying to say, and can also see where Y is coming from, but I don't think they've quite gotten there, so here's what I have to say." This was an absolute delight to see- I popped post X and Y as well, and then read all three in order. I felt like I was deeply engaging with the opinions of incredibly smart people, seeing how they responded to each other, seeing their biases come into action. I know this is starting to sound dramatic, so just to bring us back to earth, all of this was just about web frameworks and how complex they've gotten. My closing thoughts- if you see a reference to something in a blog, feel free to go rabbit holing and google it! If you're anything like me, you'll find it to be an infinitely rewarding experience.
Now, I'm going to suggest something related to a category of app that I call a 'timesink'. To qualify, an app needs to meet these criteria for me:
I love my timesink apps. But, I wanted to find a way to not necessarily deprive myself of the 'timesink' experience, but maybe replace my current timesinks with things that would help me develop my general knowledge and understanding, career-wise. Is this a perfect solution? I have no clue. Is it better than what I was doing before? Almost certainly. :]
So, I may have been guilty of making fun of some friends for browsing HN in their spare time- but I have to admit, I shamelessly stole this idea from him after I decided to give it a go. :]
The basic idea is that I spent a lot of time before on Reddit. Like, a lot. I'd love to show you my 'screen time' app from back before made the change, but thankfully Apple doesn't keep my history that far back. I knew I needed a change after seeing that, and I decided to do something a bit interesting.
I needed a way to generate as much content for myself as possible that would fill my downtime (while still limiting it), but wanted to make that content helpful for my career or my knowledge. In other words, I wanted it to be 'enriching'. I also wanted to not necessarily quit the biggest grabbers of my attention (YouTube, Instagram, Reddit), but instead sideline them and set limits, so that I would be more encouraged to use the 'better' apps.
Pretty impressive, right? (/s) Let me explain the lineup. Hackernews and Blind are good to go out of the box. Hackernews is mostly just posts that I categorize as "I could send this link to a senior eng on my team and they'd think I'm a smart, quirky fellow who's in the know", and so I generally have no additional thoughts on the platform. I've been keeping a list on Notion that I call "Aki's HN greatest hits", where I'll save posts manually if I find them especially neat. Now, let's talk about Blind. I've seen people be weirdly candid on Blind (maybe due to the anonymity) in ways that have me think more deeply about where I want to work (e.g. not being able to afford a house in the bay area even after becoming a staff eng, talking about health issues as a result of overwork, etc). Although some parts of Blind definitely feel a little bristly for me, I'm thankful for the platform and the honesty that comes with it. As with most other social media- if a post upsets me, I just click away from it and try not to let it mess with my headspace.
Twitter and LinkedIn are the ones which don't have 'batteries included', so to speak. The content is very much tailored to you, and so you have to go out of your way to follow stuff that you like. First, let's talk about Twitter- I stayed away from it for the longest time, after hearing about friends having crass mudslinging exchanges, or seeing blatant disinformation rocket to the top of feeds. But, I like what my Twitter looks like now, after hours of careful curation. I've taken care to follow people talking only about what I want to hear- that is: neat little projects that people are hacking on, software engineering tips and tricks, and news on in-person meetups in San Francisco. I'm not really interested in arguing with people or starting discourse on the platform myself- would much rather take in the nice things that it has to offer. And I think more people should be okay with that. LinkedIn is a much more tame beast- I will say that I've heard some friends complain about the hyper-corporate nature of posts on there, and my response is, it's networking. Take it at face value. Personally, I like to follow 'cool' companies and specific engineers that I admire, to see what they are reading about and liking on the platform. Since I don't go out of my way to read other business news, I tend to get some of my bulletins from here as well, which is always great.
Overall, it's not perfect. And hey- it's not like I quit my other timesink apps cold turkey. But these are the only ones that are available on the home screen, while reddit, instagram and youtube are all locked away behind a 1 hour daily time limit & no real estate on the home screen. And it's honestly made a world of a difference. :]
I wanted to make a little side note here about the timesink apps that I mentioned I was 'phasing out' above. All hope is certainly not lost for those. I mentioned earlier that I was setting a strict time-limit (my iPhone has that functionality) for each of these apps, which has helped me get a much better handle on how much time I actually spend on those apps, but another great thing about these apps is that they all run a personalized algorithm for you.
Lately, I've been going out of my way to watch and engage with content on YouTube, Instagram and Reddit that will help me enrich myself, both for my career and general knowledge purposes. I started watching more channels like FireShip and Coderized on YouTube, and I found things like reels on Instagram where someone will spend 30 seconds teaching you a cool Python syntax trick. Slowly but surely, I am righting my algorithm, steering it away from videos of 'Subway Surfers' gameplay juxtaposed with a movie clip from CW's "The Flash". It feels good to take my attention span back!
As someone who lives in a city, I spend a lot of time walking and on the bus. At my last job, which involved 2 hours of commuting per day, I also had a lot of empty time on my hands. I used to fill this time entirely with music, and while there's nothing wrong with that, I recently discovered a new way to enrich myself while on my journeys.
I ventured into the world of podcasts- but I did so intentionally. Knowing that I had longer chunks of time where I could devote some of my attention span to something like a podcast (basically- more time than a 30 second reel or a 15 minute youtube video), I realized that a great way to spend this time was to find Podcasts that would enrich my knowledge. I personally wanted to pick up pods in the tech and business space, but if you're reading this and you want to develop yourself in some other way, feel free! I would recommend using the fully featured podcast search on Spotify or Apple Music for best results.
For people interested in tech and business (and software engineering, as per the title of this post), my current habits tend to switch between hearing things from VC, Startup founders, and luminaries in big tech. Specifically, I love listening to the All In podcast (VC besties discussing tech and business), This Week in Startups (really interesting when they have founders on the show), and other big tech podcasts. I think in terms of big tech, there are a lot of choices, but a great place to start that I would recommend is the Roblox Tech Talks podcast. We are in the great age of podcasts, and the barrier to entry is lower than ever (a good thing!), so get out there and find some pods that really fill those longer, empty blocks with things that make you feel enriched.
Tongue-in-cheek gaming reference aside, something that I've found really enriching is finally attempting to interact with developers aside from the ones at my company specifically.
First things first- if you're in a city, then make use of it! I've begun to frame my high SF rent like this- I'm paying a lot, but I'm also paying for all the other devs in the vicinity, and the ability to go to these small, casual dev meetups in the area. All it takes is a bit of strategic following on Twitter and LinkedIn, and I'm confident that any small metro area with a tech scene will be hosting some event, and you should definitely try and go! I've been to four this past month, and though I felt a bit out of my comfort zone, I met a bunch of awesome new people and learned plenty!
If you're not in a city, then firstly, congrats on the hopefully reasonable rent! :] If you're unable to 'touch grass', as they say, then the next best alternative would be finding and connecting with these people over the internet. My platform of choice here has become Discord- I've had really great experiences so far when joining communities on Discord that are:
Overall, I wanted to share some methods which have helped me 'passively farm exp' as a software engineer; things that enhance my knowledge of the space (both in a macro and micro sense) all while I'm either busy doing something else, have a spot of downtime, or am not feeling like fully working. I hope that you found a piece in here that caught your eye as well. :]
As always, feel free to reach out to firstname.lastname@example.org! I will most certainly respond.