Category Archives

17 Articles

English/Ideas for better future/Technical

An idea to save Twitter from itself : InDoor

Posted by chavakiran on

Twitter is great – for celebrities, media and folks inside media.

But for common-man twitter is chaos. Nothing much to offer for them other than keeping up to date which also not possible due to its infinite chaos. Even if one follows ten people, it is impossible to feel satisfied. It is always unfinished – forcing people to run away to other social networking sites or moving on with life.

One idea to save Twitter from this self destructing nature. InDoor

Allow people to make their own twitter.

  1. Anybody can create an indoor twitter.
  2. Example twitter.com/indoor/myFamily or twitter.com/indoor/myTeam
  3. Tweets inside indoor are for members only.
  4. Every member follows every other member by default this setting can be changed either globally or per member by moderator.
  5. One can unfollow any member.
  6. One can retweet public tweets to indoor only.
  7. Once on indoor there won’t be any confusion whole twitter interface remains same, except everything now applies to indoor account. Users can easily exit indoor and go to public twitter.

This should make twitter more useful to common members who are not celebrities. This will put twitter in direct competition with What’sapp for family/friend groups + slack/teams for office groups.

Once basic structure is there – we could go on innovating much more.

English/Technical

Ideas to be tracked similar to bugs, tasks …

Posted by chavakiran on

Ideas though important, are cheap, execution is costly.

Software engineering made leaps and bounds with agile, scrum and other related innovations. But one thing didn’t get much attention is ideas. We are not tracking them similar to our other objects of a project management. They are discussed in corridors, scrum meetings, emails and chat-channels. But that’s it. It is either hit or miss. Not preserved for future. Like every cell in a human body regenerates in seven years, every team regenerates with new faces in two years. Ideas are lost to ether. Who knows one of those ideas disappeared in a blip may save the project in future?

Of course there are reasons for ideas not being tracked.

  1. They are cheap! For somebody with startup itch knows how easy it is to be flooded with ideas and how travail execution of those ideas is.
  2. Ideas are not rewarded during review cycle. May be for right reasons, ideas itself are not rewarded during review cycle. What is delivered is the only value considered for all those fat bonuses, stock options and promotions. This leads to engineers and managers alike ignore the importance of ideas.
  3. Once we start tracking ideas, it might become frenzy. If something is tracked, there will be un?-necessary attention to it.

To avoid “3” above – to stop team going frenzy we could call ideas as proposals. Now along with bugs, tasks, backlogs, features we better have a place for Proposals. In that way anybody in team could propose something and be discussed, tracked and logged for history.

English/Technical

Circle-Spiral-Galaxy approach for whiteboard to release

Posted by chavakiran on

There are two kinds of people – who are good at bird’s eye view and those good at ant’s eye view.

Bird folks are good at coming up with ideas, sub-ideas, thinking of all the problems, dependencies in reaching there; Ant folks are good at executing stuff but one grain at a time, how big the granary might be.

Now, keep both these folks in one room for whiteboard discussion and see the fun.

BTW, there are always ambidextrous folks, who can wear both the hats and context switch.

Here is a framework you can use to proceed from idea to release.

Form a big circle, write everything you can think of. organize them in whatever way you feel is suitable. This is basically your laundry list. It can include big picture design diagrams, north pole. If every dependency can be resolved, if we have infinite resources, what is that we are trying to achieve? How are we going to achieve it?

Now cut this big circle into three circles. Phase One, Phase Two, Phase Three. To be cute we can call them Milky-way, Andromeda, PinWheel. These are our short-term, medium term, long term goals.

Now each circle is to be cut into spiral with three parts. Zero, One & Two; Or Sun, AlphaCentaury & Proxima; Each one is its own release to customers. Sun could be start of life – gather data with initial POCs, perform things without dependencies, Work with dependent teams to unblock AlphaCentaury work.

Repeat this in three spirals in three small circles. We are still not actually executing project, only moving our laundry list into these galaxies followed by solar systems.

After each release revisit this and improve the same.

English/Gray Papers/Technical

etFlix Advertising revenue – an unofficial gray paper

Posted by chavakiran on

If anything the current quarter results and subsequent free fall of stock price tell, etFlix may no longer increase either subscription price or subscription base, it is time for other revenue sources. Otherwise its future is doomed. Moreover the content it is creating originally is super mediocre. Reason?: creativity is not something which can be produced by centralized managements.Β  It is altogether a different ball game, all the money etFlix could dump may not be enough for a competitive rich content.

