App modernization- Think |Plan

In my career, I developed applications from scratch multiple times. I managed team for enterprise platform, started 5 years ago and have to engage my team, think and plan for application modernization, leading to this blog.

Assume platform was written in old language (Example: PHP) and leverage  open source frameworks(Drupal or CodeIgniter or Laravel) and team has thinks that the application needs to be rebuild.  Re-builds  are always longer, harder (than we think), and filled with peril. The  ability to maintain the discipline required for a re-build across long duration is a rare commodity.

Remind that developer developers are an optimistic bunch when it comes to how long it will take to rewrite and tech stacks will change over time. Focus on business value, architecture and approach to build.  Even with experienced developer, it may take far longer than anticipated. here are some questions I had to think for answers

  • How to convey and get the business to really understand what it will take to re-build a large complicated web application that has years of code, business logic, etc.?
  • If we are going to rebuild a new web application with a decent amount of financial data, what languages/DBs would be pragmatic choice?
  • Do we rewrite in PHP? Will firms be able to recruit PHP developers? Is it worth switching to a different language to rebuild? Switching means hiring new staff to do the reb-build, while it may be short sighted to decide PHP without pragmatic evaluation  . 
  • Do we consider building from scratch, again in PHP and related PHP frameworks? Will writing in place be probably easier than starting over from scratch?
  • Do we build a new application and roll out the new one separately? I like to get new code into production as soon as it’s ready, while that may give rise to compatibility challenges and end up taking longer time. 
  • Should we hire an outside firm to do a rebuild? When deciding technology, be pragmatic  of the company’s  ability to build a productive team, in addition to  tech stack. As languages age, team dynamics that work on language change. Mature technologies tend to have more mature people working, and the youngest (at heart) engineers move on to the latest toys.  Are you in a stage where it is harder to find people who want to work in language full-time?. This can be solved with outsourced companies that specialize in them. The number of PHP developers is not small, but the number of qualified ones is.

Now on approach. May be start with a rebuild MVP and then iterate development. A smaller version at a smaller cost to engage the business before the whole thing is “done”. Be aware of the large risk of running out of momentum/money before it’s done 

Migration is more of a business decision than a technical one. before decision, start with a deep dive on the business side to truly understand what underlying problems are being solved. Better to capture insights from code review, insights from enriched  bug lists with severity and priority, , document known system limitations, security and performance concerns and UI/UX concerns. Invest effort effort to perform a value proposition mapping exercise to understand client needs and build a powerful business case. 

  • Is a really old codebase used, or is existing code developed on a framework that is dead or no-longer-maintained?
  • Was the code base developed with very little oversight and less skilled people working on it for years, leading to a “ball of mud”? Is there more hard-coding (say hard-coded SQL)? How ready is existing code for reuse?  Has overall app maintenance been a source of struggle?
  • For a company in a growth stage, innovation is important. If going back to PHP, Can you recruit  people who want to perform ground-breaking and/or new product innovation? 
  • Has application UI/UX aged as per business and customers? A real reason that  business will consider to invest in revamp and transformation of UI/UX of the product for the next 5-7 years of its life 
  • Are there custom solutions? Why are they important today? Are those IPs worth building again? is it core to their  unique competitive advantage

How much team and product has grown in the past few years? An accidental SaaS platform may start with few engineers and few features in attempt to solve a problem. Then teams started to build around them over years like tentacles of spiders. Start looking at the current team and map back to the beginning. Look for hidden business logic in code. It is quite possible for one to  think one knows what needs to be done, one may not. Be prepared to rediscover things as you move forward. A pessimist thumb rule is: if it took 8 person years to build, it may take 2-3  person years to rebuild. 

Perform code review in system components that are likely to be in demand for features in the future. How easy it would be to change these components? If components are discrete and decoupled from monolith, they may be easy to migrate to a new interface, with assumption, automated tests are also in place.

Other options to consider are upgrade feature by feature and keep the database the same to start with and then finally upgrade the database. Remember that while internal facing features can be updated based on iterations, externally, businesses may want a clean release with a single change in the user experience for customers. 

To reduce risks, businesses may want development  to consider rebuilding in chunks rather than big bang new building( all at once) to gain  a much shorter feedback cycle. Take an approach where there is potential for less number of unexpected bugs. More unexpected issues cause dissatisfaction of business executives who feel “keep waiting and waiting” to get back to where they were before and can become political across departments. Let us keep in mind that the market would continue to change requirements for the new system as the same is getting developed, leads to even more further delay for demonstration of value to business 

Has the core value of the product changed?

What is the core value? It is possible that there is no need to rebuild the current product and we need to build a new product that meets today’s needs. Can you carve that part, offer a new version and migrate customers across? If business has changed  significantly,  it may be a better option to build a new product that does what customers need today. This provides more leeway to development team to make technical choices, while the current product is put in to maintenance mode.

Remember that building a brand new system with tons of new features may take a long time to build, and then migrate. In this context, one can develop new front-end with a combination of new and existing API, maybe proxy/delegate, especially for new modules and keeps users engaged and has a better outcome from business perspectives

Microservices solve scalability problems, not complexity problems.  While services are great, 100s of services create a hard problem to fill engineer roles (if that is what you want, go ahead).  While software-defined networking is simpler than physical networking, it is not an skill for developers (who do not already have it ) to ramp-up and learn and may be difficult to hire, opening to downside potential to increase both the application complexity and the surface area of security-vulnerability.  Unless micro services solve existing problem, please question rationally whether micro service architecture is required, micro services are much harder to build, secure, and maintain than monolithic architecture

If the plan is to change tech stacks and include things like micro services, it may be worth to plan a stress-test of current platform by engineering team to arrive at performance benchmarks from user perspective. Everything can potentially change from runtime characteristics to build tools to deployment models. Benchmark the time to complete the same task on each platform and extrapolate from that.  This can be a way to differentiate between hype and reality at MVP level. Do not agree with developers claim “it runs great on local”, drive team to get it run as part of daily workflow in production, measure performance and usability, compare with the benchmark.

Think of health of infrastructure to scale with more users, and health of the code to build more features with confidence. With the advent of cloud, infrastructure has become easier than earlier. It is easier to move from bare metal to scalable groups with sticky sessions or sessions in a database and also easy to commission and decommission MySQL instances in AWS

Are core application challenges in the existing application related to specifics of your existing stack? If yes, please consider most similar tech stack to existing one that resolves those specific issues.   Any new, radically different technology stack has potential to slow down dramatically and result in a huge amount of technical debt, make the product worse. Different stack may lead to higher cost to  pay, as differences  in language syntax and ecosystem may be different and non-trivial(change paradigms such as OO->functional or event-driven/async)

Some tips

  • Start it off with a small team of maybe 1-3 very experienced engineers, and let them be focused on the work. Treat it like a startup of a small team to do one thing and do it well, and you’ll be surprised how fast they can move.
  • If an application has components for data aggregation, API,  and a web app to handle, splitting the approach to address  them is a good first step. In this case, address the web app first 
  • Migration of features to new architecture with less experienced folks or making the same team perform migration alongside maintaining/extending the existing product is super hard.
  • Tacking early stages of a large green field project with a large team is also super hard, making the project consume more time than was estimated. 
  • Attempting to make the new system work with the old one is a worthwhile exercise. It’s the worst of both worlds. You are limited by most of whatever was wrong with the old system – then you’re not really writing a new system, you’re just updating it.

Transition team on agile maturity

In my past execution, I start with playing dual role of tech guy and scrum master as part of jump starting projects. and then transition role of scrum master partly to senior QA engineer or in full to scrum master. For change, I experienced in new context in role of technology manager for platform where scrum master joined 6 months ago and leveraged Jira

