writing documentation
Unless you are starting a personal project, the first thing you should be doing is writing a document with your thoughts about the project.
The more I work with different systems and businesses, the more I see that documentation around the project is always missing. I know it can be a daunting process to write all thoughts and strategies, but maybe we can start focusing on these two things:
- The system’s overall goal and why we are building what we are building.
- Why did we add X feature to the project, and when was it added?
When onboarding someone new or handing over the project to someone else, this could be a good base to help them understand your business/project—a good starting point for them to ask questions.
when things don’t work
Being part of the software industry for over fifteen years now, I understand that expecting your favourite software/hardware to be available 100% of the time is nothing short of wanting to win the jackpot each time you buy a lottery ticket.
Software or hardware is bound to fail; when it does, people/companies responsible for maintaining the software/hardware fix it as soon as possible. Some do it faster than others, but very few write a postmortem report. I wish more companies wrote postmortem reports.
I love reading postmortem reports of software that I use frequently. Knowing what went wrong when you were expecting things to work gives your users an insight into why the software/hardware failed. Companies often depend on external services; sometimes, bugs are outside the company’s control.
Writing postmortem reports is also a practice I want to promote with teams/companies I work with. Most bug reports from internal users get an “it’s fixed, please try now” reply. For the internal user, this is often enough. Still, for the internal IT team, it is good to write a detailed postmortem report so that everyone learns about what went wrong and what needs to be considered as they continue to build and maintain the software.
thank you internet
I should make this a regular post on my blog where I thank the internet and everyone who contributes to keeping things runnings.
Thank you to everyone working in the javascript space to continue building new JS frameworks and improving JS frameworks.
Thank you to everyone who is working on building and improving browsers.
Thank you to everyone who is working on building and maintaining servers and other parts of the infrastructure.
Thank you to everyone working on building and maintaining backend programming languages. PHP, Go, Rust, Java, Python, C, Dart.. and many more.
Thank you to everyone for building so many incredible things and constantly innovating.
Thank you for keeping things interesting for people like me and so many more.
All this and more is why I am overly excited every day.
What an interesting moment.
We’re staring at two distinctly different visions of the future. They may co-exist, but they are radically different takes on what’s modern, what’s current, and where things are headed.
wwdc
Watching WWDC with a few friends is a yearly tradition. From watching it in person in Mumbai to now having conversations on iMessage about the latest updates to Apple’s ecosystem. I look forward to this day.
iOS, macOS, iPadOS, watchOS, tvOS, it is always good to see Apple continue to invest in the software ecosystem. Each year, after the announcement, developers use these new APIs to build new features and some even new products. I have always looked at the ecosystem from the sideline. This year that changes. I am going to actively participate and build/launch a product—something for iOS and iPadOS.
Vision Pro looks like a great product. The pricing seems expensive, but the whole VR experience looks impressive. I would love to try it before I have more opinions about the product. From next year, I look forward to learning about visionOS and building a visionOS app.
Exciting times.
software bug that made me cry
Over the last 10-plus years, I have been responsible for and fixed many bugs in the software I have helped build. Bugs are never intentional. They are a by-product of an edge case you did not consider the user would do or an input parameter you did not think of but was passed as an input. Bugs take away from a good user experience, and I do my best to ship software with fewer bugs.
I don’t remember a lot of bugs I have fixed, but out of the many that I have fixed, one I remember recently is the one that made me cry.
We had a “Time” feature that helped employees record time for their assigned tasks. Freelancers working for the company would get paid based on the time recorded. Someone from the company’s accounting department sent us an angry email. Many people were underpaid the last two months due to an error in the software they told us. They were angry, and I had tears while I read that email. People have plans with money. Getting a few hundred dollars less and being in the position of that accountant to explain why, due to an external software mistake, a software I had helped build made me sad.
Going through the code, I saw the mistake. Rounding off error. I shipped the fix so that, in the future, time was recorded/reported correctly. I also went through logs, found the time entries for that client’s last two months, and sent them the details. Writing that email was difficult, and the reply also had me in tears. They appreciated the extra effort to help them and are still a paying client.
Social Interactions and Bias
After a fascinating meeting this morning, I could not help but think about different tones/ways of interacting with people most of us have. For example, when speaking with friends, you behave and talk a certain way, but you act and talk differently when around work friends.
If your work friends were to meet your school friends, would they notice the difference in how you interact? Would they have a different opinion of you then?
It is sometimes challenging to read/understand people, from what you hear about them to how they behave when interacting with you. It is difficult to ignore what you hear about them to form a bias towards future interactions with the person.
we crashed
we crashed has been on my watch list since the first time I heard about the tv show. Being down with cold and cough the whole week, I have been catching up on all the TV shows that have long been on my watch list.
We crashed was good. I usually take my time with tv shows, but this time I binge-watched. It was thrilling and entertaining, and knowing it was true made it all that interesting.
I like learning about companies and the people who started it—learning about the motivation, the struggles, the grandeur, and the thoughts of conquering the world. These things inspire me. When WeWork launched in India, I quickly signed up to try their co-working space. WeWork did not disappoint. I tried a few locations, and they were all equally good. One thing that always stayed in the back of my mind is their deal to rent a whole building in Bandra, Mumbai as their first co-working space. we crashed, confirmed a few doubts I had about WeWork being able to expand so quickly. VC money is fun to burn.
I don’t associate with entrepreneurs like Adam Neumann. Grow quick, burn that midnight oil and expand at all costs is not the style I associate with. I associate more with companies like Bare Bones Software - BBEdit. Continue to build, maintain and improve one or two things for 30 years. Sign me up.
bookmarking is hard
I enjoy visiting new websites. Twitter, Reddit, and Blog posts have supplied me with websites I can visit. I come across new tools, software, design, fonts, colour pallets and writing styles that inspire me daily. The first few hours of me sitting down to work is spent absorbing all the awesome things the internet offers.
I have tried out a few bookmarking tools over the years. I started with using Mozilla Firebird bookmarks and then moved to more web-based tools, starting with del.icio.us, then moving on to a few others over the years. Some free and some paid. I have spent a lot of dollars trying to make sure that I get to remember all the things I come across, but I don’t stick with any.
It is not difficult to build a bookmarking site. I need the following features.
- Title, comment box, being able to add tags and the URL field.
- a way to search through bookmarks
- list all the bookmarks
Thats it. That’s all I need from a bookmarking site. Almost every bookmarking service does this. Yet, the user interface / being able to add the website I discover is where I struggle with sticking with the tool.
Updating my resume
I want to get back to writing here, but other things on the list always take priority over writing here.
I spoke to my sister yesterday, and she asked me to share my resume. It had been a while since I updated my resume. A few things had changed since I last worked on my resume. An hour later, I had the resume updated and learned a new system called “LaTeX.”
LaTeX is a high-quality typesetting system; it includes features designed for the production of technical and scientific documentation. LaTeX is the de facto standard for the communication and publication of scientific documents. LaTeX
I thought the resume looked beautiful. It was straightforward to read and had all the information I wanted it to have. I shared it with a few friends, and one of them had an honest opinion.
“Owns a Macbook but has zero creativity” …
My initial reaction was, “But look at it. It’s so nice and clear”. He said it was missing colours and design.I agreed.
It made me go back to the drawing board. After a few hours of choosing the right font, the right colours, a good layout, the same resume looked so much different. I liked this version too.
I love design. It helps the same information be communicated/consumed in different ways. Each iteration makes it better or worse, depending on whom you ask.
Overall, quite a fulfilling day. My resume has been updated and shared.
scratch that itch
You can plan all you want. You can fill out excel sheets or any other accounting software to budget your finances, but nothing can prepare you for when you finally decide to take action. The motivation to do that has to be strong and something you can no longer ignore. After you commit and take that call, your days/months/years are on the line, along with your planning around finances. Of course, others will be around to support you, but it’s your journey from now on.
There can always be more money in the bank. The date to commit to the decision can permanently be moved. One more week will not hurt. One more month will not hurt, but the longer you delay it, the more the thought stays in your mind and leaves you not at peace.
You are not doing justice to your current work if all you want to do is scratch that itch and would spend the days and weeks doing something else.
Are you ready, though, to commit and start the journey? Is today the day you decide to scratch that itch?
(draft)
There has been one post in my draft folder for six years now. The day I had the thought was the day I wrote the blog post. The post itself only makes sense if a picture occupies it.
“six pack abs” are a craze in the fitness industry, from good biceps to six-pack abs to focusing on overall good health. The conversations in the fitness industry have changed. Six-pack abs, though, is something people will not stop talking about.
I remember reading about six-pack and telling myself, “one day,” and since then, I have been working on and off to get that one picture. Unfortunately, getting to that picture has been difficult based on my food habits. It will be challenging to maintain even if I did get to have six-pack abs. But thinking about that one picture makes me never want to give up on the dream.
I need to have more (draft) blog posts. They motivate me.
three seven
“we’re all alone. that’s why we have friends and family. so that loneliness is easier to take”
Modified quote from Mr. Mercedes
There have been times this year where I thought I was already thirty-seven, so as I write this post I don’t feel like I have turned thirty-seven.
Have I mentioned how much I enjoy writing these posts? I love it. A day to look back on and reflect on being part of this world and this ride, and as I write this post, I feel incredibly grateful. I am grateful to experience all that I experienced last year and for what I will experience in the weeks/months ahead.
It would not be fair to move ahead without saying thank you to this suburb I had been spending most of my time in 2022. I thought living at home alone and working from home would be quite a boring and lonely experience, but Manly has made the experience quite the opposite. Never a dull day. Living closer to the beach has been nothing but fantastic. It costs me a lot of money but money well spent.
I write a lot here about how the last year went by, but I want to change that up this year and move to a shorter format. Make it easier to read.
Few personal highlights for the last year:
- More than 110 days at the gym. BFT
- More than 200 swims in the ocean.
- No longer being scared of writing tests and working on large-scale applications.
- Travelling to
- Dubai
- New Zealand - Thrice.
- India
- Started to ride share when I had time.
- Participating in 26/11/22 - BONDI BEACH - SUNRISE event.
- Building more apps and writing better code than I did last year.
- Swimming with the fishes at the Great Barrier Reef.
- Meeting a lot of new people. Eating good food and drinking good alchol with them.
- Friends from India coming over to visit and stay. I wish this never stops.
2023
Instead of writing down lists, I want to switch to living 2023 around three themes.
My three themes for 2023:
- Create
- Dance
- Travel
I hope you all have an excellent 2023. 🙌🏻🤗
senior engineer
I have never been into titles. I know why they exist, but I have never actively chased them. But on the other hand, I have seen people chase titles, and I only got why last year. A colleague told me that titles came with more opportunities to learn, the chance to contribute to the product roadmap, and more money.
I have ensured that I put my point across regardless of my title. But that’s not how it works in large corporations. You have the right title to be invited to forums and meetings where decisions are made.
At my last job and my current job, my title is a senior software engineer. The pay rise has been good, and I get to work on things that would scare me before. I now participate in meetings involving roadmap items for the next quarter. It feels good to contribute to the product roadmap.
Looking back, I should have tried to get a title bump much earlier. There were things I wanted to change to make the software better at previous companies that I worked at.
micropayments
For $25 you can buy a content passport. It’s available for purchase on any website that is part of the content network, and you need one to read the content on their site. The site that sells it to you gets $10 in commission for selling it to you.
I like this idea of how we look at payments for content. Instead of paying for content each time and at different sites, we get a content passport that pays content creators.
Medium tried this, but they wanted to control the user experience, which did not end well. I like this idea because content creators get to maintain control over their websites. Content creators also get to make money in other ways cause they have control over their website and disable ads / other monetization methods when a user shows up with a content passport.
Can someone please implement this? I have also been looking at working on something on the side. Could this be that idea?
This week has been fun in the Twitterverse, with Elon Musk now taking charge at Twitter. He fired many people, and a few who worked for Twitter quit, including a few Heads of departments.
I read a tweet about how the developers were now required to sign off on compliance-related features because heads of those departments had quit. I can’t begin to imagine what that must have felt like, being made responsible for things outside of your domain expertise.
I don’t know what the future of Twitter is. It feels like Twitter has always been there. But it’s only been sixteen years. Sixteen years feels like a lifetime. I have learnt so much from everyone I follow on Twitter, and I can’t thank the team at Twitter for building the platform and continuing to work on improving it every day. I hope Elon does not cause the platform to not exist in a few months/years.
I am sure someone out there is building a Twitter alternative. There are a few which exist already, but none which has convinced the masses to shift. I hope the next platform has a good business model behind it. Free hardly scales, and we have seen it time and time again.
learning never stops. I never want to stop learning.
Computers have always interested me since I first used them in 8th grade, from learning that computers talk in binary to learning DOS, Windows 3.1, FoxPro, and Visual Basic to now building web and mobile applications. I have come a long way. There are so many things to learn, and I am happy each time I pick up a new skill/language/tool.
Last two weeks, I have been thinking about all things associated with this field that are of interest to me, and I made a list below so that I can come back to it each time I think about where I should spend my time.
Building backend for web applications Spend a lot of time doing this now and enjoy it. I want to get better at using step functions and abstracting code.
Building mobile apps Don’t spend as much time doing this right now. I would love to spend more time building mobile apps. Want to develop an app that uses AR.
Application Security Working with web application firewalls and OS applications that protect the app—adding hooks to the software, so it processes data securely. There is so much to learn in the field of security.
Usability Engineering The first time I came across this subject, I instantly fell in love. I want to spend more time doing this.
Testing Unit, Feature and End to End Testing. I recently started spending time writing unit and end-to-end tests and quite enjoy it.
Games I have built API for mobile games. However, I would love to make / program a game.
Mac apps I always wanted to build a Mac app. Someday soon, hopefully.
Sketching/wire framing software
IoT I have wanted to work with Bluetooth Low Energy for a long time.
Application performance monitoring I enjoy this so much, monitoring application performance and improving endpoints / UI, which hamper the user experience. Always sad that I don’t spend more time doing this.
Serverless Tech I have written a couple of AWS Lambda scripts. Serverless tech has been growing quite a lot, and spending more time learning tools around this is something I would like to do.
Reading release notes I need a day dedicated to reading release notes once a month. I enjoy reading software release notes.
measure twice. cut once
I am not sure why this title was the first thing I thought about when I started writing about software testing.
I have been working on making tweaks to our product’s test suite this week. It’s been good working on a product with many tests written. Tests that cover unit, feature and end to end scenarios. I have written tests before, but nothing like what I currently work with. The tests I wrote were mainly end-to-end to test a few happy paths.
While working on making tweaks to the test suite, I realised how important it is for software to have tests. It helps improve confidence during deploys, helps when upgrading server packages, when upgrading the framework and generally checking that things are working how you expect them to work.
Being relatively new to feature and unit testing, I am learning quite a lot at my new workplace. But there is so much more to learn. So much more to consider when I work on my latest project/product. I don’t think I can go back to building software that doesn’t have enough test coverage.
moonlighting
This topic has been on my mind for a few weeks. It was either Wipro or TCS who first spoke up about this. A quick google led me to this article.
TCS on moonlighting: It is an ethical issue and against company’s core values and culture
As per a report from Moneycontrol, TCS Chief Human Resources Officer Milind Lakkad during a recent media interaction, said that the companys thoughts on moonlighting have been communicated to employees. Lakkad also said that no action has been taken so far against someone involved in such practice.
Furthermore, Chief Executive Officer Rajesh Gopinathan said that all employment contracts include that employees arent allowed to work for any other organization.
While working on this post, my friend Lokesh asked what moonlighting meant.
Moonlighting refers to the practice of working a second job outside normal business hours. Therefore, an employee may work a normal 9-to-5 job as a primary source of income but work nights at a different job in order to earn extra money. Employees who work for private businesses may be subject to any policies the company has in place regarding moonlighting. Certain organizations may not want employees to work additional jobs while others will not care.
I have always wondered why an employer would mind if someone wanted to bring more money to the table to support their family or their dreams. If one is being truthful about the work they are putting in at the regular 9-to-5 job and not accomplishing other employers, work while being on the clock at one place, having another gig would not be a concern.
However, working for a direct competitor could be of concern and is a boundary I am ok to consider. It’s tough not to have one employer’s knowledge/roadmap influence decisions at your other place.
I follow “ankur warikoo” on linkedin and he posted this two weeks ago
“I have always encouraged my team members to work at different places, pursue multiple gigs, and also take up different kinds of projects.
Better yet, I have offered them roles that my acquaintances had openings for!”
“Magic happens when one starts with trust.”
If I were ever to start a company, I would be on ankur’s side regarding how I would react to someone working with me moonlighting.
road trips
I just returned from a road trip, and if someone asked me what the best way to travel around is, I would say rent a car and drive around. Road trips with friends and family are the best.
Pit stops along the way, random conversations, stopping in once unknown towns and cafes and catching a glimpse of sunrise and sunset. Google maps has been immensely helpful in navigating me through the road trip. There has never been a diversion from a path that google recommend. I have never thought about going off track and finding an alternate route to the same destination. It was always about the quickest way to get from one place to the other. However, after I returned, I made this mental note to sometimes go off track and take that alternate route.
I recently read this “values” page written by one of my favourite software to use these days. Arc. Josh has the browser company values page around road trips. I thought I had an attention span disorder, but I could not stop reading the page. Please give it a read. I hope you enjoy it as much as I did.