O! and before I forget to mention, couple of side-tracks.

  1. In spite of all the head start and overwhelmingly superior engineering team presence its user’s home page plus suggestions is flawed. Even after browsing for 10 minutes couldn’t find a decent flick to watch. They only show either already watched or not interested to watch videos. They should at least have an option to hide something. Which should hide from every recommendation except hidden pieces.
  2. Prime is eating away its eye-time. It might be time to have a partnership with Costco (similar to T-Mobile) ; but Costco doesn’t get monthly 100$ average like T-Mobile. Once advertising based subscription is available etFlix may go to Costco for a partnership. It might be win-win for both of them.

Back to advertising based etFlix brain storming.

There are Six players in this

  1. Subscribers.
  2. Advertisers.
  3. Intermediaries.
  4. Sales
  5. Engineers.
  6. Advertisements

Subscribers:

You have existing subscribers and new subscribers who might come if it is advertisement supported model.

Once new advertisement based subscription comes – is it going to be completely free? Or 50% less than current price? For anybody else it might be easier but for etFlix with all its current user base this is difficult choice. If given free, current users might feel alienated, might even become vocal anti-advocates, a dangerous outcome. πŸ’‘ Instead etFlix should start with six months free for all the users who newly joined in advertising-based-subscription model, including those who got converted from any of current subscription models. This should keep current users happy and bring in new users in flocks as six months is a good trial period. After six months the subscription could be 50% less than current basic subscription. Of course this six months free can not be for-ever. It should be only for one or two quarters. Then it can be brought down to half-a-month free. Otherwise users will simply go on creating logins with different credit cards πŸ˜‰

πŸ’‘ In the initial days – we might be bombarded with new conversion requests. The service may not be ready for all those users trying to convert. Like Gmail initial invitation only method – we needed a way to tackle this problem. Robinhood’s add-to-queue is better approach. In this way we could completely control geography vs number of subscribers in new model. We could balance advertisement revenue vs loss in new subscription. So that the balance sheet at the end of quarter doesn’t look that bad in short term. This also means before we open up to users need to be ready with good advertisers.

Advertisers, Sales & Intermediaries

These are bunch of important folks. One of my MBA friends mentioned sales & marketing is a solved problem. Hopefully she is correct πŸ™‚

In-house sales team can do everything in their capacity to get more advertisers. But this is equally technical problem too. In exact words this is digital enablement problem. Same problem Google adverbs solved. Anybody can be either advertiser or anybody can be a middle-man advocating other small to medium scale players. The big players can always be handled by in-house teams. Small and medium players may not get much attention. πŸ’‘ Here is where tech comes into picture. Anybody should be able to place an advertisement. All you need is a credit card.

Engineers

Without these folks, we couldn’t build! This team needs to be top-notch, highly responsive, iterative, experienced, creative with motivated leadership team.

Advertisements

This is the most important piece of puzzle. If this can be done correctly we will have success otherwise it will be another failed project. Except Youtube nobody is adopting latest technical advantages to video advertisement.

Unlike Google, etFlix may not have much personalized data about a particular user. But it has good enough data about viewers to depend upon and customize advertisements.

Example :

  1. Region,
  2. Favorite categories.
  3. Presence of kids – number of kids, their age group.
  4. Favorite color, favorite music etc…
  5. Income range?
  6. Education range?
  7. People with similar taste.
  8. Active time, free time,
  9. Data from other third parties (legal of course)

But the advertisements itself is a big challenge. We don’t want them to be highly intrusive. Do we support skip? What is the impact of CDN caching?

Do we support text only? image only? video only? (all three is what I recommend)

How does pay works? Any extra charge if user “saves” an advertisement to view later? πŸ’‘ Obviously we don’t want users to click on it and leave our video watching. We want users to continue watching video and enjoy the same. So we need a better idea to make advertisement win-win-win for etFlix-advertisers-subscibers. Instead of click and open in new tab we could have two buttons “Save” which will save it under a tab and also sends an email to user. “Contact Me” this will enable advertisers contact user with special coupons, offers etc..

