Tuesday, May 2, 2017

Democratization of Technology

Democratization of Technology


Most of us think that work life earning may not be sufficient for old age, or say, will have meager valuation in the next 20-30 years. On top, People are concerned about losing their jobs due to technology-assault and super-speed automation.
How much of this will prove to be true? To find this, I conducted detailed research and published few papers. This blog is synopsis of all.

Fast Forward: year 2035 - 2040

Two factors will impact our earning capacity (rather negatively):
  1. Rapid automation & Artificial Intelligence
  2. Socio-economic imbalances across geographies

 Two factors that will reduce the cost of livelihood (positive effect):
  1. Democratization of Technology
  2. Government intervention - socialist economy
There shall be continued tussle between both sets of factors (above).


Automation and AI is no longer buzz word. Effects are visible across the board, will spread to every possible sector eventually. Despite best efforts by society champions (read politician), socio-economy divide will continue to hound masses. In anticipation, countries like Finland and Canada are running experiments to pilot the idea of "universal basic income" — the unconditional provision of a regular sum of money from the government to support basic living irrespective of employment status.

This blog is dedicated to the argument “Democratization of Technology” - which means, access to 'technology-endpoints' (products and services) will plummet  abruptly, rendering it almost FREE.

As a Business Leader, understanding of this trend and its implications is important. Because, this is connected to Customer buying behavior and how it will transition in the next 10, 20, 30 years.

Cnsumer Spending Pattern
A recent UAE government data* as well as IMF report* (July 2016) show similar patterns in household spend distribution. As expected, housing takes the lion share at 40%, 13% on Food & Beverage, 10% on Transportation, 6% on healthcare, and 5% on Entertainment. In other words, about 74% of UAE residents' expenditures go to housing, food, transportation, health and entertainment.

*Ref - http://www.dubaichamber.com/whats-happening/chamber_news/dubai-chamber-analysis-shows-uae-retail-sector-growing-5-each-year-through-2017
*Ref - https://www.imf.org/external/pubs/ft/scr/2016/cr16251.pdf

Spending habits around the world tell a pretty consistent story — we tend to spend money on many of the same basic products and services. Based on IMF data from four large economies: USA, UK, China, and India, majority of expenditures are in these top 6 categories:
1.     Housing
2.     Food
3.     Transportation
4.     Healthcare
5.     Education
6.     Entertainment

Now, think... what if the cost all the above 6 items plummet with time. There is compelling case behind this hypothesis, which I shall come back after next 2 paragraphs.

Technology Democratization and Price Plunge

It is not the first time, this will happen. 
Example - Telecommunication:
IMF 2000 millennium data shows - on an average a typical household spent 7% of its income on communication. With the advent of WhatsApp, Skype, Hangout, Facetime etc. this is practically free for anyone carrying the most basic smartphone and internet connection. We democratized communication channels. Whether you are a billionaire or a poor on road, has same quality of communication service – FREE.
Ref: https://www.imf.org/external/country/ARE/

Example - Tuition / Education:
Google, Wiki, Stanford-web, MIT-web, Khan academy (and many similar) give 100% free access to top quality education content. 20 years back, quality education was luxury.  Today numerous free tutorials are available on information highway with the click of button. We democratized access to knowledge.

One can think of many similar examples – On the consumer front, examples are photography, publication, entertainment, job market etc. that were accessible only to rich before, is nearly free now. On the business front, there are players who have democratized the once monopolistic nature of businesses – AirBnb x Hotel industry, Uber x Taxi.

In fact, as we speak… we are actually using more a million dollar stuff Free. We have taken them for granted. 

This is How –
See chart below. Most of us would have purchased these products and services some point in time. Those in 40s and 50s can relate better. Combined cost is nearing 1 million USD. Today every one of us are using same product and services – almost Free. So strange, in todays’ world we do not value these at all. Our expectations have changed, rightly so because in a democratic paradigm things are taken for granted.


Ref – Data from https://singularityhub.com/

I. Housing

Think about what drives high housing costs. Why does a single-family apartment in downtown cost $10 million, while the same square footage on the outskirts of city can be purchased for $100,000?

