My 7 favorite podcasts

I am a big podcasts fan. I listen to them all the time when I am waiting for something or commuting. They help me immerse into the western technology world from which Ukrainian tech community is quite disconnected. It is extremely unusual for me to meet at the conference some kind of world recognized guru or thought leader. Podcasts can not fully compensate for that because I can not ask questions while listening (and sometimes I desperately want to do so) but still I can hear other ask questions and those questions are sometimes even better then I could have asked. Podcasts also help me as non-native English speaker to improve and maintain my English communication skills. It is sometimes very difficult for the non-native speaker to understand the native speaker and accents of other non-native speakers. Podcasts actually provide great training on listening and understanding all these different accents, because podcast guests are people from all over the globe. It is hard for me to explain the reason, but podcasts help me to write and talk about technical topics in English. Probably this is the quantity to quality transformation. I listen a lot and spoken patterns are carved into my mind so that I can use them later in my own speech. Many people are surprised to learn that it is much more easy for me to explain something software related in English than in Ukrainian. So, here is my list:

.NET Rocks. I revolve mostly in Microsoft space. And there .NET Rocks is the number one podcast. It is not only about .NET, their episodes cover many different topics, related to software development in the Microsoft universe. Of course, most episodes are about .NET but often you will hear about the broad range of topics, starting from machine learning and ending with front-end stuff. Not only .NET rocks will keep you up to date with latest advances in .NET but it will also entertain you, I often find myself laughing or smiling while listening.

Javascript Jabber & Adventures in Angular. These two podcasts cover my front-end needs. I mention both because they are made by the same guy although the set of panelists differ. You will learn about advances in JavaScript and Angular worlds, learn about new libraries, front-end development problems, and possible solutions. In every episode, they discuss so-called picks, different things which podcast authors and guests are currently excited with. These picks will really teach you a lot.

SE-radio. This one was my first podcast. It mostly covers fundamental aspects of software development like refactoring, architecture, programming languages design, requirements engineering, software modeling, distributed and real-time systems. Back to the previous decade it was created and lead by Markus Voelter, who is my favorite podcaster. First, he is german but his English communication skills are extraordinary. Because he is not a native-speaker, his speech is simple and clear, the way he asks questions and digs into technical topics can be used as an etalon. It is also clear that the guy is passionate about podcasting and technology and for me it is a big deal, I love passionate people. This days se-radio is produced by IEEE Software magazine. Markus does not participate in its production anymore, but it is still pretty interesting to listen world-class experts talking on fundamental aspects of software.

Omegataupodcast. I have already mentioned Markus Voelter. After he finished with se-radio, he started Omegataupodcast. The podcast is about science and engineering. Although there are episodes on biology and social science, most episodes are about space engineering and science, aviation, physics, and computing. I have a background in radio engineering and aviation, therefore, omegataupodcast meets my interest in this kind of topics. It is a combination of Markus’ brilliance in dissecting complex technical topics and great science content which can literally go on for hours (episodes are pretty long).

Hanselminutes. It is hard to tell why am I listening regularly to this podcast. It is short, it has no specialization it looks and feels like the ordinary podcast, there are thousands of such. Probably because I have huge respect for Scott Hanselman and for all he does. He is the brilliant guy and he can combine interesting topic with fun conversation. Probably it is because ridiculously wide variety of topics covered on the podcast. One week he can talk on excel spreadsheet, another week – about toy robots, yet another week – some soft skills topic like management, motivation, and creative processes.

Developeronfire. I have recently discovered this podcast, I have listened to almost all old episodes and never miss new episodes. It is not technical and you can listen to it while working out when you can not concentrate very much. The podcast is indeed about going personal with your favorite geeks. Dave, the host, invites to talk about personal stuff active people in the software world. Mostly developers but not only, there were consultants, managers, marketers and other professions on the show, all somehow related to software development. Dave asks more or less the same set of questions like what is it the guest likes about technology, guest’s definition of value, his biggest success, and failure, her hobbies, and value delivering tips. Sometimes the guest is moderate and you will not hear something special and sometimes whole episode is full of pearls of wisdom. Take for instance episodes with Scott Hanselmann, DHH, J.B. Rainsberger or Linda Rising. Highly recommended, a lot of fun, deep conversations and you will be surprised how many things will resonate with you and your experiences in the industry. Cool stuff there.

EconTalk. This podcast is not specifically about technology or software, although some episodes are, but it is about everything else. Most episodes are discussions between the host and some brilliant personality who has written some great article or book. EcanTalk is meant to be about the economy but it is about the economy in a very broad sense. The topic can be very economy related like agriculture, chicken production, banking and monetary policy. They can also discuss somehow related to economy topics like machine learning, technology and artificial intelligence influence on the economy of the future, peoples’ ego, learning and education problems, sports, healthcare, and transhumanism. To summarize: this is a podcast where extremely smart people discuss very interesting and essential to everyday life problems.