The other fact is where to keep these advertisments?

  1. Banners (either text or image of GIF (sans-audio) )
  2. Full screen video advertisements with skip option.
  3. For high width screens – like those sports advertisements we could have vertical banners come and go on the right side.
  4. πŸ’‘ Dynamic placement advertisements. We all know there are several placement advertisements inside all those original videos. But they are static (for example actors will still be eating same pizza in same pizza-shop even after 10 years, that pizza shop may now be defunct!) we could make these dynamic! So Somebody watching in USA might see coffee boards, somebody in UK/India may see Tea bill boards! This will be completely dynamic! This is a great challenge for engineering team and content creators.

That’s all for now.

English/Technical

Rules of Engagement for a software engineer

Posted by chavakiran on
  1. If you are stuck on a single problem for more than three hours it is time to call help.
  2. You work for your manager not for company. Is it?
  3. Keep your ideas to yourself until you have more around them, like useful impact for team, reasonable confidence of execution, POC & estimates 
  4. Best part of day must be spent on very important and more impacting work 
  5. Never over promise – which inevitably leads to under delivery. Always under promise and over deliver. 
  6. Tech debt vs timely delivery – always let the later win. Nobody loves a delayed but perfect release. (It may not even be that perfect)
  7. 20% of your time should be spent on something your manager is not aware at this instance. Provided you always work 20% more time than average.
  8. Consistent schedule is preferable for your health and your team’s health. Remember Rome is not built in a day.
  9. Know and understand dependencies of the feature before you write submit first draft of plan.
  10. Know your red-flags, and feel free to jump ship before they eat you alive.
  11. Every morning and evening write personal logs (as simple as OneNote )
  12. Nobody likes a smart-goblin.
  13. Always go prepared to a meeting.
Technical

The Highly Scalable system by humans is the family

Posted by chavakiran on

Β 

Apparently the highly successful high scalable system designed, evolved by humans is neither AWS nor Azure (nor Google Cloud not OCI nor FB one), rather it is the unit of family.

Imagine you are given a task to organize seven billion entities and yet –

  1. be productive
  2. be competitive
  3. be mindful
  4. survive and propagate
  5. be selfish and at the same time be helpful to other entities.
  6. etc…

Your brain is going to explode isn’t it ?

But humans did it with a simple design called the family.

Technical

Git(hub) feature request – Make Code review comments available to developers forever during their edits

Posted by chavakiran on

One of the recent trend is to minimize quantity of comments inline in code files and improve quality of comments. This caught up like fire and moving towards the danger zone of no comment-era. This is all good provided the code is written with maintenance in mind and not for short term goals of long running product to satisfy some OKR set by somebody higher up or to meet some dead line which coincidently aligns with your performance review period πŸ™‚

I am all for those learning of clean code. Good variable names, smaller classes, smaller methods, meaningful names to methods, highly readable code, lesser number of lines of code, let the compiler worry about optimizing my code etc…

But this comments is a tricky thing. when the code is written first time a lot of thought goes into it. compromises will be made, hard decisions will be made. Developers are moving intra-companies, inter-companies like crazy Salagars. All this context is lost for future developers. Now they are told more comments is bad pattern.

One natural place for all this information is code review description, self-comments, discussions. It is already happening there – just that this information is not easily available to future developers readily.

If Git(hub) can find a way to make this information available to editors (e.g.. VSCode, which already shows lot of Git history while you try to edit a code-file) it will be pretty useful to developers who are trying to fix that nagging bug and keep swearing “who the fuck wrote this shit and why?”

Technical

stringObject.IsNullOrWhiteSpace() a simple c# extension method

Posted by chavakiran on

Every time doing String.IsNullOrWhiteSpace(input) is irritating. Moreover we try to input. and look for this method in intelligence. But it won’t be there, as it is static, unless we do String. we don’t see this method.

Writing an extension method will save us this trouble.

public static class MustHaveCSharpExtensions
{
	public static bool IsNullOrWhiteSpace(this string input)
	{
		return String.IsNullOrWhiteSpace(input);
	}
}
English/Technical

c# new feature request : AutoInitListsOnFirstUse

Posted by chavakiran on

Another sugar coating – a compiler should easily generate code for this (?) without any side effects. why force people to do new boiler plate code ?

List<string> myListOfStrings;

myListOfStrings.Add(“firstString”);

This throws NullReferenceException until we do new List<string>();

The probability of it happening is more when this is part of another data class, which we initialized but forgot to look into all hose other initializations we need to do.

In case somebody want to avoid this behavior we should have an attribute to support old behavior.

[SansAutoInitListOnFirstUse]