Location. Location. Location. People flock to high-density, desired areas near the jobs and the entertainment. This market demand drives up the price.
Housing sector will democratize for two reasons: The first reason is because of two key technologies which make the proximity of our home to our job irrelevant, meaning one can live anywhere (specifically, where the real estate is cheap):
(a) Autonomous Cars: If your commute time can become time to read, relax, sleep, watch a movie, have a meeting — does it matter if your commute is 60 minutes?
(b) Virtual Reality: What happens when your workplace is actually a virtual office where your co-workers are avatars? When you no longer need to commute at all. You wake up, plug into your virtual workspace, and telecommute from the farm or from the island of Azure.

The second technology drivers are robotics and 3D printing, which will democreatize the cost of building structures.
3D printing has slowly gone from a curious novelty to a totally viable option for creating all kinds of useful things, from chocolate to athletic shoes, and now MIT has invented a way to use the technology to print buildings, too. Given that most 3D printing takes place inside a sealed box, it might be a bit hard to imagine exactly how a structure could be built in such a way, but as you’ll see it can most definitely be done. (MIT printer picture below).





A number of players in the market are now exploring how 3D printed structures and buildings can dramatically reduce the cost of construction and the amount of time it takes to build a building.

WinSun in China was first to 3D print an entire building, the building was non-functional though. Recently Dubai launched world's first fully functional 3D-printed building (see picture below).




II. Food

FPO and USDA data suggest that the cost of food cooked at home has dropped by 55%. (Cost of food in restaurant has however increased for obvious reasons).