Sharing my 4 months observation and capturing evidence to understand challenge to create better collaboration of team and transition for better agile maturity. observations are

  • Scrum masters had no access to source code and neither have deployed local versions of applications on their laptop. The local environment practice started for me from my individual contributor days and enables me to collect insights to influence the team beyond what I learnt from them. When I lead a project using RoR, I took teams support to setup a local application environment and also documented steps to deploy locally(DIY second time).  When local environment updated had issues, I reached team members for help to get local environment up and running. When one regularly practices setup of local environment and also document steps, one learns basics of a new programming language.
  • Scrum master does not access deployment environment details. Developers and DevOps engineers along with the product team are in charge of  deployment. Do DevOps stories present in Jira provide details for curious scrum masters?. No. Scrum masters are less equipped to facilitate resolution to  impediment in DevOps collaboration. To create a new resource, the story reads like “create a new AWS resource similar to this resource”. The time duration for which new resource is neither captured. 
  • Scrum masters did not have access to working product documentation. In absence of documentation in remote work, scrum master was constrained to understand bugs in completion and also enforce that bugs require description, environment context, expected output and actual output. Classification of bugs based on business units and components suffered as this was entirely dependent on the product and dev teams.
  • Scrum master spent significant effort to conduct agile ceremonies religiously time boxed and  track product based on epics, storis, tasks and bugs and to calculate velocity and arrive at burn down charts.  Learnt that scrum master is not facilitated to look at business agility of deliverables based on user personas and their user actions and user workflows
  • To have business agility, agile development needs to incorporate practices of continuous integration, which is based on automation tests. The team had automation tests, still test execution and publishing results did not happen on a regular basis and complete results were not published on milestone. The published results were based on features and not specific to business units and end-users, reducing the clarity and visibility of test results. 

Observed Jira governance was at corporate level, limited customizations possible at team level. 

  • Epics and stories were quite generic. While some had necessary details, they lacked sufficient details for development.  Not easy for newbie to understand gaps
  • Product team added epics and stories and discussion happened on Jira work items. Not sure how developers and product team got  on the same page, it was tricky  for a new person(me) in  the team to come to the same page. 
  • Some questions on user stories were responded to, and detailed  answers provided. Some were left without response. Confuses a new person to get grasp of the story or bug, with no clarity whether there are gaps in his/her understanding..
  • Bugs have screenshots & videos, expected output & actual output written were missing. Quite possibly Qa engineers were playing safe, as they lacked clarity to write in detail. In addition, end-user requests got added verbatim to bug description and was not easy to 

Neither bugs were classified based on business units

With limitations, I felt that scrum master focus was more on agile ceremonies and timeboxing and the question in my mind was “ Is the team on the path to be more tool centric or process focused rather than end-user focused or customer centric. Are Time boxing and velocity focus leading to adherence to plan, rather than responding to change required now?” . 

Here are my steps  to enable the team to “Respond to change” now. 

  1. Created DevOps asset inventory ( see link), shared with team and scrum master.
  2. Created baseline development and deployment architecture diagram for platform and leads took charge of updating the same. This was focused to enable on-boarding of new team members ( team had contractors and churn)
  3. Influenced leads to create minimal documentation to understand complex modules and workflow and also around integrations. This enabled existing  team members to move across and work on different areas of the platform.
  4. Influence engineers to write product documentation first version. 
    • Influenced scrum master to schedule documentation and their reviews as stories in the sprint, which can be worked by team members 
    • Personally Reviewed and enables team members to update documentation aligned with user personas and user actions. 
    • Placed minimal documentation on wiki pages and documents on SharePoint site, 
  5. Started to show by example to be proactive to make stories and bugs complete 
    • Share with the team what are the gaps in stories and bugs, prior to the Sprint Grooming meeting, along with scrum master. 
    • When scrum master and team acknowledged gaps, they can collaborate with the product team on stories and business analysts on bugs to complete the story and to ensure bugs contain expected and actual output 

When I collaborated with team by example, different team members were able to see different benefits and they took change forward 

  • The team members started to ask the product team and scrum master that stories and bugs have to be complete and sufficient, prior to them getting scheduled in the sprint.  
  • When the product team explained features different from product documentation ( reviewed by product team), I or scrum master facilitated discussion to ensure that both documentation and stories were on the same page. Either stories got corrected or the documentation got corrected, both bonus to team’s learning 
  • As a team, we learnt that bugs reported by end-users ( new users not trained with the platform), were received and the issues got added as Bug.
    1. This challenged  the efficiency of the team in the eyes of stakeholders. Actually these are no code bugs and are content workflow confusion
    2. Working with stakeholders, to get these issues classified as Content Bugs, defined as issues fixed without change to source code or deployment.
  • As  DevOps asset inventory was accessible to all team members, both team leads and volunteers started to own asset sheets. In addition, the scrum master got involved and started to make the right noises in the right forums as potential risks for completion. This enabled team to take ownership to track underutilized resources to be decommissioned. 
  • For new team members on-boarding, the new team process for on-boarding became
    • Share documentation to new team members, 
    • Ask new team member to explore products along with documentation
    • Post week,  present to the team what they have learnt 
      • Existing team would help them to identify gaps in their understanding . 
    • Team was happy that ”No more repetition of on-boarding sessions”

While there was intense work, the exercise created collaborative team culture based on support, openness and shared understanding, enabling better discussions of future fears and challenges. In addition to executing existing technical debt roadmap, I gained more bandwidth to perform.

  • Created an automation roadmap and executed successfully.
  • More technical debts and legacy apps debts came to the open. Create new technical proposals( with suggested solution), presented to the product team .
  • Overall team quality metrics became better , in midst of massive technical debts.

Sure you want app to scale?

When I look around for opportunities, I frequently hear interest to know my experience with scaling challenges, terabytes of data or thousands of transactions per second. To be honest, my startups were designed to keep in mind the need to scale and had minimal tech debt ( refactor as culture). when business does not scale, you have less opportunity to face real scaling problems in production and resolve them too.  

In 2012, my startup platform distribute learning media content to mobile devices. Those days there existed a variety of mobile devices and each understood different media formats. While conversion of media into multiple formats was done using ffmpeg and was available on platform to download. Neither AWS Transcoder nor AWS Lambda did not exist till 2013-2014. While I was focused on AWS, the production deployment was hosted on Linode. Yes, it was expensive to upload large media and perform conversions using AWS compute instances. my mantra for cloud architecture became focus on high performance and low cost of infrastructure.  

Let us move to 2020 and share scenario where firm wanted to make applications as cloud-native across organization from firm’s technology standpoint. Observed that while infrastructure has extended in 10 years, there is one-fit-all mindset within techies for different reasons.

Here there us a business success application leverages AWS S3 for documents, AWS RDS for databases, AWS Lambda for large processing and hosted behind  AWS cluster & API Gateway. Developers started to leverage docker for the local developer environment to increase efficiency across laptops that are ubuntu, mac and windows. Should applications become cloud native? 

  • While facilitating my team with the support  to move to AWS Fargate, I checked for capacity utilization of EC2 resources and the current utilization was less than 60% of available capacity. Hence our existing EC2 resources were underutilized
  • Observed that current log practices was not mature for legacy reasons and move to cloud native requires better log management strategy as first step to migrate to cloud native application

Think twice. While techie in me is enthusiastic to migrate to cloud native, I ask the pragmatic question “Will business feel justified to allot a budget for migration and schedule it as part of sprint. Is there a possibility that  cloud-native application cost is the same or increases?”

The migration to cloud native architecture did not provide better and came with risk of potential increase in cloud costs. While migration to cloud native will be a great addition to my resume (based on Kubernetes or AWS Fargate), I shared the ROI benefit with business team and did not support cloud native migration in current shape.

My above experiences pushed me to understand the application and data landscape with respect to business, prior to proposal or decision of  scalable architecture to business. While focus can be  to design scalable architecture, let us accept that architecture keeps evolving and not static. 

