It’s time we shifted our policy making towards such well designed programs.

It was during my IVLP that I came across the Americorps. Americorps is a voluntary public service program, supported by the U.S. federal government, foundations, corporations, and other donors.. The objective of the program is to improve lives and foster civic engagement.

Members commit their time to address community needs like increasing academic achievement, mentoring youth, fighting poverty, sustaining national parks etc. The members rewarded for their contributions through living cost stipends and education credits.

Members may be provided low financial compensation in the form of cost-of-living allowances, student loan deferment, Public Service Loan Forgiveness, and the Americorps Education Award.

The Public Service Loan Forgiveness (PSLF) program is a United States government program that was created under the College Cost Reduction and Access Act of 2007 (CCRAA) to provide indebted professionals a way out of their federal student loan debt burden by working full-time in public service.

The AmeriCorps Education Award is granted to members who are serving, part-time or full-time, in participating programs through Americorps. After completing a term of service, Americorps members are eligible to receive the education award to pay education costs at qualified institutions of higher education, for educational training, or to repay qualified student loans.

What was striking to me about the design of the program was how they had tied the rewards to education credits. What was even more striking was that the education rewards can also be transferred to your child, (including step-child, foster-child, grandchild, or step-grandchild). There are few safeguards also put in place. There are limitations on the numbers of terms an individual can serve and the maximum value of education award an individual can receive. Education credit transfer is allowed only for those who are over 55 years of age as well.

By combining service with education credits, it incentivises people to both take up service roles and pursue their education. For young adults, they get to do service roles at an age where you are most idealistic, stand to gain some professional experience while contributing and also get to reduce their cost of education. For seniors, they get to contribute their expertise and time to meaningful service roles while also affording the ability to gift education credits to their children.

Every country and society needs people, and qualified people particularly, contributing time to public service. A well designed program similar to Americorps has the potential to attract more and qualified talent to public service. I also find this education credits approach better than the one hinged on market salaries to attract talent to public service roles. Studies have also found that participation in Americorps strengthened civic attitudes and made members more likely to choose careers in public service.

It’s time we shifted our policy making towards such well designed programs.

Simple mail merge script

Using Google Apps Script I make use of mail merge a fair bit and make use of third party tools. I have also been playing around with Google Apps Script as well of late. One of the first pieces of Apps Script code I tried out hence naturally became the mail merge one.

Common email productivity mistakes

Doing things is not the same as getting things done

Happened to help one more person to get to Inbox Zero yesterday. The person had nearly 2000 mails in his inbox when we started around noon and was also in a state of feeling overwhelmed by his email volumes. By late evening, we wrapped up with a clean inbox and a sound approach worked out for managing email. Few weeks of reviews and practice should now see him consistently stay on top of his emails.

                                                                  Screenshot of email received

The exercise also made me reflect on the common email productivity mistakes that prevent people from getting to Inbox Zero.

  • Using your inbox as a todo list
  • Using your inbox as an information storage mechanism
  • Reading & responding to email as against processing emails
  • Not batching the processing and replying to emails.
  • Not relying on keyboard shortcuts and not using filters effectively

A collaboration project between Arya Murali & Sijo Kuruvilla George

This is our 20% project.

The objective at this point is to get us to write and publish what we write. All that we publish can be found in the Articles section.

We also invite others interested to collaborate with us.

The refreshing wave of web series content

We have been witnessing an increase in the amount of web series content from India in recent times. Now that production and distribution is getting truly democratised, we can expect a lot more such content. I generally enjoy watching such web series productions. From among the ones I watched, few stood out for me in terms of the subjects that they took up and its treatment. The ones that made it to this list of mine mentioned below.

  • Bang Baaja Baarat
  • Little things by Dice Media
  • Permanent roommates
  • Pushpavalli
  • 4 more shots please
  • Ladies room
  • Sex chat with Pappu & Papa
  • And our very own Mallu one, Thera para by Karikku

What I liked best was that all of these, some entirely and the others mostly, have kept its treatment of subjects to a matter of fact manner. Its the DevD approach and not the Devdas one.

There were also a few other ones that started out well but lost their way and tapered off. Girl in the city and Chacha vidhayak hai hamare come to mind. Both had an interesting story angle and started out also well, but then degenerated into insipid drama. The refreshing approach that made these web series stand out in the first place went missing.

While there are several independent video content that would have qualified the filter of refreshing subject and treatment, limiting this post to web series.

Telegram Logger bot

Sharing guidance & code for setting up a Telegram logger bot. It logs all data entered to the bot into a Google Spreadsheet.

