Image generated with the prompt: An abstract art for the wall using the colors of the flags of Bangladesh, Canada, and USA. And using the symbols for Cowboys, pacific north west, and Bangladeshi rickshaws and Bangladeshi boats. Oil paint. Vibrant. Great attention to detail. Ideal for the wall. I generally consider myself to be an optimistic person. When I look back, I naturally only remember the…
I’m personally happy with where things are at the end of this year. We’re on a vacation to visit our family after three years. My kids met some of their cousins for the first time and they’re incredibly excited to get the attention from the extended family. Living in a country half a globe away from our origin means they hardly ever get to experience the warmth of the family and Covid made…
My 2021 resolution was to be more mindful. But I made the rookie mistake of having a goal without metrics and a clear strategy. So, I can’t tell if I was indeed more mindful or not. In this post, I’m sharing some highlights from my 2021, in a random order. I personally find it fascinating to look at these at a later time. Family. Thanks to work from home for the entire year, we spent a lot of time…
I find open-source to be a rather loaded term; it means different things to different people. For this blog post, I’ll imagine there are two kinds of open-source products: Company-owned open-source Crowd-owned open-source I’m writing this blog post specifically about company-owned open-source products. In a typical company-owned open-source product, the company pays us to develop and…
At Microsoft, I’ve been working with my team on a multi-platform UI SDK for Azure Communication Services. We empower developers to build visually delightful communication experiences (chat, audio-video calling, etc.) for everyone. I’ve participated in numerous design discussions on this UI SDK and I realized many of the things I learned here apply to the domain of UI SDKs beyond just the one we…
“I promise to take care of you” - believe it or not, I spent hours to come up with this message to make a first impression as a newly hired manager at Microsoft. Everyone in my team had more context than me. I was a complete newbie, yet their manager. While I had been a manager for several years, I had never started a new job as a manager. I felt super vulnerable.
Most applications have a request-response based single-channel data-flow. In such systems, human or software triggered requests are served by software provided responses. For example, when you make your DuckDuckGo search, you initiate a request and their server produces a response back to you. Realtime multiplayer systems are quite different because the pattern of information flow is more complex,…
Continuing on this architecture series of posts. Similar to the post on Redis, this time let’s focus on another hugely popular distributed database called MongoDB. If you aren’t familiar with MongoDB, it’s a distributed database that allows you to store and query humongous amounts of JSON-like data. To get an overview of MongoDB and its architecture, you can watch the following…
Welcome back to the Software Architecture series. I know at least a few people from my team are following, and that’s a great encouragement. For today’s post, let’s focus on learning from a very popular and commonly used open-source project called Redis. To the developers, Redis is a dead simple key-value store with a super simple API as follows: $ set today 'Thursday' OK $ get…
In my current role at Microsoft, I’m working on a UI SDK product. I hear this concern from some of my team members. More specifically, here’s a paraphrased version of what I hear: “I talked to my friends in software and they told me it’s better to work on the backend or full-stack to have a fast-tracked career.” First, I do agree that there are generally more…
An architect first needs to write for herself, and then for her team. Let me explain a bit. An architect takes the trio of requirements, people, and environment, and does her research to design the most delightful system. In her research process, she uses her past experience as well as the experience of others. Even a moderately complex system design involves a lot of trade-offs without clear…
First, working with good people for a good purpose. Then, moving fast and delivering incrementally. Then, a good business case. And finally, a reasonably modern tech-stack. Other things, such as pay, promotion and prestige are important, but it doesn’t drive me like the above. This content is suitable for a Twitter post, but putting it here for long term retention. I want to look back after a few…
To be an architect, you’ll have to be a leader. And, to be a leader, you’ll have to be able to understand people and create an influence on them. So, focusing on the people involved with a system is a pre-requisite for designing systems that delight them. Photo credits to Alan O’Rourke For this topic, I want you to read and internalize the ideas from the book How to Win Friends…
“I want to be an architect” - is a common career goal I hear during one:one meetings and annual reviews with my team members. Honestly, I’m writing this series of blog posts to bring some clarity and structure into my own thoughts, and hopefully to scale my time. You can even say, I’m open-sourcing my mentorship on the topic of software archtecture. My sincere hope is, this…
This card is a parting gift from my beloved team. (Catherine, I know you made it) This post is dedicated to my team at Cisco. I put a lot of my passion and care into building and being part of a great team during my time at Cisco, eight amazing years between 2012 to 2020. It was the privilege of a lifetime to be able to learn from and mentor an amazing group of people while building a product…
Good design is obvious. Great design is transparent. — Joe Sparano Ruby on Rails delighted me all through my career. The community is one with a taste for art, thanks to DHH’s ability to write well. He set a high bar and the community also lives up to it. One API that absolutely blows my mind is how delightful it is to work with date and time in Ruby on Rails.
Image source: Show and tell - explaining the rain game I started my developer career 15 years ago at the onset of agile and Scrum. From my early career, I worked on short sprints where we demoed our work to collect feedback towards the end of each sprint. So, after thousands of demos, I’ve seen enough great ones that I developed a taste for it. I can no longer go back to soulless demos.
When talking to people, I’m always interested to know how they learn. This image above shows a view of how I personally learn. Here’s some context about the items on the diagram: Online-courses: I love O’Reilly learning. Their video courses are split into 5 minute lectures. For example, I took their Kotlin course to learn the language. Books: Books are great for curated content,…
Photo credits to GotCredit Here’s a personal story about getting a feedback. For context, English is my second language. I grew up speaking Bangla as my primary language. I learned reading and writing English in school - grammar first. I had only started speaking English much later in my life, in my mid-twenties. So, I often struggle with the informal form of the language. With this context,…
This summer I was interviewing for a new job. This was the first time I was interviewing for an engineering manager role. Soon I realized these interviews were wildly different from interviews for developer roles. During typical developer interviews, I solved coding and system design problems and discussed personal aspirations in behavioral interviews. In contrast, leadership interview qeustions…
Photo credits: Bradley Griffin The conductor of an orchestra doesn’t make a sound. He depends for his power on his ability to make others powerful. My job was to awaken possibility in other people. And you know how you find out? You look at their eyes. If their eyes are shining you know you’re doing it. - Benjamin Zander Recently, I’ve talked to a few companies as I was going through a job search…
Photo credits to UnknownNet Photography I’ve been in search of a new job for the past few months. Thanks to my recruiters and interviewers, I’ve received some useful feedback. Many thanks to them for this gift. ``Needs more energy’’ - This was the most memorable feedback I got. It was from the VP of a company. My interview with him was the last of the five on the same day.
Image credits to NCinDC Context is everything. Due to a context mismatch projects such as exporting democracy, agile transformations, building startups, losing weight, mindfulness or anything you can think of fail to repeat. Context is formed by why / what / who / when / where / how, each of these being a critcial part. Most often it’s common to focus on the how alone - forgetting the rest…
Manager’s Mind As managers, we have the benefit of view because we have our eyes on longer term goals. To achieve those goals, we often have to introduce a change. For example, we may want to change how a team is formed or what product a team works on based on new business needs or opportunities. So, we put a lot of thought into it and propose our plan to the team hoping the following…
“I’d like to tidy up the entire planet. I would go anywhere if there were something that needs tidying.” - Marie Kondo Well, she came to my work calendar in spirit. Let’s start with some backstory. When I was developer, my typical day looked like this: one standup meeting and then pretty much the rest of the day in coding. Sometimes I paired up or jumped on a whiteboard session with my…
Beginning with a story here. Back in 2008, I was a couple of years out of college and working for a software company in Dhaka, Bangladesh. Like many of my classmates from my college, I was studying GRE alongside my job for a PhD admission in a reputable US university. That process being long and uncertain, I also applied for an MBA program at the University of Dhaka as a backup plan.
This week I took a couple of days to focus on my mid-thirties. It got me thinking about what I actually love doing as a hobby. The list is fairly small, walks with the family, soccer, tennis, coffee with friends, reading, writing, car videos, and Netflix. Thinking about how I spend my idle time, I realized that I missed two things that I actually love and spend a fair amount of time on: stock…
Since I commonly work with a diverse group of people, this post is a way for me to broadcast some quick tricks that may help our working relationship. When we work together, let’s do this: Trust is only earned when it’s mutual. Let’s work with this shared belief. Context is everything. Most importantly, show me why we need to work on something. If the answer isn’t clear in…
Source: [Audrey on Flickr](https://flic.kr/p/pUW8f9) I think nobody knows how to stitch together an app with full-stack micro-services. I have the following open-questions if you disagree. Of course, if we could send people to moon, we could solve these problems. But the question is, is it worth and should your team solve these problems? Especially, for small teams? How to render the UI from tens…
Gone are the days when I used to go to a ton of local developer meetups. After Polyglot YYC, this was the second conference I joined this year. This was a 50/50 event for me in terms of like vs. dislike. Here goes my notes: Ix-Chel Ruiz presented the keynote to start the day. Her storytelling style reminded me of WWII movies, where a lot of cloudy and gloomy scene keep getting darker and darker,…
I’m S M Sohan, but call me Sohan if you meet me. I work at Google as an Engineering Manager. I live with my wife and two children in Redmond, WA. Contact Me sohan39 [@] gmail.com | @smsohan | LinkedIn
Looking at our git logs from Cisco AMP for Endpoints Console, I see that we introduced feature flags back in January, 2014. The reason I got interested in it is because even after all these years of use, today I had to build a new concept on our feature flag code. If you’re already using feature flags or thinking about adding feature flags to your project, this experience report may be…
In my last post, I claimed software architecture is all talk and no show. When we have a visible one, it’s a bunch of poorly drawn boxes and lines. I don’t have a problem with boxes or lines, but I do like beautiful drawings. Despite many standards, we still mostly use whiteboard drawing of boxes and lines for sharing software design as we build new systems or introduce new team…
We have a problem with software architecture. Let’s face it. Find the architecture diagrams of the products you’re working on and answer these questions: Did you find it? Does everyone in your team know where to find it? Is it up-to-date? Can you see how this system scales, handles failover, monitors performance, or how it’s secured? Can you see how it evolved over time? Can you…
Image source: [Kalvis](https://www.flickr.com/photos/hgz/) “I am a mango”. First, mangoes are in-season, and I still remember the juicy sweetness of the mango I had just the night before. So, when the coach asked each of us to be a fruit, I didn’t think twice. One of my coworkers was a kiwi, another one apple, and so on. The idea was to group us by color, then by size. This got…
Design Thinking course, Cisco Calgary Office, AB, 2019 One benefit of working at Cisco is access to the many learning and development resources. Our learning and development org arranges hundreds of courses throughout the year. Moreover, we have a reimbursement program for external courses, conferences, books, and subscriptions to online learning programs and publications. In the past 6 years, I…
Source: Polyglot YYC This weekend I went to Polyglot YYC 2019. It’s a gathering of tech people from around Calgary. The event was open to all possible topics, hence the name Polyglot. It was the first unconference style meetup I went to and this post is a summary of my day. About the attendees, I don’t have the official count, but I imagine there were close to a hundred people.
Showing a Screenshot of Microsoft Word for Mac and Apple Pages This is what you get by default when you open a blank document on both editors. I love that Apple Pages puts a deep focus on the content. If you haven’t used it, I’d recommend trying it out. I know Microsoft Word has a known face, so you’re likely used to all the distractions that sorrounds the content. But, if you…
Rainer Maria Rilke All creators take a deep interest in the creations of others. All filmmakers watch a lot of movies, all good writers are also the most prolific readers, all artists can talk at length about the smallest pieces of art they have seen. We, software developers, if we want to claim ourselves as the artists of this craft, we must be prolific readers of code. There’s been no…
After being a people leader at work for the past six years, I’m now going through a phase of introspection. Essentially, I’m trying to understand my own philosophy about people leadership so that I can clearly communicate it to the people that I support. My most important realization is, people leadership is all about developing people. What I mean by this is, for everyone I’m supporting, I must…
Recently, we had a production outage for a few minutes due a database migration on one of our Ruby on Rails apps. The deployment went fine through a few stages, but the problem only showed up at the last and the largest stage. This is exactly what happened during the deploy process. New code was deployed. Restart was pending, so the server was still running old code. Migrations ran. One migration…
Src: Claudia Dea Most problems are solved inefficiently. Innovation follows when a problem is researched first. I spent a fair amount of time in grad school. First, sixteen months on my MSc, and then another forty eight months on my PhD program. Also, I worked as a pro software engineer for 20 hours/week during my MSc days and then full-time during the PhD days. It was quite an undertaking, but I…
Past few months at work we’re trying to revamp our CI infra. This has been a migration from a Jenkins cluster to GoCD. This post is a result of my frustrations with the state of CI in the age of Git/GitHub. With Pull Requests, or a form of pre-merge review process, it’s common to leverage a few automated checks alongside our human peers to remove potentially breaking changes from being…
Finally, I defended my PhD thesis yesterday. Family, friends, and colleagues are all sending their wishes, and it feels great to have crossed this milestone. To be honest, deep inside, I carry a sad and guilty feeling, which at times overshadows the feeling of acomplishment. This phenomenon is hard to write about, but I wanted to give it a try anyway. So, it was 2012. Life was good. I got promoted…
Most people eventually come across a time when they’d need to provide names of colleagues as references while applying for a new job. The referees are often involved in the last stage of the hiring process, when the employer is generally satisfied that the candidate is a potential hire. At this stage, the employer expects to find a few things: Verification of facts. The employer wants to…
You didn’t go to college to study computer science and you have no background on computer programming. You’re not quite happy with your current job area, and looking forward to something more rewarding and exciting. You’ve heard software development is generally a good area and often times people without any prior software background can actually get a job. But where do you…
No matter which side of the table you’ve sat during interviews, you’ve probably heard this question: ‘Why do you want this new job?’ In the recent past, I’ve interviewed a few candidates and heard the following answers so far: I’m not learning much on the current job after it’s been 2-4 years. I’m looking for something that offers better work-life…
2017 will be the year to get closer to my PhD defense, and spending my time with family and dear ones. It means a stricter control on the daily use of social media. That’s pretty much it. I’ll sharpen my focus on events and matters that I can influence with the aim to get better at achieving the most within my limited circle of influence. This is a fairly small circle; myself, family,…
2016 Highs and lows Baby #2, it’s a girl Shera, our little daughter, was born this year. She has been happy, healthy, and an absolute source of joy. Almost hard to believe that we somehow sustained the pregnancy period of my wife, while also running after our active toddler son, Shopoth. Such a pleasure to see the two already reaching for one another, cuddling, giggling, and occasionally…