Here are a few things that I perform as part of my design to think through scaling and implement the same in discussion with business.

Understand application, data, user work flows and compute together Simultaneous read-write access to multiple user data  under single transaction, like bank transaction or money transfer. Still note that generation of bank statements for loan approval is read-only action. 

Each of the below application contexts would lead to a different design strategy for scaling. 

  • Monolithic or Micro-service architecture. 
  • Operations that take long time or operation that need long wait for completion
  • How can user experience flow enable creation of alternate perception of high performance applications to the end-user? 

How data is created and accessed by user, whether transactional or sequential or multiple-reads-single-write, multiple-reads-multiple-writes and time horizon of the operations has its own impacts on scaling. . 

  • Data written by user A and the same data can be read/accessed only by user A
  • Data can be read-write by user A and the same data can only be read by user B
  • Data written/created  by a user A first time. While user A only reads data,  other users can write to data, which can be read by both other users and A. 

Let us consider content authoring platform that supports versioning of content and purge of old unpublished versions (dead data) is not done and database grows to terabyte’s in size. Is solution to increase hardware capacity or purge old content and release unused capacity?

Caching instead of a large number of DB calls– If an application session was stored in ASP.Net session database, more DB calls happen to the database to access session variables every time. Can we explore moving session data storage to Redis cluster, to  enable faster data access to session data?. When the data is created or accessed, the data is potentially refreshed ( added, updated) in Redis. There can be timer based expiry of data validity to invoke refresh of Redis data on regular intervals to ensure latest data is available via Redis. 

S3 to store all documents and images: Access S3 object via S3 URL from javascript running in the browser and this ensures that your web server is not impacted by frequent access to documents and images. 

Consider microservices for integration: This is more in the FinTech space where we would integrate with multiple 3rd party API to get aggregator data . Recommend to have microservice based design implemented for integration.

When 3rd party data is more confidential or private, I suggest having a separate database to store 3rd party  API  provided data . This enables better control when there is an update in data format version from the data aggregator. Any data security mechanism like encryption and decryption is isolated to the database and the only way to access data is via microservice API. In addition, I observed that when  there are unforeseen reasons to replace one 3rd party API to a different 3rd party API, this approach helps to keep impact isolated

If application is monolithic,  integration can be one of  the first ones on the journey of migration from monolithic to microservices.

Microservices  design can include MicroFront-end. With capability to call multiple API endpoints from user interface , it may be worth to design UI as multiple sections, where one or more sections can access different endpoints to obtain data and render.

Async Calls Looks for avenues to explore leveraging asynchronous operation invoking mechanism of your languages, to explore  AWS Lambda to perform short high performance operations like content file format conversion or media file format conversions.

while content publish operation can be async in authoring platform, I prefer that design ensures that content publish errors (from async process) are visible asap to author to enable fix of publish issues by author, similar to how developer cannot check-in when code pipeline rules fail.

Beware scaling application with state-aware and stateless components

When application has state-aware and stateless components, focus on how to move both components to the cloud. When developers are enthusiastic to migrate stateless to the cloud in an effective way, was sufficient take care to move state-aware applications in an ineffective way? 

In my younger days, I wrote code for state-aware multi-threaded C++ applications that leveraged synchronization objects, lock, mutex & semaphore. In last few years, here is my diagnosis for root cause of application feature reported slow and inconsistent by end-users. 

  • The platform leveraged multiple apps written in different programming language.
  • The challenge came from .NET web service API, (old team not present), and the performance became platform team’s ownership to resolve ( team members never worked on .NET).
  • Business proposed to host .NET api behind API gateway and quickly solve the problem, while my team informed me that the problem has been persistent for a long time. No one was assigned to to find root cause 
  • Engaged fresher to develop a standalone angular application to invoke .NET API and found response speed inconsistent, some fast(<= 1 or 2 min) & some slow (>= 10 to 20 mts). This matched with the current end-user experience.
  • Learnt via end-user support “when less clients invoked API calls, response was OK. When more clients invoked API, response was pathetically slow.”  

Confident the root cause is in .NET code, I spent time with.NET code (file by file, then function by function, then line by line). With a lot of technical debt, I found a lock statement on the code path to access database(why lock for read-only operation?), root cause why stateless requests were made to wait by a lock statement, leading to inconsistent behavior. Let me not further wash dirty linen in public.

Fun implementing GDPR 

Recently, I led a corporate  platform team (World-wide) mission to become GDPR compliant. While there are better blogs, this blog represents what I facilitate my team on its journey  to incorporate GDPR compliance.  The platform is customer facing, with its own capabilities and includes capability of hosting multiple data apps and data integration via APIs. The platform leveraged tracking tools like Google analytics and Pendo and also 3rd party APIs to achieve different functionality

Here are basics that I enable my team to learn basics towards GDPR compliance

  1. Understand User with respect to compliance
    1. Logical Data captured from the user – audit, user data, user documents , consent
    2. Processing data – compliance, deletion,
    3. Policy rules – includes location where data is stored
  2. Development process for compliance.
    1. Compliance not incremental and more one shot solution
  3. Capture of consent from the user
    1. User accept or declines  privacy policy to capture data
  4. Impact of user consent on systems down-stream based on capture of 
    1. user consent with respect to privacy
    2. Change in user consent with respect to privacy
  5. Right to delete (Right to Forgotten)

First, understand the location of the customer whose data is stored, the customer country and where data is stored. Data protection laws relate to user privacy rules and data storage rules, specific to country, as the laws can be different in different countries. 

For example, India brough data protection rules for credit card providers that credit card customer data shall be stored in India region, including existing credit card providers. 

From country or geography point of view, platforms can adopt 2 approaches

  1. World-wide approach 
  2. Country-wide approach

I prefer the first approach being privacy first person. Assume companies like Apple and Microsoft follow a world-wide simple approach. They identify a super set of  data protection themes that apply across multiple countries and implement them in their platform. This approach allows testing to be performed centralized

Some firms may choose a second approach for different reasons, maybe businesses want to leverage gaps in the data regulation standards of the country to the advantage of business. This approach allows testing to be repeated across countries. If end-users from different countries access the platform using VPN, the same VPN can be leveraged as part of the platform test environment to verify for that country.

Now think whether 3 party APIs would store data in their data center as part of offering service. As the platform owns the end-user, the platform becomes directly responsible for working with 3rd party APIs to ensure that data protection compliance is taken care of.

Here your firm is Data controller and 3rd party API is Data processor. Please look at this link to understand more about data controllers and data processor. 

For example, Google, SendGrid and Pendo are your Data Processor. Your firm is the Data Controller since you control which data is sent to Google Analytics.

Your platform integrates with a 3rty party API on a subscription basis. Now , your firm and 3rd party provider needs to sign a legal agreement on data processing. Based on my personal experience, I warn that you should be prepared for a lot of fun and frustration to get an agreement signed. The presence of a privacy legal contact expert both in your firm or one at a 3rd party provider may accelerate things faster.  Recommend performing  google search to find helpful  links like  Why we’re moving from SendGrid to Rapidmail

Development process for compliance.

The process to most compliance is not incremental and is more like water fall for the first time. 

  • If the platform is integrated with cookie banners to incorporate item 3 above, once item 3 is completed, it cannot be deployed immediately. 
  • If platform is integrated with 3rd party providers, platform data protection feature can be migrated to production, only post all the required data processing agreements are  signed and development team confirms that 3rd party provider is compliant with item 4 & item 5, 
  • If your platform hosts multiple internal data apps as part of platform, platform team shall work with each internal  data apps, platform data protection feature can be migrated to production, only after all internal data apps are also compliant 

While the corporate central team may volunteer to facilitate incorporating GDPR standards across all platforms in corporate, the central team should focus on centralized governance and decentralized implementation should be responsible for the product development team.