Additional gains will be made as we learn to efficiently produce foods locally through vertical farming (note that 70% of food's final retail price comes from transportation, storage and handling).
Also, as we make genetic and biological advances, we will learn how to increase yield per square meter.
III. Transportation

The automotive market (a trillion dollars) is being democratized by startups like Uber. But this is just the beginning. When Uber rolls out fully autonomous services, your cost of transportation will plummet.
Think about all of the related costs that disappear: auto insurance, auto repairs, parking, fuel, parking tickets. Your overall cost of "getting around" will be 5 to 10 times cheaper when compared to owning a car.

This is the future of "movator as a service."
Ultimately, the poorest people on Earth will be chauffeured around !

IV. Healthcare

Healthcare can be roughly split into four major categories: (i) diagnostics, (ii) intervention/surgery, (iii) chronic care, and (iv) medicines.
(i) Diagnostics: AI has already demonstrated the ability to diagnose cancer patients better than the best doctors, image and diagnose pathology, look at genomics data and draw conclusions, and/or sort through gigabytes of phenotypic data… all for the cost of electricity.
(ii) Intervention/Surgery: In the near future, the best surgeons in the world will be robots, and they'll be able to move with precision and image a surgical field in high magnification. Each robotic surgeon can call upon the data from millions of previous robotic surgeries, outperforming the most experienced human counterpart. Again, with the cost asymptotically approaching zero.
(iii) Chronic/Eldercare: Taking care of the aging and the chronically ill will again be done most efficiently through robots.
(iv) Medicines: Medicines will be discovered and manufactured more efficiently by AIs and, perhaps in the near future, be compounded at home with the aid of a 3D printing machine that assembles your perfect medicines based on the needs and blood chemistries in that very moment.
It's also worth noting the price of genomics sequencing is plummeting (as you'll see below, at five times the rate of Moore's Law). Accurate sequencing should allow us to predict which diseases you're likely to develop and which drugs are of highest use to treat you.

V. Education

Education has already been democratized in many respects, as most of the information you'd learn in school is available online for free.
Coursera, Khan Academy, and schools like Harvard, MIT and Stanford have thousands of hours of high-quality instruction online, available to anyone on the planet with an Internet connection.
But this is just the beginning. Soon the best professors in the world will be AIs able to know the exact abilities, needs, desires and knowledge of a student and teach them exactly what they need in the best fashion at the perfect rate.
Accordingly, the child of a billionaire or the child of a pauper will have access to the same (best) education delivered by such an AI, effectively for free.

VI. Entertainment

Entertainment (video and gaming) historically required significant purchases of equipment and services.
Today, with the advent of music streaming services, YouTube, Netflix and the iPhone App Store, we're seeing an explosion of available selections at the same time that the universe of options rapidly demonetizes.
YouTube has over a billion users — almost one-third of all people on the Internet — and every day, people watch hundreds of millions of hours on YouTube and generate billions of views.

Tuesday, April 18, 2017

What is FULL-STACK and Who is a Full-Stack Developer ?


While giving a classroom lecture recently, a student asked me the question, What is Full-Stack and how can she become a Full-Stack Developer. 

Arguably, this was not the first time someone asked this question… similar queries are taking rounds  already in minds of thousands of aspiring developers.  Well... I thought this is time I should put my 2 cents.

Normally people answer – A Full-Stack developer knows all stacks of technology. But when confronted with deeper questions like what is the definition of Stack in today's world? Who can be a potential full-stack developer? or what can one do to become a full-stack developer ? we are lost in complexity.

To explain this, let us first understand - What is the expected output from a Full-stack Developer ?

Historically, the term “full-stack” is associated with those developers who are comfortable working with both back-end and front-end technologies. This does not stand true anymore. A person with the knowledge of Databases, PHP, Javascript, HTML, CSS and surrounding technologies to make a website work should not be designated as Full-Stack worthy.
The idea of a “full-stack developer” isn’t about being fluent in every possible technology there is; because, specialization exists for a reason. It’s more about having an understanding in each of the stacks, to communicate intelligently among team members and come up with a working prototype quickly.
A typical stack is below (source: google image)


Full Stack Developer NOW vs 13 years (2004) ago
I have picked 2004 for a reason, because it was then when my class-mate and dear friend Sundar Pichai <Google CEO> first time unearthed the fact (at least first time for me) that End User Interface/experience design is the key to any software development, a good developer should start his/her work from there, then backwards all the way to data and process flow.
12-13 years is a very long time in technology space. 2 major event occurred in those years (2004/5):  in 2004 PHP 5.0 was released, and 2005 Javascript embraced ECMA-357. This changed almost everything.
Back then, a good web developer knew a pieces of Javascript, HTML, CSS and some procedural PHP. Some also knew Linux. In came PHP 5.0 that gave us OOP support properly, which eventually allowed developers fulfill Sundar’s prophecy. The LAMP (Linux – Apache – MySQL – Perl/PHP) stack was all the rage in those years, with little or no alternative. In the early 21st century if somebody used version control they were considered either technological heretics or wizards. Today it’s unheard of and laughed at, if not using one.
Today, we are staring at 2018 and beyond. To me, a Full-Stack Developer is -  
  • good in at least one technology at every stack
  • should have awareness of capabilities of peer technologies, and how to use them
  • comfortable in picking/learning any peer technology, when need arises

So, let’s try to break down and categorize the technology stacks that I think are required from a full-stack developer today:
  1. Customer centric Web Design
  2. Technology for Customer Devices
  3. Tools to develop Web pages, Flows
  4. Technology to keep and serve Assets and Data
  5. All the nut-bolts - System Administration

1. Customer centric Web Design
The business aspirations of future tells me that, this is the most important area. This area continue to expand, eventually blurring the distance between a Computing and Human interfaces due to rapid automation. 

This will continue to become complex as Human-Computer Interaction (HCI) evolves. Technologies include:



  • HCI (Human Computer Interaction)
  • Converting website design into front-end code
  • UI 
  • UX
  • Map
2. Technology for Customer Devices


Here comes the fun part. Fun, becuase this is the entry point for majority of Web developers today. Many learn these during college days... at least a part of it. 
Needless to add... this stack is the backbone of Web site presentment. Here, the developer converts business logic to its visual representation. If you want to produce an enterprise class website, you’d better know these and all their annoyances.

In addition to front-end technologies, a full-stack developer also understands what is possible and what not to create with the constraints of HTML / CSS / Javascript and design accordingly.
JavaScript was sneered in the early days. I personally learnt Javascript afyer mastering Java/J2EE,  but very soon realized that I can only do so much on the html page. Many had same feeling those days.. But Today, as we know, Javascript has grown into one of the most popular and powerful languages. New methodologies and frameworks are popping up each month - Bootstrap, MVC, MVP, MVVM, MVP, Express, Angular, Knockout, Meteor, React, Ember, etc. you name it. This stack inclde these technologies:
  • Semantic Web: HTML 
  • iOS, Android
  • Hybrid: PhoneGap, Appcelerator
  • CSS / CSS3: LESS, SASS, Media Queries
  • Responsive design
  • JavaScript: jQuery, AngularJS, Knockout, etc.
  • Mobile devices and Browser compatibility
  • AJAX, JSON, XML, WebSocket

Alongside HTML, CSS, Javascript, a full-stack developer should also know about responsive design and how to work with media queries and CSS pre-processors like LESS, SASS. It is good to know how to communicate with the back-end via AJAX or WebSockets.
3. Tools to develop Web pages, Flows

Today, I will never hire a developer who does not use a version control, even if s/he is a solo developer.
With virtualization tools, having separated development environments on a per project basis is kind of mandatory. They are easy to set up with VirtualBox and Vagrant the least. However, With Vagrant you also need to know the basic syntax of Ruby and shell scripts as well.
(I shall write a separate blog just to cover the virtualization topic. There appears to be lots of parallel definitions going on - probably all correct in their context)
The barrier of entering the web development industry as a web developer remains low, but  getting increasingly complex. Complexity grows, for example if you want to set up Vagrant , then you need to know Ruby’s syntax, as simplified as it is or if you want to manipulate DOM elements, jQuery is a good to know technology.
The dynamic nature of the whole industry makes requirements shift often to the most popular and “next best thing” tools and programming languages.

  • Version control: Git, SVN, Mercurial
  • Troubleshooting techniques
  • Virtualization: VirtualBox, Docker, Vagrant


4. Technology to Keep and Serve Assets and Data
Apache and Nginx are basic norms. A full-stack developer should know how to set up these applications and serve the contents of his/her website.

NodeJS or PHP or Ruby (or similar) is what needs to be mastered on a high level.

In addition to web server and programming languages, database management is also a requirement for a full-stack developer which in itself is another beast. This is the place where scalability and performance plays vital role.

Relational (such as MySQL, PostgreSQL) vs non-relational databases (like MongoDB, Redis or Cassandra) are differences the full-stack developer needs to know, along with knowing the syntax of XML / JSON. Technologies:
  • Programming language: PHP, NodeJS, Ruby. <This list is very long here>
  • Web servers: Apache, Nginx
  • Database: MongoDB, Cassandra, MySQL, Redis, SQL-JSON

5. All the nut-bolts - System Administration

Most of the Internet is powered by Linux; it’s a de-facto operating system for web development. A full-stack developer is ecpected to know how cloud hosting works. e.g. Amazon,  GC, Rackspace or other providers and its APIs.

Search is an integral part of most websites – a developer should know how to set up and use search servers such as Sphinx or Elasticsearch. This part is relatively easy

Caching is also very important, Varnish, reverse proxy, Memcached and opcode caching. Technologies:

  • Linux and basic shell scripting
  • Cloud computing: Amazon, Google Cloud, Rackspace, etc.
  • Caching: Varnish, APC / OpCache, Memcached
  • Background processing: Gearman, RabbitMQ, Redis, ØMQ 
  • Search: Solr, Elasticsearch, Sphinx
  • Monitoring: Nagios
  • Security: SAML 2.0+, Certificates

Whooshhh... so much to learn… one can ask… Is it worth becoming a full-stack developer ?
I may have gone overboard while mentioning technologies within a stack, but believe me sooner or later you would want to know, if you want your website to be world-class, scalable and secure.
These herd of people are rare breed and hence in great demand. They will continue to be in super demand because for every decent size web project, I would want to be at least one Full-Stack Developer in the team. The person need not necessarily be the team-lead, because managing or leading a team is a different kind of skill.
Some good news though; with many of the mentioned technologies a developer can get away with not knowing to code or use, such as Ruby or specific JavaScript libraries, but s/he must know their capabilities. 

What about Full Stack 'Architect' ?
One can quickly suggest that if someone knows so much… s/he must be an Architect... not merely a developer.

In my view… There is at least one major skill that differentiate Full-Stack Developer and Full-Stack Architect… that is - Business acumen, cost consciousness, time criticality. A well-developed beautiful web site is termed failure if it cannot attract target customers, cannot generate revenue. I shall write a separate blog just to differentiate between two.