Full-stack Developer

How many times have you heard your friend saying – “I am looking for a Full-stack developer, but couldn’t find a single one. Do you know someone?” And you might have left wondering what is this “Full-stack” now? Let’s understand this term.

What is a Full-stack developer?

Full-stack developer essentially means a developer who knows and can develop backend as well as frontend functionalities of a web or mobile application. In the current age, where almost all the applications are web and mobile based, it has become important for teams to have a person or persons who can work on various aspects of the application. Such developers tend to know several things about developing mobile or web application. However, they are not necessarily master in every aspect of application development. Their knowledge about overall application helps the teams to do right things from beginning to end and hence such developers are valuable resources.

So, what all things a Full-stack developer is expected to know?

Full-stack developer
Full-stack developer Representative technologies

Although there is no concrete list of things, following areas are expected to be known by a Full-stack developer:

  • HTML/CSS
  • Javascript/JQuery
  • Bootstrap
  • Backend application languages such as PHP, Java, Django, Ruby, Python
  • Databases including NoSQL, OLTP, and OLAP
  • Web application architecture
  • Infrastructure configuration on cloud (AWS, Azure)
  • Conversant with development methodologies such as DevOps and Agile (including relevant toolchains)
  • Source Control tools such as git

This person needs to be aware of several things – how various technologies, components work with each other? Which platform would be better for the requirement at hand? Which tools would give most productivity? etc.

Are you a such a valuable developer? Let me know in comments!!

Related Link:

Related Keywords:

DevOps, Agile, Web Developer, Backend Developer

 

DevOps

And here is another buzzword – DevOps. This term is coined using “Development” and “Operations” together. Typically “Development” includes development and testing teams both. Whereas “Operations” include the system administrators, infra engineers etc who maintain the dev, testing, and prod environments.

What is DevOps exactly?

It is a set of practices which attempt to reduce the friction between the dev team and the Ops team. This essentially means culture change for both the teams – Dev and Ops. Both teams need to work towards a common goal of “Enabling business”. From one angle, both these teams are working against each other – Dev bringing in the change and Ops resisting the change to keep the environment stable. This perspective forces these two teams to work in silos whereas DevOps practice forces them to work together.

DevOps Cycle
DevOps – Credit: By Kharnagy (Own work) [CC BY-SA 4.0], via Wikimedia Commons

How does DevOps break silos?

It changes the culture in both the teams to follow certain practices:

  • Engage Early, Engage Often
  • Talk
  • Involve each other
  • Invite everyone to stand-ups and retrospectives

It also focuses on automation and monitoring a lot. Builds, testing, deployments, system configuration, Monitoring etc. With this kind of automation, any kind of issues get detected early and get fixed early. Complete set of tools have got built to enable teams to perform in this manner. Some of the tools are – Chef, Puppet, Vagrant, Jenkins, Dockers, Ansible etc.

DevOps Ecosystem

Take look at the map below. You would get a fair idea how developed this ecosystem is.

 

DevOps Ecosystem
DevOps Ecosystem

Comparison of DevOps with Agile

Both these terms are related and have a lot of overlap. At the same time, they have certain differences. Agile methodology gave rise to automated builds, test automation, Continuous Deployment and Continuous Delivery. With DevOps, Operations related things such as configuration management, monitoring, metrics etc got included in the whole process. So in a way, one can say that DevOps is an extension of Agile.

Related Links:

Related Keywords

Agile, Continuous Delivery, Continuous Deployment

Node.js

Let’s know about a leader in event-driven architecture – Node.js. This is an open source and cross-platform runtime environment built using JavaScript for server-side script execution. Javascript was historically used for script execution on the client side (i.e. browser). However, this environment allows developers to use the same language on both sides that server side as well as client side.

Why is Node.js so popular?

Node.js gained popularity because of the ease of doing simple tasks and the scale that this environment can provide. It implements the event-driven architecture and async I/O. That means, whenever a client requests data, an event is added to the event queue. An Event loop constantly picks up the events in the queue. If any request can be responded to, without any blocking operations such as reading data from file system or database, it is responded immediately. If the operation is time-consuming as in case of DB operation, the event is handed off to the internally maintained thread pool and a call back is registered for this event. While the thread is executing the code in the backend, the main thread is free to process next request. This increases the throughput of Node.js server tremendously. When the DB operation is completed, the response is passed on back to the client through the callback mechanism.

Node.js model
Node.js representation. Source: https://strongloop.com/strongblog/node-js-is-faster-than-java/

Since there are already quite a few articles available on this subject, I am going to list them here for your ready reference:

 

What are the common use cases for Node.js?