In our development, compliance  inventory excel was created in wiki, to capture compliant status of internal data apps and 3rd party providers and overall compliant status, shared with all stakeholders for reference and enabled developers to collaborate and solve challenges together. 

Once the development team completes implementation of data protection in the platform, the development team is expected to be proactive to address data protection needs across  new future internal data apps or 3rd party API integration. 

Capture of consent 

User Consent can be captured using user consent form  in 2 or more scenarios. 

  1. When the end-user registers with the application or activates the application using the email address given by his employer. 
  2. When the end user shall be provided an option as part of the application user profile whether to capture consent or decline consent.  The application user profile privacy consent can be broken into multiple sections and each section can capture consent for specific private data say location, payment consent. The user shall provide consent for few and deny consent for few or provide consent for all and deny consent for all.

You do not need to develop software to capture in-house and you can leverage a third party app similar to OneTrust cookie banner. The good part is that third parties take care of implementing all data protection and legal compliances. 

Beware of the limitation of Cookie tracking, which can be leveraged  when the functionality that access data or stores data can be controlled at cookie level. For example, email functionality or chat functionality or 3rd party API integration may not depend on cookies and need a different mechanism.

Impact of user consent on systems downstream.

If your firm is a payment provider, all payment transactions need to be captured under different finance regulations, hence the same data captured can be mentioned in the privacy consent form and displayed to users as disabled. 

For regular user data,  when a user declines consent for a specific privacy parameter, associated data should not be captured by downstream systems. when a user provides consent for a specific privacy parameter, associated data shall be captured by downstream systems. 

Based on user consent, the system shall be able to decide whether integration needs to be disabled or enabled for users. Observed that a lot of 3rd party API provided java script snippets that can be placed on a web page to complete integration. Now the snippet should be enabled disabled to the user based on user consent for that specific data.

If platform leverages Google Analytics, please check with your  compliance provider whether they integrate with Google Analytics with respect to capture consent, similar to  OneTrust Supports Google’s Newest Solution: Consent Mode

There is no way to stop or block the end-user from changing his consent (accept or decline)  any number of times. Hence it is important for development team to think what happens to past data captured based on the user consent and then, the user declines consent?

  1. User provided consent first for data capture and then decided to decline consent
  2. User declined consent first for data capture and then decided to provide consent

If you are leveraging a third party software for email provider, you can choose AWS SES for email service as that leads to reducing one more agreement to sign.

Right to delete

When the end-user leaves the platform, the end-user can ask the platform to delete all his data or ask to selectively delete some data . 

  • Delete requests needs to be completed in time frame.
  • Delete requests can span across multiple domains, where each domain can be made of multiple services. There shall be unique way to identify user across all domain and services
  • Most of the delete requests may be done in async mode. The end-user applies to clear all privacy data and once the data is deleted, the user is informed by email of the same and this process  may take between 24 to 48 hours.
  • Platform needs to consolidate confirmation status of deletion from all domains.
  • If the platform uses a third party, the same shall be deleted from 3rd party storage also. Most 3rd party providers provide APIs to delete personal data stored by the user. Go here to  find details to delete with respect to Google Analytics.
  • Special attention to make sure that delete requests do not delete the information that needs to be retained for different government regulation

New belief “I can learn to swim”

In 2019, I started taking yoga, meditation, regular reading   as part of my regular week day routine. Corona period helped me to continue three of them on decently regular basis as morning routine. I was able to perform yoga a home myself when there was lockdown. On normal days, I continue to attend paid neighborhood yoga class.

During Corona, I realized that I did know swimming, whereas my children and wife learnt the same. I experienced fear during scuba diving in Nethrani islands in Nov 2021 and got scared to even perform snorkeling. Not able to join my daughter in snorkeling and jumping in to water from boat mast pushed me to decide to learn swimming. Observed that we had a swimming pool in apartment, I did not leverage. I had said to myself that “I go scuba diving again, only after I learn basics to swim”.  

In last week of March 2022, I heard that a swimming class was organized in apartment to learn swimming. The coach said the apartment class was between 6 to 7 pm or 7 to 8 pm, which conflicted with work related call. Little disappointed , I asked my wife, and understood that Ryan School has swimming pool, and teach adults in the mornings. I was not sure how swimming will align with my morning routine.

I went to Ryan school and signed for 15-day class (1 hour each) from 6 am to 7 am. My daughter suggested to purchase the swim gear, swim shorts, googles and cap and asked me to get in to apartment pool to get hang-out of a pool. I had internal fear whether I will be able to swim with over-weight body.

Here is my experience with learning swimming.

  1. Learn to hold Breath (let out), with head down under water (holding something)
  2. Learn to Float
  3. Learn to Kick
  4. Learn to sync Float, Kick and back to Float (perform together)
  5. Learn to Kick, float, perform hand lap, while head is under water
  6. Learn to Kick, perform hand lap with head out of water to take breath

A lot of unlearning for me to hold Breath. With Yoga, I learnt to inhale and exhale regularly using nose and to avoid using mouth for breath. With swimming, one needs to inhale outside a good breath, hold and exhale under water using mouth. Thanks to Ranjith coach, who helped me.

First week I did not practice in apartment and neither went to yoga class first 2 days. Then I stacked Yoga after swim class from 8 am to 9 am.

Next challenge was Float as I need to keeping head down under water. I bring my head up and was automatically going down. I also need to learn how to land down on floor of the pool, once I stop floating. The coach also made me learn

  • To float better by moving me from low depth to high depth
  • To start floating from pool wall and start floating from the middle of the pool(no wall)

Taking some time to practice in apartment pool (less depth) compared to Ryan pool build my confidence. I started using weekend to practice too in apartment pool.

Next challenge was kick. My legs was not being in straight position for kicking and I was keeping in curved position. During kick action, I brought bringing my head above (under water) and that action made me land and not help with my kicks. It took a good number of classes for me to kick under water.

Got used to perform three actions separately, coach asked me to perform actions of hold breath, float and kick in sync. This was real multi-tasking and top priority was on kick action, with heading looking at bottom. Lot of fun, when kick was right, head was up and when head was down, kick was not happening.

Took off from swimming class to practice too in apartment pool and gain confidence to perform multi-tasking . When I became confident of Step 4 in deep water , coach asked me to perform Step 4 in deep water.

On 12th class, I learnt that my my persistence to learn swimming has taken me forward to Step 5, while I may not be able to complete Step 6.  Learnt from learners that step 5 and Step 6 requires more practice, with a significant learning and unlearning in performing actions

On 13th class, I started Step 5, “Kick, float, perform lap” and it was challenge to perform hand movement without drowning. I practice Step 5 the next 3 days and could not mature to step 6. Some of other learners suggested that I practice Step 5 in my apartment to be able to go from wall to wall on the shorter side of the pool.

To move to learn Step 6, coach asked moved from one wall to other wall on shorter side of the pool using Step 5. I landed in the middle, had to start to complete again.

I started to perceive swimming practice more like meditation, one has to focus mind on the breath and movement of hands and legs and there is no time to think of other things while you swim. View of swimming as mindful practice increased my commitment levels .

Post completion of class with Step 5 , I practicing to swim at least 4 to 5 days in apartment pool. In learning swimming, I have broken beliefs that “Swimming is not possible for me “and moved to “with regular practice, one can learn swimming. Secret is practice”.

With kids and others who swim, I learnt to be humble and share that I am in learning mode and ask for their suggestion to make my swimming better. My second daughter watched me one day to provided feedback “Okay”.  

Some measurements, I started to observe that I can hold breath for a long time. For the first time, I set goal, “Go across in Step 5 action across short side of pool”. In the last week, I achieved goal “Go across in Step 5 action across short side of pool”.

Learn – DevOps as department

Being in startup from pre-cloud days, DevOps was what we evolved earlier too. Being responsible for production over years made DevOps ownership and responsibility for me and not just accountability.

