loading...
Cover image for A look into the .NET community with a Twitter bot

A look into the .NET community with a Twitter bot

marcusturewicz profile image Marcus Turewicz ・4 min read

Disclaimer: this is not a scientific study or research. It is probably has lots of bias, so take it with a grain of salt. However, I wrote it up because I think it's interesting and hopefully you can get something out of it.

I recently deployed .NET Bot (on 14th January 2020), a Twitter bot that would retweet .NET related content, as a learning exercise in how to:

  • Create a Twitter bot and use the Twitter developer features
  • Create an AWS Lambda function to run on a schedule
  • Build an app with AWS CodePipeline
  • Deploy a stack with AWS CloudFormation

It's been over a month now and I thought it might be interesting to see how the bot has faired and look into some analytics of the tweets it has surfaced. Let's dive in!

Bot mechanics

Firstly, let's briefly go over how the bot works. It's quite simple, and has the following flow:

  1. Every 10 minutes, run an AWS Lambda function to execute steps 2-3.
  2. Using the Twitter API (via the TweetInviAPI package), get all .NET related tweets in the last 10 minutes; all tweets returned by searching the following terms: ".NET Framework", ".NET Core", ".NET 5", "dotnet" and "dotnetcore".
  3. For each tweet, if it contains the search term, retweet it and follow the user that tweeted it.

Let's now look into the bots profile and see how it's gone.

At a glance

I've prepared tables below to show some basic statistics over the lifetime of the bot (37 days).

Tweets Tweets / day
19,900 538
Followers Followers / day Following Follow ratio
354 9.6 1613 0.22

We can conclude from these stats:

  • The average number of .NET related tweets each day is 538
  • The bot receives roughly 10 new followers each day
  • 22% of people follow the bot back

So the bot seams to be doing a reasonable job in surfacing .NET related content. But what is this content and where/who is it coming from?

Deep dive

To get a better understanding of tweet content, I used this website to analyse the last 3200 tweets from .NET Bot. And here are the results:

Tweet content

To understand what people are tweeting, I looked at the word cloud:

Word cloud of .NET bot retweets

Not surprisingly, the following are heavily weighted:

  • dotnet
  • runtime
  • aspnetcore
  • roslyn

But people are also talking about:

  • core
  • mono
  • efcore
  • blazor

I also took a look at the hashtags most involved with these tweets:

Hash tags of .NET bot tweets

So "dotnet", "dotnetcore" and "csharp" are strong hashtags, and "blazor", "softwaredevelopment" and even "javascript" are present.

Tweet time

To understand when people are tweeting, I looked at a day-by-day and hour-by-hour aggregate of tweets (time is UTC):

Day by day

Day by day aggregate graph of .NET bot tweets

So most tweets are happening on Wednesday, Saturday and Tuesday. That's not surprising as Monday/Friday can be slower days and Saturday is when many people have time off.

Hour by hour

Hour by hour aggregate graph of .NET bot tweets

So tweets peak at around 05:00, then drop off and peak again at 09:00, then drop off sharply to the lowest point at 15:00 and rise again at around 20:00. It's hard to make a lot of sense of this graph because there's so many people interacting at different time zones.

Influencers

To understand who is influencing .NET content, I looked at the top influencers (people with the most followers):

Top influencers of

The usual suspects are all up there:

And the up and comers are:

Mentions

To understand who is tweeting, I looked at the top mentions:

Most mentioned users in .NET bot tweets

So a lot of tweets are coming from automated "Issue" accounts that create tweets when certain issues are created in GitHub repositories. Looking into these tweets, it looks like they are tweeting the same thing quite often:

Automated issue accounts

Summary

I built a Twitter bot that surfaces .NET related tweets. It averages 538 tweets per day and averages 10 new followers per day. 22% of people follow the bot back and it is influenced mainly by Visual Studio and Scott Hanselman. Most of the tweets are coming from GitHub issues. Given that only 22% of people follow the bot back, and many tweets are effectively duplicates, I might need to put some logic in to allow only one of the issue accounts to be retweeted - something to think about.

Also if you want to maximise your engagement with the .NET community, you might want to consider:

  • Posting on Wednesday's
  • Posting at around 05:00 UTC
  • Including "#dotnet" hashtag
  • Interacting with the top influences listed above

I hope this post has been interesting and I'd be keen to know what you think. Is the bot helpful or is it annoying? Could it be improved? It's open source so I'm always taking PR's!

Resources

Posted on by:

marcusturewicz profile

Marcus Turewicz

@marcusturewicz

Machine Learning Engineer, bassist, soccer player, .NET fan, native of the cloud and renewable energy advocate.

Discussion

markdown guide
 

This is awesome. Is there a step-by-step of how to get this up and running in AWS?

 

Thanks Karan, glad it was useful!

I don't have a step by step guide as such. I largely followed this documentation, replacing the use of CodeCommit with GitHub and the node app with my .NET app.

You can see the buildspec.yml and template.yml in the repository. You'll need to replace any values according to your AWS S3 Bucket name and Secrets Manager ARN (if you use that).

I'll might write a blog post with a guide of how to do this.