What's a full stack developer?

Oct 24, 2013 | Comments

In simple terms, an all rounder over every aspect of the development phase. These group of individuals are the ultimate hire of every tech company. But what does being a full stack developer(FSD)mean?

A FSD is someone with familiarity with each layer, if not mastery in many and a deep love for technology. This means they view things in the general, broader picture and thus, able to make life easier for the users they serve.


Hosting Environment

  • Involves understanding the servers, network and environments of applications.
  • Appropriate use of the file system, cloud storage, network resources
  • Application scalability given the hardware constraints
  • Multi-threading and race conditions
  • Calibrate the system to provide useful error messages and blogging capabilities.

Data Modelling

  • Create reasonably normalized relational model, complete with foreign keys, indexes, views, lookups tables, etc.
  • Familiar with concept of non-relational data store vs relational data store
  • If business logic is flawed, strange codes will result to cover corner cases

Business Logic

  • Deep understanding of the value in which the application provides
  • Solide object oriented skills
  • Familiarity with supporting frameworks

API layer / MVC Architecture

  • How the world interacts with the business logic and data model
  • Use of frameworks is a must in modern developments
  • Write clear, consistent, intuitive interfaces
  • Understanding of repeatable automated process for building the application, testing it, documenting it, and deploying it at a scale

User Interface(UI)

  • Skilled in creating a readable and user-friendly layout. Implementing a good visual design is key
  • Mastery in HTML5/CSS.
  • Good knowledge in Javascript and related frameworks

User Experience(UX)

  • Deliver optimal user satifaction
  • A FSD is proficient in reviewing a process that needs 8 clicks and 3 steps, and reduce to 1 click.
  • Write useful error messages, such that an average user can understand and act upon them. Don’t ever make your user feel stupid.

Adapting to needs

  • Understanding the needs of your customer/user. This layer is probably the least explored for developers, which is too much of a hands off role.
  • FSD can comprehend what is going on in the real situation and strong knowledge of the business.

Where do i stand here?

Throughout my university education in computer science, we had only been taught to explore in the following areas: 2. Data Modeling 3. Business Logic

without much regard for other areas of being a FSD. It seems clear from this point of view that many graduates are finding it difficult to finding a good fit for their skills in their company and often fail to comprehend the greater purpose of their work at the company level. From my entrepreneurial pursuit, working on Shapify.asa for about 4 months now, i have dived into areas 1, 2, 3, 4, 5. This level of work made me see the greater picture and the purpose of web development since my university days. Looking at the big picture: that’s what makes entrepreneurship so cool.