For first time in my career, I only had read-only view of cloud resources and few full-time engineers had access to cloud instances. On start, let me acknowledge that model was new to me and changes does not give me comfort.  Remembering my past experiences where I cannot change admin password for TFS servers, even post exit from startups, made becomes curious for learning from extended/share DevOps team model.

Here is my learnings based on action originating from change in mindset to organize, fill gaps and lead the customer facing development team with extended/share DevOps team model.

Cloud Asset inventory: Most enterprises cloud resources are associated with tags for product or platform or application name. Some also add tag for engineering owner name. Be prepared that when the platform scales, the tagging did not scale. Be prepared to handle cloud resources created under multiple AWS accounts and Azure accounts.

In the past, I observed home grown Cloud resources dashboard in Fintech startup that helps to commission and decommission cloud instances and also make releases specific to customer and read-only dashboard is visible to application teams and also get approvals from managers.  They have build the same with freshers over years.

Instead of creating dashboard, I decided to follow “No code approach” by creating excel sheet (call “cloud asset inventory”) and work with team to get the same filled and help them learn.

  • DevOps engineers helped to create Cloud asset inventory in excel
  • development team helped to fill up the additional column “Why this resource”.  
  • Senior dev engineer identified whether cloud resources are really used or not used now. Decommission not used cloud resources.
  • Categorize cloud resources for different applications in separate sheets – loose coupling

While third-party vendor was used to track cost of cloud resources, all team members do not have access. Asset inventory brings ownership of cloud resources down to entire development team, rather than for the manager alone.

How to make platform developers view break-up of dev and DevOps team positively? Here is analogy.  dev engineers are owners of apartments and DevOps team as maintenance staff of the apartment. Effectively, when plumbing in apartment does not work,

  • the maintenance team may help to fix or facilitate the fix with external party,
  • Still discomfort is for them and their guests (end-users and stakeholders) and apartment resident will not say that they would suffer, as the head of family is out of station.
  •  In addition, if parts needs replacement, the apartment owner is required to make payment.

Commission new/ Decommission old: , when new instance is created, the same can be added to the asset inventory, with a tentative expiry date where the instance is ready for decommission.

On team adopting this, I found development team ask “I want cloud resource similar to production machine or similar to development database” and DevOps team member response. “We will get them done”. When I became curious and asked what are specs for AWS resources, it was learning that cloud resources were created in distant past by earlier team members. Hence it becomes easier for leader to decommission unused cloud instances.

In addition, naming of new cloud instances requested by development team becomes better, as they can view naming convention in asset inventory. In addition, cloud asset inventory helps you to quickly identify cloud resources present in other report and does not exist in cloud inventory.

Upgrades/Patches/Downtime. Fun was when DevOps team informed that the cloud instance needs to be upgraded or security patch needs to be installed.  At times, the upgrade and patch involve minimal downtime.

Setup collaboration process for DevOps engineer to follow, aligned with DEV- QA-Prod pipeline.

  • Work with dev team to identify time to Upgrade Dev instance. On devOps engr upgrades instance, obtain consent from developer “All is well” after upgrades. Capture downtime.
  • Work with QA team to identify time to Upgrade QA instance. On devOps engr upgrades instance, obtain consent from QA engineer “All is well” after upgrades. Capture downtime.
  • Present downtime to me and product/support stakeholders to get good time (mostly it was weekend) to upgrade. Suggest someone from QA standby, to run automated tests and confirm “All is well” with production instance.

Found addition of story for upgrades and patches on the Scrum or Kanban board of product team helped to get team members informed and ask questions. All dependency are mentioned with story and required approvals can be received on the scrum board.  

Standard cloud images:  With number of similar resources, create Machine images similar to AWS machine image (AMI) can be very helpful, when upgrades and patches have to be applied.

Backup/Restore: With extended DevOps model, dev team starts to forget need to take backup. Any backup is useful, once if the same can be restored and restored data is verified “All is well”. When developers use RDS for database, they get used to assumption “someone take care of backup/restore “is not true always and is also dangerous.  On upgrading cloud resources, there is risk that both teams miss to verify “All is well” with backup/restore steps. Create check-list sheet as part of Cloud asset inventory excel.

AWS Lambda, Security and Available Zones: The asset inventory had network details and IAM details. In addition, capturing security and permission details helps to identify gap and provide visibility

  • If S3 bucket permission is configured public instead of private
  • If AWS Lambda is not associated with code repository (copy & paste from repo or no repo).
  •  If cloud resources of cluster are present in the same availability zones

Production Down scenarios: When unfortunate, production goes down in multiple application scenario, easy mechanism to identify application that led to downtime. Have a wiki with mapping cloud-tag- application -development-team-operations-team- collaboration-channel team can be helpful.  

Cost Optimization: My philosophy is cloud native design should aim for low cost and high performance.  When cloud resources are abstracted by DevOps team, development team starts to lose focus on cost optimization. On other hand,

  • The cloud asset inventory made development team to understand more details of AWS resource as part of commission and decommission steps.
  • On stakeholder questions on AWS cost, data-oriented approach helps to discuss/negotiate with business stakeholders.  

Monitoring and status Board

While devOps team adds monitoring to instances and leverage vendor like DataDog to inform development team, on identifying huge fluctuation or anomalies in cloud resources

  • Have a board with application status was helpful
  • Need to verify all production instances are setup for monitoring. You can choose not to monitor Dev and QA instances if vendor charges based on unit resource being monitored.
  • Tracking that all prod instances are monitored in the cloud asset inventory was helpful

Collaboration

Some ideas to create a collaborative culture, post adding DevOps activities to agile board

  • infrastructure code of devOps engineer is reviewed by development team member.
  • infrastructure code undergo code pipeline(dev-qa-prod) as any development code.
  • Demos by DevOps team (say for back and restore) during sprint demo bring more visibility to stakeholders and all team members
  • Development team can facilitate DevOps team to interact with stakeholders, rather than playing a proxy (middle men) role.  

When Dev team, DevOps team members or engineering manager moves, cloud asset inventory can become data-oriented collaboration tool in transition times too. In addition, when there are discrepancies between development team and DevOps team, it is better to make cloud asset inventory visible to scrum master and program managers

We did scuba diving at Nethrani

Lot of readers will be surprised to know that I did 2 road trips in 2021. I been Cybana(Cycle, bus, walk) guy for long years(did not drive a car). My solo-road-trip in Feb 2021 covered Coimbatore, Trichy, Auroville, Chennai and back.

My family road-trip in Nov 21 covered Udupi, Murudeshwar and Gokarna. The main objective was to do scuba diving and say to myself that we can do vacation with my first daughter at college. Actually I wanted to do this in July 21 and second wave of Corona virus stopped my plans.

Researched and checked through friend near Udupi and zeroed on West Coast Adventures to do scuba diving. Called and learnt that they did not offer scuba diving at Malpe beach and finalised the offer to perform scuba diving at Murudeshwar. While I used digital platforms to search for cost effective comfy hotels, I found less availability. Then I was able to call phone numbers of the hotel and got a good deal similar to digital platforms to book accommodations in all three places Udupi, Murudeshwar and Gokarna. At few booking, I have to send advance payments via NEFT and everyone obliged ( first asked UPI)

Started on Sunday morning, skipped Mangalore and went direct to Udupi. It was a long 8 to 9 hour journey and reached Udipi, stayed at Hotel Sharada International. Visited Malpe Beach and was crowded being holiday, while beach was clean. My wife and daughter went on water sport parasailing at Malpe beach, We ended the day with a walk in sea walk at the end of Malpe Beach.

On Monday morning, we drive first and took blessings of Lord Krishna in Udupi and then drove to Kapu beach. The beach was clean and there were hardly few people in the beach. Climbed lighthouse rock along the beach and took some photos . We went back to Malpe Beach. We want on boat ride from Malpe beach to StMarys Island, which is a thirty minute ferry trip( 4 to 6 km from Malpe beach) to the middle of Arabian sea

