Full Stack developer

Full stack developer

25 November, 2014

But what is a full stack developer? My definition is: A developer with knowledge in all technical layers composing a development solution stack.

I don’t mean that this developer must be a master on all layers but being comfortable and familiar with those technologies is a plus.

But then, what is a stack? as defined in Wikipedia: Is a set of software subsystems or components needed to create a complete platform such that no additional software is needed to support applications.

We can take a simple stack structure:

A good example of development stack using the structure proposed is LAMP:

  • Front end software: HTML, CSS and Javascript.
  • Browser: Google Chrome or Mozilla Firefox.
  • Back end software: PHP (P)
  • Webserver: Apache (A)
  • Database: MySQL (M)
  • OS: Ubuntu Linux (L)

I’d like to point out now a list of terms and technologies that a full stack developer should know. Of course I may have forgotten many other technologies, I cannot list all of them because there are many and many to come in the future.

System administration

  • Linux and basic shell scripting: Bash, Shell
  • Cloud computing: Amazon, OpenStack, Heroku
  • Background processing: Redis, Gearman
  • Search: Elasticsearch, Sphinx, Solr
  • Caching: Varnish, Memcached, APC
  • Virtualization: Xen, VMware, KVM, Docker
  • Configuration management: Puppet, SaltStack, Chef
  • Monitoring: Nagios, monit, munin, Cacti

Web development tools

  • Version control: Git, Mercurial, SVN
  • Virtualization: VirtualBox, Vagrant
  • Integrated Development Envirnoment (IDE): Eclipse, Brackets

Back-end tech

  • Web servers: Apache, Nginx
  • Programming language: PHP, Ruby, Python
  • Programming frameworks: CodeIgniter, NodeJS, Django
  • Database: MySQL, MongoDB, Cassandra, Redis
  • Continuous integration: Jenkins, Buildbot
  • Syntax: SQL, JSON

Front-end tech

  • HTML / HTML5: Semantic web
  • CSS / CSS3: LESS, SASS, Media Queries
  • JavaScript: jQuery, AngularJS, Backbone.js
  • Communications: AJAX, WebSocket
  • Syntax: JSON, XML
  • Browser compatibility
  • Responsive design

Design

  • Converting website design into front-end code (PSD to HTML)
  • User Interface (UI)
  • User Experience (UX)

As an extra, I’d like to add the latest in the mobile world.

Mobile technologies

  • iOS: Objective-C, Swift
  • Android: Java
  • Hybrid: PhoneGap, Appcelerator, Sencha

Conclusion

There are many languages, technologies, practises…around software development in a stack structured way. This is the cause why software development teams are so mixed; a only person cannot know all of them at once.

Next time you’ll check out a website or slide on your favorite mobile app, you’ll remember how many logic and layers are involved.

Here another interesting link to read.

    Tags: , ,

    Leave a Comment