Bot in action


  1. Create Telegram bot using botfather.
  2. Set up a Spreadsheet for logging data.
  3. Set up Google Apps Script. Copy code below.
  4. Deploy as web app. Set access to “Anyone, even anonymous”
  5. Initialise bot token, spreadsheet id & web app url values in code
  6. Set web hook by running the setWebhook() function.


  • Each time you make changes to the code, make sure your deploy as web app again (and also have the version number changed when you do so).
  • If you change the name of your sheet, make sure to have it also reflected in your code. Sheet1 is the default value of sheet in a new spreadsheet.


// initialise these values
var ssID = "1J-rID8K6DNt2jeMZ7DWOH5YA7baYKTiWl1pJ3iE"; //change this to id of sheet
var token = "5672193:AAEhKCprHAOc9XfQ4HKilPyU"; //insert your bot token here
var webAppUrl = "";//change this url once you set up the webhookvar url = "" + token;function doPost (e){

var contents = JSON.parse(e.postData.contents);
var text = contents.message.text;
var id =;
var name = contents.message.from.first_name + " " + contents.message.from.last_name;
var first_name = contents.message.from.first_name;var ss = SpreadsheetApp.openById(ssID);
ss.getSheetByName('Sheet1').appendRow([new Date(),id, first_name,text]);
sendText(id, "Added to sheet");


function sendText(id, text) {
var response = UrlFetchApp.fetch(url + "/sendMessage?chat_id=" + id + "&text=" + text);
}// run this function one time for setting web hook
function setWebhook() {
var response = UrlFetchApp.fetch(url + "/setWebhook?url=" + webAppUrl);

Improvements that can be made to code

  • Create spreadsheet through code itself.
  • Have key values set as project properties & masked.


Create Telegram bot using botfather

Deploy as web app

Select access as “Anyone, even anonymous”

Initialise project variables

set webhook by running the function

Bot in action

Deleting webhook

Telegram bots & Apps Script

I got the following error while using the getUpdates method.

Error message that was received on calling getUpdates method

This was when I was trying to locate the ID of a Telegram group by running this getUpdates method from a browser.

The solution was to delete the webhook. Ran the following piece of code to have the webhook deleted and the getUpdates method worked fine after that.

//url = "" + token;function deleteWebhook() {
var response = UrlFetchApp.fetch(url + "/deleteWebhook?url=" + webAppUrl);

Log that confirmed that webhook was deleted

Fetch link to logger spreadsheet from Telegram bot

Just made an edit to my logger code

So each time I wanted to take a look at the data being logged, I had to retrieve the spreadsheet link. And each time I had to do this, I was going to my browser and locating it based on past history, or going to drive first and locating from there by searching. This involved few steps (minimum 3) and switching platforms / views. Now this is cumbersome. And I find myself not checking out the logs not as much as I would have loved to. Each time I think of checking logs, I also think of the steps / effort involved and involuntarily postpone to later.

Key approach to productivity is eliminating steps — however small or effortless it may be

Since the logs were being crated from the bot, it made sense to have the link also be easily retrievable from the bot itself. To enable this, added a small piece of code (provided below). So if the text inserted is “link”, the bot will fetch you the link to the spreadsheet.

if (text === "link")
sendText(id, '');
sendText(id, "Added to sheet");

Locating ID of a Telegram group

You can do this by making use of the getUpdates method

Entering the below code into any web browser immediately after adding the bot to the group. You will be able to locate the ID from the resultant JSON response.

Note that the group ID will always be a negative value.

20% project Telegram group details

The curfew has been broken

The best news from last week

It was few years back that I had come across this campaign titled “Break the Curfew” by the students in my alma mater, CET. What was most impressive about the approach was that they had tied their demand for extension in hostel timings to scholastic outcomes. This was both brilliant — both in terms of an insight and also as a strategy. They had struck a very compelling narrative and campaign angle. It’s also textbook foot in the door approach.

While in an ideal world, social justice principles would alone dictate that the hostel timings of girls be in line with that of boys, in the real world your ability to have such social justice based practices implemented grows manifold when you also base your arguments in such compelling narratives that appeals to the self interest of all stakeholders. Once such compelling narratives take shape and catches the imagination, it is only a matter of time. I remember having a similar feeling when I first came across this library timing narrative which served as the the basis of the Break the Curfew campaign.

My efforts to find more about the campaign and the people behind it back then had led me to this smart and spunky girl named Aiswarya. Based on my conversations with her, I can convey that the narrative was not just a campaign tactic. The arguments & narratives stemmed from a absolutely basic and deep understanding of how much this hostel timing adversely impacted their professional life outcomes. I vividly recall being impressed with her understanding of the problem, the thoroughness of their research, her ability to articulate arguments well, the maturity of their campaign approach and the tenacity of her pursuits.

And just a few days back I receive this from Arya. The best part also being these words in that letter / Government order:

Since the lab and libraries are open till 9pm and boys are allowed to be out till 930pm, girls of College of Engineering, Trivandrum are also allowed to return to the Hostel by 930pm.

The curfew has been broken. The 630pm one for now.