This island is extremely clean and beautiful and water is pristine clean. My wife and daughter had fund with water. The best is there was only one food place in the island, from whom we got some snacks. Coming back to Malpe beach, my wife and my daughter went on bunch of beach end water sports and drenched themselves wet. Recommend to visit Malpe beach on weekday(not holiday) where the crowd is less and one can have a lot of fun

After a quick evening lunch at Udupi, we drove to Murudeshwar and checked-in to RNS Residency. Got in to sea-facing room. In the evening, we took blessing for Siva for successful first scuba diving experience and visited office of West Coast Adventures.

There are a lot of papers to sign in their office ( they cleared all our questions) and checked/confirmed whether the available gear matched with our sizes. The payment was made and we realised that the boat ride for scuba diving starts at the beach in front of RNS Residency.

On Tuesday morning, We assembled at 9 am at beach in front of RNS Residency. Thanks to West Coast Adventures for asking me to book a room at RNS Residency, we left car in RNS Residency parking during scuba diving trip

Boat of west coast adventures arrived and we were 8 participants who were going to scuba diving with them. All our gears came in truck and we helped the trainers to load the gears in to boat. We were offered life jackets. While I would explain later how to leverage gears, here are the equipments, mandatory for scuba diving.

  • Mask : You need a mask to view underwater. The mask covers both your eyes and nose. You can view happening at sea through mask. Yes, you are not going to breathe though nose, and will breathe through the mouth. A mask can become fogged-up mask that can prevent you from having a fun and safe dive. The trainer treated the mask with a defogger before every dive. Baby shampoo can be used as defogger too.
  • Buoyancy Compensator : Your tank and regulator are connected with compensator jacket. BC jacket is needed for more than just buoyancy. It forms the central part to securing the entire dive kit together. BC jacket is crucial to a diver staying underwater at a neutral level underwater so that they are not floating to the surface or sinking to the bottom uncontrolled.
  • Tank : Your tank contains oxygen for you to breathe and be alive under water. It is a component of your breathing apparatus and serves the purpose of allowing you to store. During scuba diving, you wear the tank or diving cylinder on your back
  • Regulator: You require regulator to breathe the air from your tank by converting the high pressure air into ambient pressure. You put part of the regulator in your mouth.
  • Fins : You wear one fin in each of your legs.Fins help to propel you through the water that’s why fish have them.
  • Snorkel : when you are waiting for others to get in the water before making your descent. You can use your snorkel instead of your regulator to save air and not get water in your mouth.

Observe that one needs to remove all mobile, electronics, car key, wallet and keep them in storage bag, leave the bag in the boat and jump in to water. My wife put all of them in ziplock bag. The boat has a toilet cum changing room. We were informed that we will be offered light snacks and we need to catch up lunch on coming back to Murudeshwar.

Participants composition was 3 girls and 5 guys, one girl and one man were experienced scuba driver and all other were first time divers. Expect me, all others know how to swim. I am interested to dive and do not know to swim.

The boat started around 9:15 to Nethrani islands. After few minutes, there was only large expanse of water all around us. We got informed that the boat will dock near Nethrani island in the sea and we would not off-board on Nethrani islands. Looks like Nethrani island is under the control of Indian Navy. The island has temple visited by Fishermen for the yearly festival. No one stays at Nethrani island.

The instructor facilitated with lessons on the following related to scuba diving

  • How to make use of scuba gear. Each one were given practical session of how to wear scuba gear and explained how the SCUBA equipment works, do’s & don’ts under water. For me, it was interesting to learn “Not to breathe through the nose and instead breather through the mouth.
  • How to keep equanimity with pressure under sea water. Your ears get tightened due to pressure and you press nose from outside the mask to come back to equanimity.
  • How do you enter in to sea water with scuba diving gear including the heavy oxygen tank . You dive backwards and not frontwards so that tank goes and hit directly inside the water.
  • Sign language : As you cannot talk to the instructor under sea, we were explained signs to indicate different things under the sea. These signs made us realise that there is no chance to speak and that diving is quite technical
  • Fishes you may view : Briefing explained with poster about the different type of fishes that you may view during scuba diving in Nethrani islands.

By the time he finished his briefing, we could see glimpses of Netrani in the horizon. Still it took for us to reach island and find the good spot for the day for scuba diving and anchor the boat.

Nethrani island is a small rocky island with little vegetation. There are sandy stretches on the island and the edges of the island are rocks facing the water that ie said to be sharp and slippery. 

On anchoring the boat at Nethrani island, everyone other me jumped in to water wearing life jacket, started swimming and snorkelling. I was like fish out of water. Got myself out of fear and climbed down in to water using the ladder and attempted to float with head facing the sun. As it was my first time, I was afraid that I would sink. Hence I took the fresher board and also took rope tied to the ladder with me. When the waves push me away from the boat and i am less confident, I caught the rope and pulled myself to the boat. I was building my confidence, practising to be myself with water using the ladder as my pivot.

Experienced scuba divers jumped first and the other four jumped with instructors and completed their dive. my wife and my daughter went first with other two instructors. While I wear the gear and dived in to water, I was not confident to go down. Under water, I was breathing through the nose and not through the mouth. It was not easy.

Mike, the instructor remembered me using ladder to pivot my fear. He asked me to hold the ladder and attempt to go under water. We jointly went down step one at a time. In first attempt, I went to last-but -one step, panicked and climbed back to the top. In the second attempt, I went to last step and was not ready to leave ladder and climbed back to the top again. Mike instructor was extremely patient with me and gained my trust. Another thing to realise was that I panic not only as I do now know to swim,I was not confident to stop breathing through the nose and start breathing through the mouth.

Prior to the third attempt, Mike instructed that “On reaching the last step, I leave last step of the ladder and hold his hand.”. I said to Mike that “I am trusting my life with you”. In the third attempt, I transitioned trust from the ladder to mike. Not sure whether it was my effort and Mike perseverance that I went under water.

An amazing navigation under sea water. We were viewing different type of fishes, turtles. How can i explain the thrill of spotting a lovely fish passing by you looking at you curiously who the hell this guy is?

Observed that fear was gone and I was able to breathe through mouth and was also adjusting nose to reduce pressure at deeper levels. We went too deep to see the boat anchor docked in the ocean bed. The instructor brought me and my daughter together under the sea. Here my daughter was holding me in deep sea water and we were looking at family of fishes passing along by us. Right under water, I expressed my gratitude in the mind to instructor for making scuba diving a memorable experience for me.

Slowly Mike brought me up inflating the jacket. As i came out, i could see bright light and Mike asked me to hold the ladder and keep moving up. Holding the steps of the ladder, I resurfaced on the water.

Once back in the boat, We ate the snacks available. There was no mobile signal available and we started chatting on different things. Once again, I thanked the instructors Mike, Jason and Sarthak for making scuba diving happen for me. On start of the return journey, my wife found a bird that was caught in plastic. Sarthak jumped in to sea and rescued the bird, sea gull. Here is the bird on the boat.

This is whole day program. Keep one day dedicated for this if you are planning a dive. You are safe with instructors of of West Coast Adventures,who are well trained diving professionals. There is no need for one to know swimming. Make sure you follow instructions of the instructors while you are on the boat and while diving.

On reaching the shore, we helped them to board scuba gear from the boat to the truck and then we went for late lunch at Hotel Kamat. Recommend stays in RNS Residency and consume food at Hotel Kamat, walkable from RNS Residency.

Started drive from Murudeshwar to Gokarna. On the way, we got down from the car at Maravanthe beach in the evening. Hear, I observe that the highway is between beach and the river and the sea view was awesome. We ended around 7:30 PM at Devasamudra beach stay at Gokarna. While Google maps took us via small roads to our booked stay, the place was beautiful. We got in to cottage and sea was right in front of us. Nothing separated us from the sea except the fence.

