AHM Modasser Billah is a Senior Backend Developer at Doist, the company behind popular productivity and work apps such as Todoist and Twist. Before joining Doist, he worked at BriteCore, a US-based insure-tech company. Before that, he worked as a Consultant Software Developer for the National Enterprise Architecture under LICT. Trained at BUET in computer science, Modasser takes a deep interest in the ideas of remote work, growth mindset, and continuous learning.
I recently had an opportunity to speak with Modasser about his journey, all things programming, the rise of remote work, craftsmanship as an approach to doing your work, company culture, personal growth, books and learning, and more.
What follows is a lightly edited transcript of our conversation. I had an excellent time speaking with Modasser. I hope you enjoy reading the interview as much as I enjoyed doing it.
Thanks to Ayrin Saleha Ria for helping me edit this interview.
Ruhul Kader: Thank you for agreeing to this interview. Can you please tell us about yourself and your background? Where did you grow up and from there your journey to what you're doing today?
AHM Modasser Billah: Thank you for havig me. I grew up in Cumilla, where I live now. My childhood was here from class one. My father was in PDB. He used to get transferred to different parts of the country. But we kind of settled down in Cumilla once he was transferred to Cumilla. When my elder siblings grew up, my father decided not to move the family with him after that. So I didn't have to move much.
I was born in Tongi and briefly lived in Brahmanbaria when I was a kid. And then it's been Cumilla all along.
I started my school at Cumilla Zilla School. After that, I went to Notre Dame College and then to BUET, where I studied CSE. After graduation, I worked for a couple of organizations and then eventually started working remotely. When I started working remotely, I came back to Cumilla and have been living here since then.
Ruhul Kader: Do you enjoy living in Cumilla? You used to live in Dhaka and then moved back to Cumilla.
AHM Modasser Billah: I love it here. The funny thing is that I lived in Dhaka for a long time since college. But I'd come to Cumilla every Thursday and then would go back again on Saturday. This was the routine for my entire BUET life and also when I was working in Dhaka. So I like it here in Cumilla. While I'd like to stay here, now with kids, their education, and all that, we’re having to reconsider going back to Dhaka. I don't like the idea of it. Cumilla is a nice place. I mean you get everything you get in Dhaka, minus the bad things.
Ruhul Kader: I think there is a lot of nature in Cumilla, which is difficult to get in Dhaka. Tell a little bit about your childhood. What was it like, your siblings and the kind of environment you had, etc? Was there anything about technology? You got into CSE. Was it because at that time everybody was taking computer science or there was something in your upbringing, in your environment, you saw people around you doing computer engineering and you thought okay computing is something fascinating and I want to do it?
AHM Modasser Billah: It's an amusing story that I chose to study computer science but it was nothing like I was inspired by something, etc. My father was an electrical engineer. He was also from BUET. Since he worked at PDB, he had quite a hectic schedule sometimes. For instance, if there were faults in the grid, storms, or any emergencies like that he would have to go out. Sometimes in the middle of the night. Seeing him, I was like I don't want a job that requires going out too much.
At the same time, I wanted to study engineering because my father was an engineer and my brother is also a civil engineer. As I said textbook example, everyone wants to go to BUET if they are doing well in their studies, and I wanted that too. But CSE wasn't my first choice when I got into the BUET admission test, EEE was still the first choice. I got into BUET in 2009. I thought CSE sounds good. I would be sitting behind a computer all day and it would be fun. It's not like I was programming before university or something. I didn't have any idea about programming other than seeing some pictures of, ACM-ICPC finals in my college days. It was more of an intuitive decision — this seems a cool thing, let's try it out. Although it wasn't a well-thought-out and motivated decision, it worked out well for me.
Ruhul Kader: Your father went to BUET and your brother did as well. So essentially everyone in the family went to BUET.
AHM Modasser Billah: No, my brother went to MIST. He's the better student. He won gold medals all along. He went to Canada for his Ph.D. and won a gold medal for his Ph.D. research at UBC. He's now an assistant professor at the University of Calgary. It's been a tough competition in the family. But I was kind of more laid back because my brother took some of the pressure off me. He loves to study. The expectation wasn't that high for me. I had it easier.
Ruhul Kader: Your brother went for Ph.D. after his graduation. Did you have any pressure for pursuing a similar path?
AHM Modasser Billah: No. My family has been quite laid back about these things. There were no pressures all along about what to study or what to choose. I was free to choose any subject that I wanted to pursue. It was quite easy for me. My father passed away when I was in college. So there wasn't that much pressure. So as my brother went for his Ph.D., I stayed back with my mom.
Ruhul Kader: After college, you went to BUET. Talk about your time at BUET. BUET is an interesting place. I get to talk with a lot of people who are doing amazing work and a majority of them are from BUET. BUET probably produces more successful entrepreneurs than any other institution in the country. Talk about your experience at BUET, and any particular takeaways, any experience that stands out for you, etc.
AHM Modasser Billah: My time in BUET was more of a philosophical journey for me. I went through many things, except studying. My results weren't that great. To be honest, I wasn't interested in coding during my time at BUET. As I said, my father passed away when I was at college. I was going through an internal transformation — how to look at life and things like that.
I eventually got involved in a lot of things such as volunteer work, delved a little bit into the publication industry, translating books, and stuff like that. But I was more into books and other things than studying. I wasn't doing that great during my undergraduate years, but I was getting through. It was quite a turbulent time. Events in 2013 and afterward. I also lost a friend of mine around this time, which also deeply affected me.
When I look back at my time in BUET, it's not that much about technology or studies and things like that, it's mostly the other things. But near the end of my time at BUET, I did get involved in doing a few small projects and freelancing work. That's about it in terms of professional development.
Ruhul Kader: This is my takeaway, of course. You were going through personal challenges. When you were in college, you lost your father. I think it was still a fresh memory when you went to BUET, which affected how you viewed the world and your studies and work. As you mentioned, one of your friends got killed. These events change us. This is a little morbid question, how did you handle it when you lost your father? What were you thinking? Because when you are in college, is an age when you're at the height of your emotion. You understand things and the world. You're not a full-grown man, but not a young kid either. It is a unique age.
AHM Modasser Billah: I think that's precisely why I didn't know how to process it. I am not a very expressive person. I don't like to talk about emotions. I'm not comfortable doing that. I just tried to go on with my life. But internally, I was questioning many things. Is this it and is this how things are and so on? I was thinking about what should I do with my time here.
I had all these existential questions and that kind of took away the steam from my professional ambitions. I was just looking to have a good life that I could look back to.
Something that stuck with me from those days is that it's all about people. The questions we get a lot why aren't you leaving the country yet? So I think I can leave, but I can't take everyone around me. In the end, you die, wherever you go. I think you can be wildly successful and buy a lot of things, but you can't buy people. I kind of made a decision in life that I'm going to stick with my people rather than chase a higher-quality lifestyle and all that. That happened. I generally gravitated toward religion. That helped me to process things and get back my head in the right place.
Ruhul Kader: I think that's one of the positive responses people can manage in the face of great sufferings that we go through in life. After you graduated from BUET, what happened?
AHM Modasser Billah: I started to apply for jobs and eventually got a job at Commlink Infotech, quite an old software firm in Bangladesh. They were the firm working on the biometric thing with the telecom operators. Worked there for six months. And then I hit a roadblock. I had an issue with my spine. I was having some issues with my back pain and my lower back and I started losing a bit of reflex in my left leg. I eventually had to undergo surgery. I went to India. The surgery didn't go well. I eventually had to have like four surgeries two in India, then the next two in Bangladesh, because I couldn't just keep going back and forth. It was a turbulent time.
After those first six months, I was kind of on and off for work. For one and a half years, I didn't have a proper job. During that time, I was doing rehab and just surfed the internet.
This was between 2016 and 2017. Remote work wasn't a big thing back then. People did freelancing work on sites like Upwork, and all that. I tried that but didn't like the experience. You had to bid for a lot of jobs to get a job. Clients could have different expectations and it was hard to satisfy them. I also consulted for a company in Dhaka. I worked with them on a couple of UNDP projects, data analytics, etc.
When I started to get better after one and a half years, I started to look for a job again. I eventually joined a project in the ICT Division called the National Digital Architecture. After a big break, I went back to Dhaka and started going to the office. After my first day, I started to feel unwell. Office work is different. You have to sit for six to eight hours. The traffic in Dhaka wasn't that great either. After a few days, my pain was back again and I couldn't just do it. I had to go back home. But my employer at ICT Division was very kind and allowed me to work from home. I just joined a month ago. I said that I need more time for my rehab. Despite the limitations, they employed me. After all the time, they just couldn't start the hiring all over again. I said I can work remotely. There were a few BUET alumni there. They were very supportive. That's how I got into remote work.
I came back to Cumilla. I have a small attic on my rooftop, where I set up an office and started working from there. But it wasn't going well because all of my colleagues were working from the office. The setup wasn't there. I was trying hard because I got an opportunity to keep working, which I needed at that time. I was married and just had a child. I kept working there. I also started looking for remote jobs around this time. I came across an article by Amir called "What remote companies don't tell you about remote work", around this time and it resonated with me. I was going through the same things and I agreed that this, this and this needs to be done. I found out about Doist and started using Todoist, which was an improvement for me right away. They were fully remote and didn't have a timezone barrier to hiring. I was like I need to get a job here. I continued following them.
I'm sure you have heard of Stack Overflow. They had a few ads about some remote jobs. I got curious and started looking into it. I found a few other job forums such as remoteok.io and so on. So I started looking. I thought that might be a thing. If I could work from my home for this job, I might work for other jobs as well. I started applying. I think I applied for over 100 jobs. Responses were few and far between. I didn't have that much experience. Remote jobs were few back in those days. On top of it, there was the time zone barrier. But I kept applying and went quite far in the interviews in maybe 10/12 places, but I couldn't just get through. Eventually, I did get through a job at a company called BriteCore, a US-based insure-tech company.
Then it was time to decide because no one I knew was working remotely. I talked to my brother, friends, colleagues, and seniors. Everyone was skeptical about whether they would pay me or whether it would be a good thing to leave the job at the ICT division. Things like that. I wanted to try it out. I thought it was still early in my career and if I could make it work that would be a good step forward for me. So I started working at BriteCore in 2019 and started to learn more about remote work than people around me knew at that time. I also found out about a lot of companies that were working remotely such as Basecamp, which is a famous one, and started to read about them. When I started working for BriteCore, I had to work in the US timezone, which is the night for us.
What immediately impacted me was that the engineering culture was very different from what I saw in the local companies. The standards were very high. I liked working with people this way. I also found out that I was better at written communication, although I was not good at office communication such as presenting things, office politics, etc. I wasn't good at those things and didn't enjoy them. I also didn’t like the open office plan. Engineering is a thinking job. The open office plan is like an antithesis of thinking. So I didn't like working in an office that much. When I started working remotely, I felt okay this could work out for me. I got to work with a few industry experts in the Python community at BriteCore.
There was Daniel Greenfeld, who hired me. I worked with him for a while. He has a famous book called Two Scoops of Django. They are a couple, husband and wife, who wrote the book. They both were working at BriteCore at that time. I enjoyed working with them. I reviewed the next version of their book. That's a big achievement for me, seeing my name on a book. It was going well. They eventually hired three other people from Bangladesh. Two of them are still working there.
But I was struggling a bit because of the US timezone thing. I had small kids. And there was when I started to get paranoid about notification sounds in the middle of the night. Financial products face a lot more bureaucracy. So making progress was a bit harder than you expect in software companies. Then came COVID. Things were not looking good.
COVID led to lay off at my workplace BriteCore. I got laid off. The day I got laid off, the next day Doist posted a job vacancy for their backend team. I thought this is a signal from God. I need to prepare myself for this. It was a long process, which took three months, but I had an edge over other applicants because I was preparing full-time for this. I went to pretty great lengths for it. I followed the people in the company on different social media networks. I listened to their podcasts. I reviewed Glassdoor interviews and things like that. I pretty much knew what was going to come. In their process, they had a take-home interview, not like what the big tech uses like algorithm crunching, whiteboard interviews, and all that. I usually don't work well when people are looking over my shoulder. But take-home interview was something I was good at. That also worked in my favor.
I got the job at Doist in 2020 and have been here ever since. Before Doist, I was working remotely but this is something else. We use our product in place of slack. It's called Twist and there's no active status in Twist. I could feel the difference in the first week. It was calm. We don't have many meetings. The experience was, again, life-changing.
If you read and speak with Amir, you'd see there are things that he says and does and follows through. And how he conducts his business is very different. These ideas resonated with me. Work should be calmer. We shouldn't be available all the time. We should work like async. Async is the future. These ideas resonate with me. The work we’re doing is exciting. Most of the people who are at Doist have been working here for a long time. I feel like I belong here. It has been good so far.
Ruhul Kader: That's great. Tons of interesting observations in that short answer. I'll come back to the points you made about the high standard and unique cultures in some of the places you worked such as BriteCore, and now Doist in a bit. Before that, I want to talk about your work at Doist as a senior software engineer. You said that you approach work differently as a company. Can you please talk a bit about your work and how you guys at Doist approach work, and also briefly about the culture at Doist, whatever you can share?
AHM Modasser Billah: I work as a back-end developer at Doist. We have two products Todoist and Twist. We don't have product-specific teams. We are more organized across functionalities. We have functional teams such as the back-end team, Apple team, front-end team, product and design team, and so on. We're expected to be generalists. We work across products and features.
I'm currently working mostly on Todoist. We're working on an exciting new feature for Todoist which we plan to release sometime next year. Our tech stack is mainly based on Python. So we hire people with experience in Python. We don't do any of Scrum or agile or things like that. We do something that closely resembles what Spotify does. We have squads.
For each month, or maybe for each quarter, we assemble a team bringing people together from those teams for a feature work or something. We call it a squad. Every squad has an objective, we call it a Doist objective or a Do. Each DO is generally a cycle, sometimes two or three cycles and we deliver something in that cycle. Everything is pretty async. We have people from Australia, Chile, and from all over the world and the timezone difference is wild. Even if you try, you can't get everyone in a meeting. It's mostly written communication.
You have used Slack, I would like to request you to try out Twist, even for your company. It's an excellent experience. We have something called threads. If you want to discuss something in detail, you start a thread focused on a single topic. We try to discuss things asynchronously through written communication in threads. Generally, we don't have many meetings. There's one weekly meeting for the back-end team. Sometimes, one meeting for the squad at the start. However, that doesn't affect how we work because everything is in Twist and tracked in Todoist, GitHub, and things like that.
We try to focus on being as much async as possible. You can't just go in and ask someone, hey, can we hop on a quick call with me? No, that doesn't work. As I said there is no active status option in a Twist. No indicators are showing that someone's typing or anything. I have notifications muted all the time. I don't get any notifications. That's expected. When you try to send a message to someone, it shows a badge that says do not expect an immediate response. We generally set expectations. For instance, a 24-hour boundary for responses in Twist, or in GitHub, things like that.
That works pretty well for us. We get time to do a lot of deep work in uninterrupted blocks of time. I enjoy working this way. It has been working well for us as well.
Ruhul Kader: As you mentioned deep works, it's useful to have that uninterrupted period for working and you can focus and do things. But there are also challenges in managing a remote team. For example, we didn't have any daily meetings before. After some time, we realized it was affecting productivity. We then decided, okay, let's try to have daily meetings — a morning stand-up to set the tone for the day and to see how it goes. We found it useful to have everybody in the morning for 15 minutes, get on a zoom call and talk about priorities for the day. From your experience at Doist, how can you build an organization where you don't even need those daily standups? You can have people super responsible, and super committed to their work without imposing any tracking or anything like that. We now have many different time-tracking tools. I think those are pretty intrusive and come from a rather negative perspective about people. It sends a message that I don't trust you as an individual. We don't want to do that. But how do you create a culture where people are productive regardless?
AHM Modasser Billah: Absolutely. There are a lot of challenges to remote work. We've seen it through the pandemic when almost everyone was forced to work remotely. It wasn't working well for everyone. Even I struggled when I started working remotely. There are a lot of processes for yourself to set up and for the organization to set up. But I think it's the next step in how people work.
I wouldn't say it's the best fit for everyone yet. If you have early career professionals in your team, even for software engineers, I don't recommend anyone joining a remote team right after graduation. Because it's challenging.
In terms of processes, as you said, trust is key. If you go to Doist's blog, you'll see there are a lot of articles on trust. That's something every company needs to build. If you're in it for the long term, you will hopefully attract people like you. I think if a company isn't attracting good talent or like-minded people, then it's a cultural problem, which is not something that you can fix overnight.
As for processes, we have something called snippets. Every first day of the week, we post a snippet where we have sections that are aligned to our core values such as impact — what was the most impactful thing I did the last week and then there's communication, did I drop balls on anywhere that I needed to communicate, and then there's ambition, what I want to achieve this week. Mostly highlights, we don't need to write everything in detail. It's not a timesheet. I mentioned the impact, which is the most important aspect. You're not working from an office. Whatever you do, your performance is going to be judged based on the outcome, or the impact you have on the company. That's something you can't fake. You can bypass time tracking and things like that. People go to great lengths to game the system. But eventually, the impact matters. And in the long term, you can't game that. In the snippet, we have the impact, communication, ambition, and then balance, things that affected me positively or negatively in the last week. Lastly, there's mastery, something new that I learned last week, or I'm taking forward with me for the next week.
This is a good exercise that we do. It also lets us have a peek at what other people are doing and how other people are growing. This is a very useful thing we do. You can call it our alternative to stand-ups.
We try to give people more time because it's hard to achieve a lot of progress in a day. Once you start focusing on short-term results, people start to optimize for that. He wants to do something that he can speak about in the next day's stand-up. And it is not effective in the long run.
Ruhul Kader: That's a beautiful point. Because then you orient for short-term goals. For example, for us, we write articles and do interviews. When we say you have to show something tomorrow, it will be a poorly written piece. That's an interesting observation. You touched upon a little bit about your work philosophy, how you look at work, and what kind of environment you like, those things. I wanted to go a little deeper into it. To some people, work is everything. Others think you need to have a balance. Yet another group would say there is no balance. How do you approach work and what's your philosophy about work? Would be great if you touch upon how you stay productive because working remotely essentially means you are working alone, which can be challenging for productivity.
AHM Modasser Billah: As I said, remote work doesn't work well for everyone. I've seen a lot of people struggle. I've struggled myself. To start, one of the things that stuck with me is something from Basecamp, a piece of hiring advice. They said when you hire, hire a manager of one, someone who manages himself well. You give them open-ended tasks and an objective, and you let them decide how best to get that thing done.
Micromanaging doesn't work well. When you hire, you hire people who are responsible, and who care about their commitment. Even when they can't deliver on time, they communicate as early as possible. Managing expectations is also important. Something that I learned the hard way. After reading that article, I started trying to manage myself better. You actively need to manage yourself.
I set clear boundaries between work hours and non-work hours. You can feel like work just by opening your laptop because that's your office. There's no boundary. But to function well, you have to create a boundary. What I do is I have set up, as I said, a small office on the rooftop where I work. Right now I'm talking to you from my home. But I have a different setup, where I go to work. I also work from here sometimes, but this is also a separate space where I sit for work. This kind of mental and physical separation is helpful to get in the mood to work.
As I said, Todoist is my daily driver. I use Todoist to track my tasks both in my personal life and professional life. I generally run my life from the Today View, if you're using it. I tag my tasks with the schedule, and then I just do things from there. I think it's also important to have a shutdown ritual. Otherwise, you don't shut down in your head. You may have come back home, but you're still thinking about work or what you want to do. Eventually, this causes burnout. At the end of the day, what I do is set out what I want to tackle tomorrow, the big things. If I'm in the middle of something, then what are the next steps, I just write down the steps. It's kind of a ritual to bring closure to the day. I think this is very helpful.
Having separate boundaries for work hours and nonwork hours, having a separate place to work if possible, and if you use Todoist that's the best thing I'd say. If you don't, you should. You need to track what you want to work on, and it shouldn't have a lot of things, but a few things. Like you should define what success looks like each day. That helps me a lot in terms of setting goals and staying productive.
Then there's the issue with work-life balance and things like that. As you said, when you're working remotely, you don't have colleagues around you, there is no professional network. It's important to have an actual life outside of work. I think that's something that remote work also encourages you. Doist encourages us to live where we want to live with the people we want to live with. You're not moving to a different country just for work and leaving everyone you want to live with behind. Generally, all my colleagues have very vibrant lives. Me, not so much. But still, I have friends here and I go and meet them. It's the best thing to go out and blow off steam with your friends. I have kids, I can spend more time with my kids. As I said, I like reading and like writing stuff as well sometimes. I get to enjoy my life.
Work is something I do that everyone needs to do. But that's not the only thing in my life. That's how I look at work. The frame of thinking where you view work as everything, I find it a pretty sad one. If someone's building something impactful, and passionate about it, I can understand that. But still, the impact is usually on other people. I don't think that's the right way of looking at work.
In terms of work, I love the idea of craftsmanship. That's why I also like the idea of deep work, having the opportunity to work for long, uninterrupted hours. If you look at our products at Doist, you would feel this craftsmanship. There is a certain kind of polish to our products. We obsess over every little detail. We do push deadlines a lot. We don't mind if we miss a deadline or two, but we want the work to be of quality. As I mentioned, engineering standards are generally higher when you work for international companies. That's something that I enjoy as well.
Software engineering is a kind of maker's job or craftsmanship. I like polishing my work, writing a spec, writing documentation, and writing tests, things that people in local companies don't take that seriously. There's always deadline pressure. It's hard to get good practices going. I enjoy polishing my work.
At Doist, everyone is a good writer. We are doing official communication when we are writing a thread but still, it seems we enjoy writing threads. I also enjoy writing threads. In fact, I wrote three threads today. It was mostly writing prose today for me. I enjoy that. When thinking about work, it's important to take pride in your work. That you take it seriously. It's not something you have to meet a deadline, so you push something out. You take time and you master it, and you cherish your work like a woodworker. This is important for me. Wherever I want to work, I want to work in that way. And that kind of pushes me away from the startup culture because it's all moving fast and breaking things, hacking things together, etc. I get the idea. That's needed. But that's not for me.
Ruhul Kader: I have three questions from this answer. I want to ask you about becoming the manager of one, which is an interesting concept. I want to talk about craftsmanship. I see myself as a craftsman as well. The first question is about becoming a manager of one. How can one become a good manager of one? What are your recommendations?
AHM Modasser Billah: I think it starts first with taking responsibility. If you are committed to holding yourself to a higher standard or if you're committed to getting your work done, you get it done or you take responsibility for getting it done even if it means delays, and you have to work a little longer. You take it upon yourself, other than blaming or coming up with excuses.
The first thing is don't give excuses. It doesn't make sense in the real world. For whatever reason, if you miss an exam, you have missed that exam. You could have had an accident, or you could have been in a traffic jam, but the result doesn't change. You need to stop giving excuses to yourself first.
Then I think communication is very important in a remote setup. It's always better to over-communicate — communicating what you are working on, sharing your progress, and sharing your problems than otherwise.
Asking for help is also very important. A lot of people sit on problems and feel shy to ask for help worrying about what would other people think.
Software engineering teaches you humility. There's so much new tech coming up, you just can't keep up with everything. There's always someone who knows more than you and has more experience than you, you are forced to be humble. That has worked well for me because I accepted that. So ask for help. Seek out mentors if possible. That also helps.
I think that's it. You need to take responsibility, you need to communicate well, and when you do those things right, you can handle failure at that point. If you're communicating well you can handle failure in a better manner.
Ruhul Kader: The other point you mentioned is that you guys write a lot. I find this interesting. Many people want to say that good companies are writing companies. Amazon is known for being a writing company. There is a format of Amazon memo, which is kind of famous. There are companies like Stripe, where people take writing very seriously. So far I gather, at Doist, the culture is quite similar where writing takes precedence as a thinking and communication tool instead of talking or sending messages. How does that play out in action?
AHM Modasser Billah: At Doist, writing is a first-class citizen and the primary mode of communication. We talk about practices in companies that you mentioned. We try to learn from them and apply those lessons. Business writing is different from writing fiction. You want people to get the most out of your writing by reading as little as possible. That's a different skill. This is something we were discussing recently. It is called the inverted pyramid. The first paragraph should give people a good overview. Even if they just skim through the first few paragraphs, they should be able to get away with something.
I think our recruitment process filters out people who are not good at writing. Even the first application has a lot of open-ended questions. It's hilarious because developers generally don't communicate much. We get a lot of one-liner answers for open-ended questions that should be at least a page or two. We get a lot of funny answers, maybe a yes or no answer to a descriptive, open-ended question.
Writing is very important in efficient communication. For us at work, everything comes through writing and if you're not doing well at writing you can't get a lot of work done because there aren’t a lot of meetings.
Ruhul Kader: A lot of good writers I read these days happen to be software engineers. There are a lot of podcasters who are software engineers. Do you have any insight there as, to why many programmers are so good at writing?
AHM Modasser Billah: I think that's not the whole picture. Writing is powerful and you only get to see the people that write. A lot of software engineers write, but if you think about the number of software engineers just across big tech, the number is huge. Compared to that, it is a small percentage of people who write and write well.
I think technical people still have a lot to develop when it comes to writing. When you get to work, the number of people who are good at writing or like writing is usually very slim. That's why I can appreciate that it's more of a mainstream thing in the engineering culture at Doist. Everyone writes well. That's not something you come across in the industry a lot.
Ruhul Kader: In terms of making writing a core component of your culture, is there any philosophy behind it at Doist? Do you encourage people to write and do it in a particular way?
AHM Modasser Billah: There's no training on writing per se, or a convention for anything. However, we do share articles and writeups. Everyone shares things. We have a channel called Doist Inspirations where everyone can post things that they find useful.
Writing is something where you get better when you do it more. You get better with practice. We use writing because it provides us with clarity of thought. Eventually, people find out that it helps with their work, more than it helps others. At Doist, the culture is such that you are encouraged to write and there is not much another way for you to communicate. You start becoming a better writer.
Ruhul Kader: Coming to the craftsman question. Software engineering is probably as close as you can come to craftsmanship because you need to constantly improve. How do you approach improving yourself? Many people propose that knowledge workers should approach their job how athletes and sportsmen approach theirs: train, do deliberate practice, take notes of their practice, and stay with it. How do you approach your work and how do you learn?
AHM Modasser Billah: I think how you approach software engineering is a spectrum. Different people approach it differently. There are a lot of ideas about this such as being a hacker, 10x developer, and so on.
However, I discovered over time from reading books and from people who write about software engineering, managing complexity and growing a product is an important aspect of engineering. While every product starts with two, or three people hacking together something, it is not the only part of software engineering. As your product and user base grows, every company needs to bring in more people to do the boring work of managing and maintaining the product.
Engineering is boring work across the spectrum. Software engineering did bring a lot of glamour to it, building shiny new things, solving a problem, and so on. But after some point, when you have a stable product, you need to make it maintainable and reliable. When you read about how to manage complexities in a software product, how to keep it maintainable, adding new features, you'll find that it takes a lot of boring work.
Woodwork is boring. You need to do the same thing for a long time, and you need to do it repeatedly. You have to have some good practices, and you have to do them day in and day out.
I generally like to work on products that are a bit stable, that have good processes, or that you introduce good processes to because otherwise, it's hard to keep your product manageable. Code Base can grow in complexity, and you can end up with bugs everywhere. You have to be mindful of small things.
We use Git. You have to write commit messages when you write a new piece of code and commit it. Even writing commit messages is something that you can improve on. Smaller things like software versioning — things like 1.0, 2.0, etc, there are practices on how to version your software. Even small things like that need polishing. It's better to stay close to the industry practices. I tend to focus on improving those things.
I think it's the basics that matter. It's not about something glamorous that is out of this world. It's more like how you keep the product reliable and fast while you're growing with more users and more features. I think that's what a lot of teams across the world lack. People work on a product at a company for two-three years, and then they move away. The tech that they pilot, it's now someone else's problem. A lot of rewrite goes on. It's like a cycle. That's where I think a lot of craftsmanship comes in. Because if we don’t focus on that, and instead focus on building something new and moving on to the next big thing, that doesn't help maintain a product. When you're working on a stable product, you try to introduce more good practices into the development processes. That's where the craftsmanship comes in. You have to keep looking for ways to improve and do the basics. I think it sounds cliche, but people hardly do the basics right consistently.
Ruhul Kader: That's true. Do you have any unusual productivity habits? Do you have a set of things that you do regularly to stay productive?
AHM Modasser Billah: I think using a task manager isn't that mainstream yet. Not in Bangladesh. Even worldwide, I don't think a lot of people use a task manager. Using Todoist, or any task manager for that matter effectively is something that I would say helps a lot.
People think they will remember but they don't. A task manager is like a second brain. You take everything that comes to your mind, put it in your app, and forget about it. It has improved the quality of my life. We all have many different types of work. We juggle many different things. It's hard to remember everything and now with social media and constant notifications, people are more forgetful. Using a task manager to dump whatever comes to your mind that you need to do helps a lot. As I said, I run my life from the 'Today view' of the Todoist app. I have recurring tasks for utility bills, and shopping, I have shared projects with my wife, and so on. It clears up a lot of mental space, so you can focus on work. Todoist has a positive impact on my life, and I'd like to see more people do that.
Ruhul Kader: I want to dive a little deeper into your learning process. How do you learn new things and improve your craft? Do you have a deliberate process for that?
AHM Modasser Billah: I used to do that in the past — setting objectives for months/quarters, doing OKRs, etc. I had read that somewhere and tried that out. I don't do that anymore.
When I was like recovering from my surgeries, I did a lot of courses on Coursera. I was looking into machine learning and stuff. It is hard to get ML jobs abroad from here. When I was trying, there weren't many opportunities, there aren't many opportunities yet, in Bangladesh. So I had to switch back to regular development work.
At one point, I realized that I don't retain much of what I learn. Then I moved towards what I call 'just-in-time learning'. You pick up something that you need at work. I only pick up new technology when I need to work with it. That learning sticks with you and helps. There are a lot of things to learn but learning is not useful if you don't retain it.
At some point, I told myself that I'm going to learn things as needed, in terms of basic technologies, or how certain thing works and I'm going to focus more on learning things that don't change that often. For example, engineering practices, engineering management, documentation things like that are always relevant. I keep learning about these things that don’t change much.
In general, I'm a reader. I follow several blogs. I follow your blog. I’m a long-time Farnam Street reader. I follow a few newsletters. I read Paul Graham. I love his essays. I wish I could write like him someday. Then I have books that I want to read. I follow recommendations from my colleagues and mentors.
I try to generally be open about what I read. It doesn't always have to be related to my work. I think if you keep learning and reading a lot, it helps you in unexpected ways. In terms of reading, my approach is: just read whatever you want to read. The practice of reading in itself is beneficial. In terms of work, if I were to suggest software engineering, then I'd say if it's related to a specific technology like you want to learn Docker, you want to learn about AWS, only pick things and only learn things that you're going to work with. Otherwise, AWS has 52 services. I did a certification at one point, and it's mostly useless. That doesn't work well, and you forget things that you don't practice. You can't practice things if it's not related to your work or your side projects.
Instead of just picking up things, try to learn about things that don't change, how teams work, how you get to senior roles, how to write better, and how to make your code more readable, these skills are important. There are good books on these topics. And things in architecture, how to maintain a legacy code base. It's also the philosophy of software, if I may say that, these things are more useful as you grow in your career.
Ruhul Kader: What are some of the common challenges people and companies face when it comes to remote work?
AHM Modasser Billah: From Bangladesh, the biggest barrier is the timezone. A lot of companies such as Basecamp can't hire from Bangladesh because of the timezone barrier. It limits the opportunities to work for international companies. That's one. Then there's the communication thing. A lot of people are not comfortable communicating in English. Some people are good at English, but they're not good at communication itself. I have a genius friend. He's a genius, as people say, a 10x developer. Throw any hard problem at him, he'll solve it. When I joined BriteCore and then Doist, I encouraged him to apply and come work with me. But he couldn't get through. At first, I couldn't understand why! The technical challenges would be very easy for him, but he was not getting through. Then I realized that he's not that great at communication.
Companies look at how you communicate because at first, they need to understand you and then they have to be able to rely on you for understanding their instructions, and objectives and execute them the way they want. I think these are the two big barriers to remote work: communication, and in our case, timezone.
In general, as I said, managing yourself well is a challenge because a lot of people are conditioned to expect tickets handed over to them, broken down very specifically, and then do it. But in any career, as you grow, you are given more and more open-ended objectives. So how well you handle ambiguous and uncertain specifications is an important factor in how you progress in your career.
For companies, the first challenge is hiring. Your hiring bar has to be high. Then there's the culture thing. As you said, the trust factor. If you're measuring activity on the laptop, taking screenshots, or using time trackers, that's generally not a good sign. I think culture is the most important thing to get right. Many companies don't get it right the first time. Because it's not something you can do overnight. It's not a process change that starts to work for you the next day.
I think retreats are also useful. We have two retreats a year. One for the team and one for the whole company. These are good experiences, where you meet your colleagues face to face. That's also something companies need to get right.
Ruhul Kader: You mentioned this interesting phenomenon in your email, which is how remote work is changing the software industry in Bangladesh. Remote work allows people to work for international companies sitting in Bangladesh. International companies usually pay better. Culture is better. Learning opportunities are better. So people prefer these opportunities. It's making it harder for local companies to hire talents, which you mentioned in your email I don't know what to make out of this phenomenon. It is a good thing in a sense. You can find opportunities anywhere in the world. At the same time, it affects local industries, and local companies, it creates one kind of opportunity and then creates a different kind of challenge. How do you see the whole phenomenon — remote work, and opportunities for the local people? That's one aspect of it. Then talk briefly about the challenges it's going to create for local companies and how they can tackle these challenges.
AHM Modasser Billah: I think this development has been very exciting. A lot of good talents are joining global companies. I know two guys who work at Automattic from Dhaka right now. Automattic is the company behind WordPress. It's also one of the leading remote companies. I'm very happy for them. There are also a lot of other people. As I said, we have a Facebook group for remote workers and it's growing every day. If you are a good developer and have two to three years of experience, it's not that hard for you to get a good remote job. As you said, it pays well. The engineering standards are high. There's no tax at this point, so it's also a plus.
If you're going to work and you are good at working remotely, then I don't see a reason for people to work for local companies. Because local companies need to up their game a lot. It's not just the financial side of it, I'd say. As I said, there are a lot of good people who are not getting good remote jobs, because remote jobs require somewhat a different skill set. Some people don't like working remotely. They want to work in an office. There are still a lot of good quality developers in the market.
Generally speaking, the work culture in Bangladesh is not that great. But since software jobs are now open to the world, software companies have to be the first to change this. In fact, it is changing. I see companies taking their employees to retreat and adding more facilities. The pay has also grown, compared to what it was three to four years ago. There's a challenge for the companies to up their game.
We were talking about people taking more remote work, I think it's inevitable. That's what happens in the market. If you have good opportunities, people will choose those opportunities. It's a natural progression, because the world's opening up, and we should encourage more people.
What I see outside Bangladesh is that a lot of people from other tracks are switching to software engineering. It's not something for which you need a degree or a conventional education. It's not just software engineering, its design, its product, and a lot of things that you can now do remotely. I think we should also enable more people to switch careers. Because a lot of careers in Bangladesh are dead ends. If they can change things around and get a better job with a better work-life balance, it'll be excellent. People are doing it a lot outside. I have a colleague who's trained in archaeology. This is something that we need to do as well.
I think companies need to embrace a better culture to retain good people. That's an important thing. People don't work for money alone. It is a lot of different things. When you have a lot of jobs in the market, people look for a quality of life. I think that's an important progression that has already happened in knowledge work. People don't just choose the job that pays the most.
Ruhul Kader: I think that makes sense. As you mentioned, more people should go for remote jobs and work for international companies. Eventually, it's a net positive for everybody. People who are working for international companies, they're learning more, and when they come back to work for local companies, they will be able to contribute more. If they start their own companies, they will potentially be building global companies. So it's better for everyone. And as a side effect, local companies now need to up their game and become better companies, which is also a good thing. You said people from different backgrounds are now coming to programming. I also know a lot of people who have done this. From your experience, if someone wants to learn to program, how should they approach it?
AHM Modasser Billah: What I generally suggest is picking a curriculum and sticking to it. There are a lot of courses and tutorials on the internet. People usually keep switching from this to that, and eventually, they burn out or lose motivation. What I suggest is to stick to one and see through it.
I generally suggest Free Code Camp and that you should focus on landing your first job. There are more jobs on the front end side of things at the moment in Bangladesh as well as outside Bangladesh. I generally tell people, to go to Free Code Camp and do their front-end certification.
If you spend four hours a day, or even two hours, you can get through it in six months to one year. And halfway through it, you can start taking projects. A lot of people hire part-timers, you can start doing those things and get into the industry. That's the shortest path I would say. Once you get the hang of it, you can decide for yourself and make your strategy.
To begin with, I would say, go to Free Code Camp, get the front-end certification, and get a front-end job. And then whatever you want to switch to, do that.
I want to create a service for people from other professions, not students, people working on other career tracks, to help them get into tech following a curriculum. That's something I'd like to do at some point in time. I do wish to start something like cohort-based courses and help people get into tech. This is a thriving industry in terms of ed-tech and coding education as well, but we need more people to do that.
Ruhul Kader: I completely agree with you. I think we need to make programming more popular, and more accessible to more people. You briefly mention high standards and culture at the beginning. From your experience of working for an international company, what makes a great culture? How do you build one because as you said, it's not an overnight thing, you cannot wish today and have one tomorrow.
AHM Modasser Billah: There's a lot of nuances to it. I think it starts with the basics. For instance, you ship quality code — starting from basic practices, naming your variables well, writing short functions, writing documentation, and writing tests. People hardly write tests in our country. There's slang for this: "Bangla code". We don't write tests. It's understandable because most companies are service oriented. They're always on a deadline. Clients want delivery. The quality is not immediately visible, what they want to see is that the system works. That kind of pushes people to bad practices. Not writing tests, not having things like continuous integration and delivery, and good processes around reviewing code, are some of the things that are quite missing.
The first thing is that basics need to be incorporated into the day-to-day process of writing code and building stuff. The leaders in the team need to say no to deadline pressures and push back on sub-standard code. People need to start adding quality checks such as everything that goes into production being reviewed by someone else, everything that goes into production should have tests, etc. That's something you can start from tomorrow — anything new goes in, and you write tests. Once you take the first step, you can incentivize improving the existing code base as well.
We have housekeeping days, where one day a week, or the amount of time in a day, you dedicate to doing things to make your code better, whatever you find. Teams need to incentivize these things and juniors will only learn by seeing the seniors. If no system is there, it's hard for juniors to incorporate new systems. But I'd say they should push for it as well. The world is a lot more open today. People can read engineering blogs and learn about the engineering cultures of different places. That's something that we should do more, and people should encourage more.
The same applies to knowledge sharing. Any company can start arranging talks, and learning sessions once a week, once a month, once a quarter, whatever works for you. But you can start doing that. This is something that has helped me a lot. I started one at BriteCore and then I started one at Doist as well. At BriteCore, I was thinking there are a lot of good engineers, and industry experts and I wanted to learn from them. But I was not on their team, so how do we do that? So I started organizing a virtual talk series. You just reach out to people, create an event, send some invites, that's all. It's not too much work. But it did wonders for me. I got to connect and learn from them a lot of wonderful people.
This is something that even a fresher can start in where they're working. It's good for their career as well. People do appreciate these initiatives. You don't need to be creative. You just follow what other people are doing. And that's what I like about software engineering because I hardly do something new. I look at what other people have done, I see what are the best practices, and I just try to follow that in my work, and that's about it. This is something companies should start doing, industry leaders should start thinking about more. You need to train your people, build a good culture, and increase the quality of your products, so you are benefited firsthand.
From the employer’s perspective, what I see missing is nurturing employees. 1:1 meetings between a manager and his direct reports are mostly missing. Managers should have 1:1s with their reports in a regular cadence, weekly or bi-weekly depending on the team size. Then there’s the perk side of things. Transparent and easy leave policies and budgets for education and growth. Small benefits go a long way to creating a better alignment between the company and the employee.
Ruhul Kader: We touched upon briefly the challenges and tribulations you went through. You lost your father early in life and then you went through your physical challenges, these are the things that we don't have any control over. But it's common for all people. Would you like to briefly talk about your experience and your views on trials and tribulations we go through in life?
AHM Modasser Billah: It's a difficult question for me because I've never really looked at it that way. I was going through it. I didn't look back on it a lot. I was approaching it as a came. It helped that I didn't have a lot of expectations from my career, or professional ambitions, in the first place. So I wasn't disappointed or something. It turned out well for me. I didn't like the experience of my first job. Every day I was commuting to my work and thinking, is this what I want to do for the rest of my life? In fact, I was dreaming about that room I had on my rooftop, where I work now, maybe I can set up an office there and work from there. And eventually, that did happen. I'm grateful for that.
In terms of managing adversity, my approach has always been not to give it too much significance. Hardships are a part of life. To be honest, we are the privileged class in Bangladesh. So I shouldn't be complaining too much. I just wanted to keep doing the right thing and look for innovative ways, how I can get out of it or get to a better position. I don't think I can offer a lot of meaningful insight here. As they say, it is what it is.
I see this a lot in our culture that people blame everything outside their control. These things happen. But it doesn't help your growth when you are blaming everyone else. There will always be things going against you, but you can try to do things that help you and gives you a sense of control and a sense that things are improving and that you can improve. That's what matters. In the end, it's not in your hand. You do your part and pray.
Ruhul Kader: That's a powerful way of looking at the world. How do you think about life and death? Do you think about death?
AHM Modasser Billah: I do actually. I think death is what puts life into perspective. So no calamity is too big for you to handle. You can look at your sufferings as insignificant because you're going to die anyway. As I said, I got into learning and studying Islam more, I wouldn't say I practice a lot, but I like the ideas.
I think the modern world suffers from not getting things that are in your head right and Islam gives you an excellent philosophical position to process things happening in the world. That puts life into perspective. You don't chase something that's not going with you. You value people more. You get to appreciate deaths even so. A lot of people also blame God: why did this happen? Why did that happen? This is also something that is missing in our world today. We don't know how the relationship should be with God. I think that's also something that we need to learn. I think in the modern world we're growing as adults, but we're not having the tools needed to navigate adult life.
Ruhul Kader: What are some of the biggest lessons from your journey so far?
AHM Modasser Billah: I think life, in general, has changed and become more superficial. Be it social media or approaching life, the basics lessons are lost more and more. I see adults not knowing what to do, and how to approach things. Even the people who are relatively responsible are not learning skills that matter for life, for example, how to handle your finances, and so on. I think people are generally losing their ability to think.
I have lost a lot of my reading habits. I think social media takes away a lot of time from us, the time that we could have spent reading. Because of the practice from an early age, I think I was a better reader before and this is something that's getting lost.
The biggest lesson I have learned is that most things that matter in life are not glamorous. Especially in a country like ours, you need to have something that Farnam Street calls an “inner scorecard”. I need to know what I'm doing. I need to have a decision process so that when people are talking about my choices, or it didn't turn out the way I wanted it to be, I can look back, and review how I came to the decision, and I can be okay with it. It didn't go as planned, but I'm okay with it.
I think people now tend to question themselves a lot and are less focused and determined to figure things out. So I would say that's one of the biggest things that you should have your inner scorecard of how to see life and make decisions and not be influenced by what others are doing or talking about. Because it's again quoting from Farnam Street that if you're reading what everyone else is reading, you'd be thinking what everyone else is thinking and in complex adaptive systems, it doesn't work.
Ruhul Kader: For people who are in their 20s or starting their careers, what advice would you give?
AHM Modasser Billah: First, do not look for shiny new things, or glamorous things. Those may look like achievements, but they're not. The basic things like family, responsibility, and getting your life in order, these things don't look great, but they feel great. That's the first thing.
Second, I think we need to look at the world differently because it's a complex and adaptive system. If you look at the trend, the generation before our fathers, came from agricultural backgrounds, and then they studied, and most of those who studied went into government jobs and things like that. And a lot of people in our generation are still trying to imitate that. But that's not where the advantage lies in our generation. The analogy of adaptive systems is that: you see there is heavy traffic on the road. You try to avoid it and take a different road. But everyone else is also opting for the alternative route now. Eventually, that road also gets clogged. It means the most effective path is always changing.
You need to be on the lookout for what's on its way up. Not something that's at the peak because something that is on the peak is going to come down sooner than you are going to reach there. You see that, for example, with subject choices in universities. This has happened with electrical engineering. Electrical was the first choice when we were getting into BUET but by the time we graduated, CSE slots ran out first as CS jobs were paying more. Because the software was taking over the world. This is something I think people need to look out for. Don't just follow what worked before, because it's constantly changing. We need to adapt.
Ruhul Kader: What are you reading these days?
AHM Modasser Billah: Thank you for having me. I was reading a book on Elixir, a technical book, and a Bangla autobiography called Rongin Mohkmol Din written by Sharif Muhammad. The book is about his childhood and early life experiences.
Ruhul Kader: What are your go-to genres in books?
AHM Modasser Billah: It's quite diverse. I started with fiction, mostly but then drifted to nonfiction at some point. But I go back to fiction a lot. Now there are also technical books. Recently, I've started reading a few management-related books. So it's many different things.
Ruhul Kader: Do you have a list of favorite books? Books that you sometimes go back to and reread.
AHM Modasser Billah: In fiction, I mostly read Bangla books like Shunil, Shirshendhu, and other Bengali writers. I like Shirshendhu. Shunil’s Eka Ebong Koyekjon is one of my all-time favorite fiction. In nonfiction, I'm influenced by the ideas of Nassim Nicholas Taleb. Skin in the Game is a book that I go back to quite often.
Ruhul Kader: I love Taleb as well. He can sound a little bit eccentric. My first Taleb book was Fooled By Randomness. I think it's relatively mild Taleb in terms of the expression and style of writing compared to his other books.
AHM Modasser Billah: My brother lives in Canada. I generally send him a list of books to bring for me when he comes to visit us every year or so. I like collecting books. I have three kids which give me little time to read but I keep buying books.
Ruhul Kader: That's a habit I share. I mostly read digital books. My wife gave me this Kindle last year. Before that, I used to read on mobile, but Kindle is super convenient. Despite being a mostly digital reader, I think paper books are the best. Your favorite authors?
AHM Modasser Billah: In Bangla, I like the way Shirshendhu writes. I enjoy the dialogues that he writes. It often has a philosophical bent to it. I enjoy his writing. I enjoy reading Paul Graham, and his essays. Then there's Nassim Nicholas Taleb. I follow Tarek Mehenna's writings. He had a blog and now he writes from prison, which is published on his Facebook page. There's Muhammad Asad. I like his books. I think he offers a unique view of how he saw Islam.
Ruhul Kader: I did not get to ask you about technology. What's your take on everything that's happening in the tech world? Where are we heading? AI developments in many fields are progressing fast and there are all kinds of discussions around it.
AHM Modasser Billah: I'm on the camp that doesn't think that AI is going to take over the world. An AI apocalypse is not imminent. I think there's still a lot to cover. A lot of problems are hard to solve.
The problem AI suffers from is explainability. A lot of people are working on that, like deep learning models, you throw things at them, you feed them data, and they usually figure out close to correct answers or mostly correct answers, but you don't know how it is doing that. And the more you expand the scope of the applications, as I said as you grow more in your career, you are thrown more open-ended and uncertain problems at you, and those are the things that I think AI can't replace.
Even if you give an AI some prompt, it gives you some article, it's you who's giving the prompt. I don't think it is going to take over anything anytime soon. I think a human has more destructive capabilities to do more harm. Even if AI gets more and more powerful, it's always going to be humans who control that power. I'm in that camp.
As I said, in most cases, I'm not on the hype train. For example, I'm skeptical of blockchain and cryptocurrency and all that stuff. But I do think that software is here to stay for a long time and there's a lot of software that can still offer humanity. I think it took a wrong turn. And when you monetize something, you look for ways that get you the most money, not necessarily the most value. We're seeing it with Twitter and Facebook and all that. Their diminishing returns are kicking in. But there's a lot of opportunity to use it to improve ourselves and the world.
Ruhul Kader: What's your relationship with technology such as handheld devices such as phones and social media?
AHM Modasser Billah: I think now there's a lot of talk about it, for example, digital detox and all that stuff. I think we need to get in control and set barriers and processes. For example, I don't receive calls on messenger because everyone has it and it starts ringing no matter what you've set your phone on. I just disabled it on every level. If you want to reach out to me in real-time, you better call me on my phone.
I think it's important to set barriers like that. I wouldn't say I'm that great at it because I still have my phone near me when I'm going to sleep. That's not a good habit. I'm trying to get rid of it. But I haven't managed to yet. But I think everyone needs to set up processes that work for them. I know some people who browse social media only from their laptops and uninstall these apps from their phones. Some people don't use smartphones, they use button phones. I think whatever works for you. There's also a good side to it. Because it needs work, it takes out a lot of competition for you, no matter what you're trying to do.
Ruhul Kader: That's, interesting. Blogger David Cain has an interesting way of saying it: good people have rules for themselves. You need to have some sort of constitution for yourself. You can do this and you can't do this kind of thing. I think this is a good place to kind of end the conversation. Thank you for taking the time to speak with me.
AHM Modasser Billah: I must say, I enjoyed the discussion. We don't get to have these discussions a lot. So it's nice to have someone and talk about these things.