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:
- 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.
- 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
- 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
- HTML / HTML5: Semantic web
- CSS / CSS3: LESS, SASS, Media Queries
- Communications: AJAX, WebSocket
- Syntax: JSON, XML
- Browser compatibility
- Responsive 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.
- iOS: Objective-C, Swift
- Android: Java
- Hybrid: PhoneGap, Appcelerator, Sencha
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: definition, development, it