At Gokarna, While we did not complete the entire beach trek, We trekked from Om beach to Half moon beach and then from there trekked to Paradise beach. There is no motorable road to visit paradise beach, one can either trek or one can go by ferry boat to paradise beach. Paradise beach was cut off from civilisation and was lonely to be with yourself.

We lost our way to Paradise beach and reached the road near resort. Took some local help of family ( their small boy) who made us reach Paradise beach. My wife was ready to trek back, I and my daughter went back by ferry boat. As next boat was late, my wife had reached Om beach before our boat reached Om beach.

My wife found that beach stay was in main beach and we can walk from Devasamudra beach stay to Mahabaleshwar Temple. Glad that we went that way in evening. On coming out of temple, there was rain and no electricity and hence no light on the beach and we did beach night walk back to our beach stay.

On Friday morning, day of our return to Bangalore, we drove to Jog falls on the way. The whole drive from Gokarna to Jog falls was Western Ghats and got scenic view of Sharavathy river flowing between mountains. While we watched Jog Falls from the top, no one was allowed to climb down towards the bottom of the falls.

Thanks Jason. Mike, Sarthak of West Coast Adventures. You made my day with your patience by making me complete my first dive successfully. I want to learn swimming and attempt scuba diving again. Recommend my friends to check with Jason. Mike, Sarthak of West Coast Adventures for your first scuba dive.

Do we have freedom from tech?

Some call 75th Independence Day and cherish the freedom we have. I agree that there is no British ruling India, and, in that sense, we have freedom. Do we have freedom from technology?

In last one year, there has been lockdown with perceived aim to protect people from pandemic. At the same time, Karnataka government wanted to stop migrants from travel to home towns to ensure that there are workers for the civil construction activity. Citizen’s protest lead to trains scheduled for migrants to travel to their home.  Sure, home retuning migrants had difficulty to earn money for their living, still they has the freedom to choose. On other hand, IT professionals have choice to travel and also to stay home to live their family. Should everyone irrespective for their economic status have freedom?

Arogya Setu app was made mandatory to travel by Bangalore Metro. Bangalore metro assumed that every citizen has smart phone to install apps and prevents citizens without smart phone to travel.  Are citizens forced to choose technology like mobile phone to have freedom? Some citizens went to High court to remove this draconian constraint for citizen to travel.

Today as I choose not to have Aadhaar, which is voluntary. I consider getting Aadhaar indicates that I am surrendering my rights to UIDAI, which arrives at mechanism that brings approaches for the benefits of crony capitalists to exploit my data. Should government deny my freedom to file income tax returns?  Are citizens forced to choose technology like Aadhaar over freedom and desire to pay income taxes on-time?

I am owner of my fingerprints and I can choose who to give and who not to give.  I want freedom to get Aadhaar without providing fingerprints. If Nandan Nilekani failed to create identity scheme guided by “privacy by design” principle, should I lose my freedom? Some people ask whether I gave fingerprints in passport purposes and my answer is “Yes, Do I have freedom to choose to share my data with passport systems who do not share my data and keep it secure? Do I have freedom to choose not to share my data with UIDAI who plans to sell my data and make me feel insecure”?

Today, I cannot open bank account or demat account without providing mobile number and email address.  Can I choose to transact in shares and have bank account without email address and mobile number?

Today, banks, EPFO and share transfer agents ask for Aadhaar that I do not possess and being threatened that there will be consequences if the accounts are not linke with Aadhaar. The money invested in shares and PF is my hard-earned money for which I paid income taxes. Am I denied my freedom to ownership of my own assets? Are we forced to choose technology over freedom?

Today I cannot collect my matures insurance without IFSC code. Why am I denied freedom to collect cheque for my matured value? Are we forced to choose technology over freedom?

One needs mobile number to get Fast Tag. Already, we started to forget that we are paying tolls on roads to travel between cities. Yes, we pay toll for technology, why do they need my mobile number? If we are able to directly charge fastTag number after login to our bank account? Do I have freedom to leverage activated Fast Tag without mobile number? Are we forced to choose technology over freedom?

i look forward to a world where I want to be able to choose to live without mobile phone. Some people ask me how will i communicate? I can communicate using slack, Teams, telegram, signal on my computer and can be reached via those channels. Banks and FinTech firms can reach me on email and I can reach them via online access. i do not required regular SMS updates from credit card and I can take care by noting down my expenses. I should be able to repair my family’s laptop iPhone and mobile devices easily.

Lived@hostel in college days

My elder daughter completed 12th standard, joined college, and stay in dorm from last week. While I was talking to her about her college and hostel. I felt a lot of old memories of my own hostel days coming and decided to post this blog, as means to share my college hostel life with my daughter.

My masters was at CEG, Guindy between 1996-98. Like my daughter who enrolled in to hotel without us, I enrolled in to my hostel alone. My father’s brother’s wife(Periamma) helped me to get basic items required in a hostel and reached college hostel by auto from Gill Nagar, Chennai.

The name of the hostel was “Barathidasan hostel”, for non-engineering master students and was located between two U.G hostels. The hostel building has 3 floors, 2 wings per floor. All rooms were part of the wing and there was corridor across whole wing, where we had ropes to dry clothes. At the end of the wing, common bathrooms wash-basins and toilets were present. Remember a drum to store water to support water scarcity(did not raise). The hostel costed Rs600 per semester.

My room was in the second floor. The rooms were structures to be shared with 2 fellow students and had 2 cupboard, 2 set of open shelves, 2 cots, 2 tables and 2 chairs. There were 2 windows against which table was placed and one could read being in chair and have a view of the trees and branches outside. Every room had tubelight and also a good working fan.

  • A landline phone was present in the ground floor with incoming connection. Your parents can call you and the watch men will shout your name and room number. You need to go down and attend the phone call. At time, your parents cut the call and called you post 5 minutes.
  • Alternately, students went to STD booth to make a phone call to their homes. Neither, I got a phone call from my father had a STD phone at his work and I was afraid to call my father on the same.
  • The hotel had entertainment hall in the first floor where there was TV and newspapers available. It was a lot of fun to watch TV, shared by 100+ students.
  • Students washed their own clothes in bathrooms and dried the clothes in the corridor ropes. After first month, I found that there exists a person who will get clothes washed and get them ironed( charge per cloth) and I realised this was a luxury.
  • Some neighbour rooms had their personal water heater and shared with others and we used them to heat water for bath in the winter.

The dining hall was P.G mess, far away from our hostel near Engineering master students hostel. It was a great fun to join fellow students to go for breakfast and dinner. There were great conversation and great fun. More fun when it rained. We borrowed umbrellas from each other to go to dining hall to grab food.

The food options was veg and non-veg. The mess offered breakfast at 7:30 am, lunch at 12:45 pm and dinner at 7:30 pm and had tables and chair was us to sit and eat. There were special tokens for egg and curd, one has to purchase at mess office and provided to waiters to get the same. The college campus had 2 cafeteria where we can get dosas, tiffins and snacks, opened by 7 am and closed by 7 pm. We had pepsi and coco-cola fountains which gave us glass at Rs 6 per glass.

On my first visit to Neyveli, I brought over my bicycle from Neyveli. Someone helped me load to top of bus in Neyveli. To get get cycle down in Guindy, the conductor asked me to climb on to bus top and provide the cycle down. I cycled down to CEG Guindy. I shared the cycle with my friends and still remember how I and Hari used to go to shop near IIT entrance to have bread-omlete in the middle of night around 1 am.

The best things I enjoyed in college hostel was access to Ramaujam Computing center(RCC) and friends who helped me to get campus placement. RCC was open 24 hours and 365 hours and had windows computers and linux terminals, where you can create programs and have fun. when I look back, I see as a huge privilege that enabled me learn programming.