Whenever you are intending to have a constant connection between server and client, Node js becomes one of the candidates. Typical examples are – a chat server, online game, Streaming etc.

Some trivia about Node.js

  • Created by Ryan Dahl in 2009
  • Uses V8 Javascript engine by Google (which is also used in Google Chrome)
  • Cross-platform – runs on Linux as well as Windows.
  • Outperforms Apache + PHP and rivals the performance with Nginx.

Related Links:

Related Keywords:

Ruby On Rails, Django, Apache, Nginx, Event Driven Architecture (EDA), Software Architecture, Non-blocking I/O, Async I/O

Sentiment Analysis

With the increased penetration of internet and mobile, user-generated content is growing at a rapid pace. Also with a cut-throat race to acquire a customer or even to retain a customer, every brand or company needs to understand what their customers are saying. People write their reviews on various websites, facebook, tweet about it or post photos with comments. If brands or companies want to understand if their brand is being talked about in a positive way or a negative way, what they need is to carry out Sentiment Analysis on this data.

Sentiment Analysis
Sentiments – Any Guesses?

But, what is Sentiment Analysis?

As the name suggests, it is the analysis of data to find out what that data is representing. Are there more happy emotions or sad emotions or there is anger. The Sentiment Analysis tools capture data from various sources. Various types of algorithms are run on this data to identify the emotions appearing in the data. Natural Language Processing (NLP) and Machine Learning (ML) are important backbones of this analysis. NLP allows the tool to process human language. ML allows the tool to learn various moods appearing in the data.

Challenges

Humans have weird ways to express themselves. When someone says “Wow!!”, it could mean real appreciation or it could mean sarcasm. We also say “Hating <brand> is not really my thing” – which may be a positive comment about the brand.  Or when we say “He was so aggressive, but then I used to like him” – it represents mixed emotions. “I really love my phone, and I’d hate to lose it” – two different emotions about two different entities. And I can go on and on. Hence the tool has to learn all such variations and then come up with a score which would help the brands and businesses to improve their services. Or such score could also be used to create a marketing plan around the emotions.

The tool analyses words, context, the frequency of words, their occurrences with other words and then starts giving you insights. Take a look at the data gathered from tweets during Chennai Rains in 2015.

You can read the full analysis and see how sentiment analysis could be useful even during crisis situations. Or take a look at data that was analyzed on World Book Day about two biggest e-commerce players (then!!). As you would see, the analysis suggests a marketing plan based on the Sentiment Analysis.

Related Links

Related Keywords

Natural Language Processing (NLP), Machine Learning, Supervised Machine Learning

RFID – Radio Frequency Identification

Radio Frequency Identification i.e. RFID is now a widely used technique and many might have even used it. But how many of us understand the technology behind it? Let’s learn a bit more about it today.

Warehouses typically use RFID
Warehouse Operations Using RFID

How does RFID work?

This technology consists of two parts – a tag and a reader. An RFID Tag is a small object which could be attached to objects that need to be tracked. These tags store some information in a non-volatile memory. This information could be permanent (Read Only) or could be changed using writer devices. The second part is the reader. It is a device which reads the data stored on the tag. The reader sends some signal to the tag and in response to that signal, the tag sends back the data stored with it. This process is known as “interrogation”. The signal that reader sends is a Radio Wave having a frequency between 120kHz and 10GHz.

Typical Use Cases

  • Animal identification
  • Warehouse Stock Identification
  • Promotion Tracking
  • Passport
  • Libraries
  • Payments at the toll booths

Use of RFID tags is growing globally and new use cases or needs are getting addressed.

NFL (National Football League) is using RFID tags on various sports accessories such as football and shoulder pad to collect a lot of data about the game. The data includes parameters like speed, acceleration, deceleration, location etc. Also, this data is captured 25 times per second. This would give a lot of insights to the trainers/coaches as well as to the fans of the NFL.

This type of data collection is possibly done using RFID Tag of type Active Reader Active Tag system. In this system, the readers are set to collect data from a specific interrogation zone so that data collection is strongly controlled.

A drone has been developed by researchers which can read RFID tags in a range which is few hundred square feet, instead of usual few feet range. This could be of significance for large warehouses such as Walmart or Amazon. It could potentially save several thousand dollars and person-hours in finding missing items.

In another significant area of Healthcare, RFID tag has been developed which could read vital body parameters such as heart rate and blood pressure. One central reader can receive data from as many as 200 RFID tags. This could improve the response by the medical team during large-scale emergency situations.

RFID is here to stay and become more and more mainstream.

Related Links

Related Keywords

Radio Waves, Barcode, Big Data, Wireless Communication, NFC