Becoming an effective remote programmer

I have been working from home as a web developer for one year now. But before that I was a web freelancer for almost 4 years and for 2 years I worked in the office at SimCorp but my whole team was sitting in Copenhagen. So, I am a pretty experienced remote worker. I love this way to work and thus I try to be effective at it. In this post, I will share what I think it takes to be an effective remote programmer (non-tooling tips, which are covered here).

I believe that in order to be an effective remote programmer, one has to deal with severe problems this way of work imposes and develop personal traits: initiative, excellent communicator, and trustworthiness.

Let’s talk about problems first.

Lack of social interaction. Or just loneliness. Working from home solved my biggest problem of working in the office – the commute. It took me 3-4 ours per day, almost 55 days per year. But unfortunately working alone is unnatural. We as species survived because we had social interaction and collaboration. We are too weak to survive alone. Thus the need to socialize and collaborate is deeply embedded in our brains.

Furthermore, researchers have proved that changeable environment and interaction with different people improve our ability to learn.

Hence, to be effective remote worker one must find the way to interact with other people outside his family. I really struggle with this. But I try my best to socialize with my current and previous coworkers, to teach courses, to talk at conferences and other events. I am in constant search for an opportunity to have my social interactions.

Some people use coworking spaces but I am not a huge fan of them since for me workspaces neglect commute absence and personalized environment benefits.

I do at least 1 hour of exercises 6 days a week. To compensate the toxic influence of loneliness on our ability to learn effectively, the remote developer must do a lot of exercises, preferably aerobic, preferably every day. Researchers proved that aerobic exercises can help with this problem.

Lack of self-motivation. It is definitely hard to stay motivated when you stay home and things don’t flow much. There is no boss standing behind your shoulder and motivating you using whatever method he is good at. In such a case I believe only hard self-discipline can keep you effective. I use Pomodoro technique and my discipline is pretty simple: deliver 10-12 Pomodoro per day to my customer. That is not less than 50 Pomodoro per week. I almost never break this rule. Sometimes I feel like I do not want to code. But I force myself into doing Pomodoros. And you know what? Right in the process I start feeling good about the work I am doing and the amount of Pomodoros I have done.

Lack of self-management. Since you don’t have 9 to 6 working day anymore your concentration starts to decay. You start mixing work with entertainment and home duties. You relax because you are home anyway. This semi-work can take a large portion of your day and at the end of the day you might feel unsatisfied with what you have achieved. Thus you merge your work and your private life and neither part of your life wins in such a situation. To stay effective, the remote worker must manage his time and his work very actively. I don’t have a manager who would micro-manage me and therefore I do everything on my own. But I still use some kind of Kanban board, create and manage tasks there, try to do estimates and reflex on my estimations accuracy. I usually pretty consistent with my working hours. Although I do have the flexibility to work whenever I want to, I don’t really wait for that muse to come and start working according to the planned schedule.

Now, let’s talk about traits one has to sharpen to be an effective remote developer.

Initiative. You don’t move your ass unless someone kicks you? Then remote work is not for you. At least for now. I hope one can teach himself to be more initiative. Initiative bases upon a strive for productivity, being self-driven and requiring the least amount of managerial overhead. From time to time, you will have the idle time. It is important to spend this time with the value for your customer. I always try to initiate some improvements in the project which will potentially increase team’s productivity in the future. These improvements might be technological, educational, process or product related. Does not matter much. The point is to strive to deliver something a value to my customer even if I was not asked to explicitly.

Excellent communicator. This is a trait everyone in tech must have. But in remote work it is critical. To be effective one must communicate as clearly as possible because almost everything happens asynchronously in remote. This constitutes a special challenge for a non-native English speaker who works for the English-speaking customer. I do a whole lot of things to improve myself on communication skills. Starting from reading books on tech writing and finishing with listening to podcasts and writing this blog.

Trustworthiness. I have never seen my current manager. He has never seen me. He sits somewhere in California and I sit here in Ukraine, opposite side of the globe. Most probably we will never see each other and have some beer together. Teambuilding is the place where people build trust in addition to other things. But we can not have them. Hence all our interactions are based on a trust in advance. He and I do our best to maintain and build real trust. I try to be never late on the call and in case something happens I make him aware. I try to make visible my work and my progress. I do my best to be as available as possible and make him never wonder where I am and what I do and whether I am worth to deal with. My manager also does something which makes me trust him. This something is only known to him. One thing I am sure about is that he know how to build a trustful relationship with the remote team.

To summarize, in order to be effective try to socialize at least once a week with people outside your family. Do everyday workouts (preferably aerobic ones), use Pomodoro technique to fight distraction and structurelessness and impose a discipline on yourself to do at least 50 Pomodoros per week. Try to be initiative, constantly invest in your communication skills and actively build the trust with your remote client or manager. There is, of course, whole tooling side of this topic, which I have covered here.