My first year was spend with 2 other room-mates in 1996. One roomie was Saravanan who I lost touch post 1998 and possibly he would be teacher in government school(which he wanted to become). The other roomie was P.Sai krishnan very simple down-to-earth person from Vellore who had a lot of gratitude to hid brother’s decision for allowing him to do masters and very aware of his family’s sacrifice to send him to college. All three of us were part of mathematics department like me. We had a fourth unofficial roomie Palanisamy who was senior in college and stayed with us to complete his course and enjoyed sharing room wih Palani during my hostel stay.

College hostel also brought in to forth same great relationship, some lost and some nurtured over years

  • My course senior Baskar stayed in hostel, we collaborated along with Sriram to create course brochure,  presented  to IT companies so that maths dept students can attend campus placement sessions. Been in touch with Sriram, who is in IT industry and lost. Feel guilty not to be in touch with Baskar, even in today’s  social media. Been connected with Palani via Linkedin, living in USA
  • In those days when few households had a desktop computer of their own. Still remember the sharing nature of Harirajan, who had desktop computer in the hostel room and allowed interested to make use of the same. Hari, belonged to my match, came from Pondy, studied MCA, gave me confidence that I can get job in the campus placement. Been in touch with Hari and Jeeva for along time in his final year too. Met Hari and Jeeva in USA. Both visited in the first week of my daughter’s birth in Milwaukee and we visited them in Madison multiple times.
  • Thirumurugan was in my same wing, completed his doctorate to became professor in Middle East(Oman) . Reminded of Jaychandran his room-mate who woke up us in the morning and also shared his  water heater. Saikrishan, my roomie, finished his doctorate from IIT Madras and is Professor in NIT Trichy, met in last few years in Trichy. Remember that Sai and Thiru used to work with TN Entrance examination department to earn money to self-fund their studies. Thirumurugan went extra mile to provide tutions to people and earn money.
  • Gratitude to Shankar Ganesh( joined SAP), his roomate and Murugan who were MCA final years and provided me with guidance around my campus interview and clarify some programming topics.
  • Lost touch with Dharamlingam, Perumal & Meghnathan who stayed in hostel and were in maths depy. Lost touch with Jayachandran, Vijayakumar, Siva and Veerabagu, who stayed in my hostel. Gratitude to Veera for introducing me and taking me to donate blood at Cancer Institute, Adyar.
  • Some of my course girls stayed in hostel. Sandhya, Vijayalakshmi, Jeeva and Soumya. Been in touch post college with first three and all of them are present in USA. Not in touch with Soumya.

My dark year across 87-88

When I heard that one of my school mates, lost his wife during Corona, I called him and shared that he needs to take more care of his twin children than earlier. I added that father can be replaced in child’s life, still very difficult, while loss of mother is not replaceable till child’s journey to death(father may die in later years).

if you are sensitive person, please do not read this blog. it is my dark year that I spend with my father alone for most of the year. This blog is continuation of My first 11 years with my parents and starts rights after announcement of my mother’s death.

I did not know what to do. I went to my home. My mother’s body was bought in ambulance and I do not remember crying. Heard later that someone beat me to make me cry. My father started to focus on ceremonies. How will a 12year old boy grieve? I am not sure anyone understood how to take me though my grief process.

We went to Mayavarm where my fathers’ brother(Periappa) lived. My Periappa helped to complete 13-day ceremony. My grandpa visited me during the ceremony, it was new environment and every day, I have to wait to get food, till ceremony got over, 2 or 3 pm in the afternoon. My father felt that his son did not have Upanyayam so that his son can directly perform ceremonies.  At end of 13 days, I and my father came to Neyveli and my sister was admitted to school in Mayavarm

It was scary to enter to home in Neyveli. I have not been with my father alone even once. Yes I have been with my father an my mother together over weekends.  The first interaction started with scolding and beating as I could not find my pen to go to school.

  1. My father paid and asked me to eat in my uncle’s place and the food was not good for me. Some time they did not provide good food (as in my past) and there was comment that I am pampered child. Felt that my desires were ignored.
  2. My father stayed working in office very late, that sometimes I met him in the next morning when I was going to school.  A elderly from neighbor’s house used to check me at 9pm and in my father’s absence stayed with me. My father’s mother choose not to stay with us as there is no help. Occasionally, my grandpa used to visit me with snacks. Felt deserted, isolated and not cared.  
  3. Post my mothers’ death, some tantrik came home and said that there was evil planted in the home and hence my mother died. My father paid money to conduct puja in the garden. When I was alone, it used to be scary that the evil will kill me. My father would say “I may die too” and I was made at 12 years to prepare for my father’s death. How to care for scared child after mother’s death in young age?
  4. As I came back from school to open empty house and must wait for servant maid to come and clean the home.  If the maid comes late, there was no play, as it would become dark. Look back, I can say that I lost my childhood
  5. There used to be coins in the iron shelf to pay for ceremonies.  I used to take money to buy chikki and comics books and keep myself engaged in the isolated evening.  Some of my uncle’s son stayed with me and I vaguely remember being exposed to porno books. How to help child without mom for good touch and bad touch?
  6. My father went on trips to Mumbai and Delhi for close to 15 days at stretch in every trip. My father used to position new suitcase as gift for me. Possibly he did not know even what to purchase for son. In third trip (lot of cribbing), my father bought me a chess board, my first gift. Already came to conclusion “No one to care for me”.

My father did not trust me and believe me, as much as he trusted and believe others Suddenly, my father finds all the money was gone from the iron self and he enquires me . I has realized few days back that money was gone and thought my father gave it to someone. I was scared that my father would find that I spend money on chikkis and comics. When my father said that amount was Rs 2000, I was scared as I did not take that much money to spend

My father went to Delhi again and I had to stay in my uncle’s house. My uncle trashed me and hit many times and made write in paper that I took money for chikkis and comic books. My uncle presented the paper to my father on his return. My father termed me as “Thief” and I cannot pardon him even today. I did not steal from some other home. My father never enquired with me what I did with the money and what happened at my uncle’s place to have written paper. My father tried to tear my clothes and drive me away from home naked. It was scary as there was no one else at home to protect me from his trashes. He did not allow me to east food as punishment. Even now, i am made to feel ashamed and I want to let go this feeling.

Truth takes time and still comes out. I have gone to my 7th standard exam and my father has got Rs 5000 from bank and kept at home and stepped out of home. On return, he finds that Rs 5000 was gone. My father comes to school and confirms that I have bene writing exams. Then he checks neighbour who says that his daughter saw 2 boys taking something using stick from kitchen window, where money lost was present. There are marks as evidence and my neighbours daughter says that she has observed the same boys who comes to my house in last year regularly do this.   Why did my father not enquire before calling me “thief”? It hurts me even today. When my purse was pickpocketed in 2012, I did not want to ask him for money to come back to Bangalore.

If my father was little more caring and put little more trust in me, how would my life transform? My father was not able to be flexible at my Periappa’ house too. May be he did not have anyone to grieve too and doing ceremonies did not solve things. My father realised his limitation to take care of his son and now my sister too.  My father got married again. My second mother was very good to me, while she did not want anything from my father’s finances. Why was may father harsh to my second mother “Do not take role of my wife. Take care of my children as provider”? Why do men push their limitation of caring to their women in an uncaring way?

In his isolated space, my father pushed me to perform everything. My father was in control and I did everything what he asked, unhappy that my life is not like other kids. May be this if the reason that I refused to leverage my investment knowledge till I came back from USA. I did not know any goal beyond “Standing on my own legs”, independent of my father

The more my father said that ” be ready if I die tomorrow”, I started to learn more financial work for my own safety. Started projecting going to bank and selling shares as privilege that none of my friends have. The show off had its own benefits, while I was never sure how much was it real pride.