Journey to fullstack engineering.
Tags: beginners, programming, career
Published: 2018-06-23 15:51:46

---
title: Journey to fullstack engineering.
published: true
description: A product development series
tags: beginners, programming, career
cover_image: https://d2mxuefqeaa7sj.cloudfront.net/s_E6A5B68F2AE20F0779AFCC85CE4F089BBA16AA968C9C6FB4A6B43EF7A600961D_1529766118673_jefferson-santos-450403-unsplash.jpg
---
> This article was originally posted in the [legobox blog](http://medium.com/legobox) 

# Hmm fullstack 💭

In the year 2011, I started coding semi-professionally, It's a bit difficult to explain what that means though, but In essence, I was creating little projects which some individuals find interesting. I had no specific learning path in development and my strategy to learning, was almost like the Nigerian super eagles' strategy, solve your problem as they come ( as e dey hot).

This forced me to dabble in a lot of things ranging from frontend development using HTML, CSS, and Javascript, at its infancy as of then to working with PHP and MySQL for the database, or python in place of PHP when a friend recommended it. 

This is not a piece on my story, but I just want to say I never knew when I became a full-stack developer, didn't learn with a coding boot camp, never been to Andela and what's more only met the coding community in 2015, since then I learned about several other tools and technologies that enabled me to do better work. I learnt to code for the love of it, I was hooked, I still am. but then the question came to mind, 


> Am I really full-stack?

See full-stack is a bit complicated for some to believe that someone could actually embody all attributes of full-stack development, but in order to me to really bring it to view, we have to look at what it would encompass as a whole.


- UX / UI experience as a designer.
- Frontend Development and Interface implementation.
- API development and Backend Development
- Deployment, Testing, and Development Cycle management (DevOps)

In each item in this list there are several more checklists to be met, so how would one respond to a title in which each section requires several if not some really extensive understanding or knowledge in each area?


# Is the full-stack myth real?

Full-stack developers are real, yes I said it they are real, for the fact you haven't met a real one doesn't mean they don't exist, and if you've met one, then you surely know they are real, even more, I think full-stack developers go-ahead to build businesses and products because they gain an integral ability to see the entire pipeline as a whole and not just separate components. For that reason, I think there are 2 major types of full-stack engineers.


> please the following terms were coined by me and me alone, no other should be held responsible (aka, they are not real things outside of this article)


- **Single point full-stack developers** -- These developers usually know one part better than the rest, and therefore they would usually be able to communicate with teams working in the other sections. Outside of the team, they'd only take on the other sections if absolutely necessary and would usually be reluctant to even look for advancements in these sections.


- **Product focused full-stack developers --**These engineers are more product inclined and therefore find it blurry seeing a separation of concerns between the different sections, they are usually looking at the product as a whole and would usually work in order to make the best features available to the central product, these guys typically make good freelancers and may not perform well in a large team.

Yea there's a third (The Liars) - These guys are novices in every section, even the once they seem most prominent at, in the end, they are hobbyist in all areas.

So in order to become a full-stack we have to understand where we fall under, Modern day software development has opened up resource to a whole lot of tools that confuse more than they help, and full-stack development has become a real beast.



# Modern-day full stack.

A newbie looking to become a developer today is in for a real fight. but it gets easier as you go along. The repo link below gives you an insight into what it means to be a modern day fullstack developer.

https://github.com/kamranahmedse/developer-roadmap

So here’s an overview.

![](https://d2mxuefqeaa7sj.cloudfront.net/s_E6A5B68F2AE20F0779AFCC85CE4F089BBA16AA968C9C6FB4A6B43EF7A600961D_1529762946371_screenshot-github.com-2018.06.23-15-03-36.png)


In the end it all comes down to 3 major plays, 

- Frontend 
- Backend
- DevOps


![](https://d2mxuefqeaa7sj.cloudfront.net/s_E6A5B68F2AE20F0779AFCC85CE4F089BBA16AA968C9C6FB4A6B43EF7A600961D_1529763044885_screenshot-github.com-2018.06.23-15-10-21.png)


Frontend Developement comes down to the frameworks, but these are easier to understand once you get the basics down.


- HTML 
- Css
  - On the advanced side 
    - Preprocessors
      - Scss
      - Less
      - PostCss
    - Css Frameworks
        - Bootstrap
        - MaterializeCss
- Javascript.
  - The battle of the frameworks
    - React
    - Vue
    - Angular
- Testing
  - The less known tools of frontend development
    - Jest
    - Mocha
    - Karma

This goes deep. But I’m pretty sure you get the gist. Backend Development on the other hand is another deep trench.

![](https://d2mxuefqeaa7sj.cloudfront.net/s_E6A5B68F2AE20F0779AFCC85CE4F089BBA16AA968C9C6FB4A6B43EF7A600961D_1529763317692_screenshot-github.com-2018.06.23-15-12-17.png)


Backend development is really deep and would require another article to really look at what’s going on there in 2018, but a simple overview would show the following.

Backend development revolves around to sets of languages

- The Scripting Languages
- The Functional Languages

A full-stack is not expected to know all but is supposed to really understand one. With the scripting languages, we have a look at the following technologies pretty sure you’ve heard of them.

- Php
- Node
- Python
- Ruby

on the functional side we have

- Elixr
- Erlang
- Clojure
- Haskell

And there’s more development patterns and technologies with relation to APIs and request-response systems.

- GraphQL
- Oauth
- Redis
- WebSockets

We also have job and task management as well as cron job management using tools like

- Message Brokers
  - RabbitMD
  - Iron Worker
- Search Systems
  - Elastic Search
  - Sphinx

and so much more. and it doesn't stop there, there’s DevOps to worry about.

![](https://d2mxuefqeaa7sj.cloudfront.net/s_E6A5B68F2AE20F0779AFCC85CE4F089BBA16AA968C9C6FB4A6B43EF7A600961D_1529763425976_screenshot-github.com-2018.06.23-15-16-44.png)


This section deals with all factors involved in managing an application from development to deployment, this includes managing its resource system, containers and runtime environments as well as server configurations and load balancing.

So how best to describe a full-stack developer if not as someone who loves all processes involved in taking an idea from concept to launched product.



# My experiment — Becoming the product developer.

In order to answer my own questions, I have decided to take on the process of building a few products from ideas and concepts for launching them. In this process, I would share my experience building each of these and possibly certify myself with a realization that full-stack developers are at their core product enthusiasts who want to see the product becoming what it is from an idea.

My process would involve a few weeks of building products — from my personal ideas taking them from concept to design, to frontend and interface implementation to functionality (backend) and deployment/testing (DevOps).

My first Idea is code named Spectre (Project Spectre) — A deployment management system for developers and teams to manage the deployment of code from the repository to the server. At the moment I'm in the process of developing the platform and I hope to release it before September. every week, I’ll document and review the process and what it means to build a product in all respect. 

I hope for this to be a wonderful experience, never built an open project before but I’m willing to have the idea out there and would love to share my in-process and in-progress stats and review on who I go about implementing features.


# Conclusion.

Journey to full-stack engineering is targetted to help others learn and understand that full stack development isn’t as hard as some think it to be.

My Ideas might be premature, but the intentions are focused on proving the full-stack myth. As I would always say, a javascript developer who knows frontend development and uses node (javascript on the backend) and knows how to work with Nginx and docker,  can be accorded a full-stack title (there’s no diploma for these things ), but it all depends on the quality of work and knowledge.

the key is switching to a product development mindset, think of yourself as owning the idea and working with the understanding that you are looking for the best possible means of solving your problem. One step at a time.