What is it like to be a Full Stack Developer (2018)

Michael Charles Chambers
Digithun
Published in
4 min readMar 27, 2019

Full Stack is a Job revolve around all areas of development and deployment process (most the time). Being one has to be ‘Jack of all Trade’, does not exist!. Depending on what kind of stack you are using; my version is, (React, Kotlin, GO, Node, Postgres, Mongo).

Working with fellow Full Stack Dev’s is always a challenge. Depending on their background. A Dev that comes from a large company will be DevOp oriented mainly get the job done as systematically as possible, while startup Devs are more focused on getting the job done the fast — dirty way. Neither is good or bad, everything always comes down to a discussion.

Being Full Stack means you got to learn something new all the time! The whole Idea of this job is revolved around Learning something new (every minute). Maybe a new language, new coding pattern. For example Android Kotlin and Kotlin Coroutines instead of Java.

Using the right tool for the job is very important; Especially DevOp (Development Operation). Which CICD tool will be using? How analytic data are streamed, stored and query. I have used CircleCI, Google Cloud Build, Gitlab. All of them can meet all job requirement from build to production deployment. But in the end, I choose Gitlab. It’s customisability and able to deploy anywhere and easily migrate to a Cloud Machine generated a fixed cost. Gitlab runner, on the other hand, can use preemptible google VMs via docker-machine with ‘google adaptor’, which costs around 0.0056 USD per build (on a custom 2 Core 4GB VM ‘custom-2–4096’).

Why all the hassle and the trouble when I can just use the Free Circle CI? Once in a lifetime, you will encounter a resource limit that you cannot control in Circle CI that incurs additional cost. This is one way to solve resource limits and premium monthly pricing.

“Something that you cannot control is a like having your wife on a project, there is always something you can’t do, touch or change!”.

Specialise what you enjoy. Personally, I enjoyed doing data engineering, using Big-query and Tableau. Every year when you aged a bit your coding or other skill get rusted. So best to revisit many of the areas. Personally usually had a hard time with HTML and CSS!; coming from a mobile App Dev and Game Dev background. It’s unlikely to come by HTML. Full stack also means re-discovery. It is not wrong to not knowing, however it is a disgrace to not try. ‘A piece of cake’ will eventually come to you!

The skills that are ‘a must have’ for Full Stack Dev. Since all the project I encountered at my company;

  • Docker

Mobile App or Web. A “Docker” knowledge is required to build your Apps. Make sure it is always portable, can be built anywhere!

  • CI/CD

CI/CD is also a plus, once I moved on a larger project; this will save time on deployments later on.

  • GraphQL

Why GraphQL? Of course, there is nothing wrong with Restful API. A large company like Facebook, Airbnb, Github uses GraphQL to minimise data redundancies

  • Kubernetes

When docker is not enough on a single machine. Of course, you can use Docker-Swarm or Rancher. In the end, Kubernetes (K8) is the better tool when scaling your app on Google Cloud Infra.
One best K8 feature is able to zero-downtime your application on a rolling update. We do live update Web Apps with just a few clicks.

  • Redis

Redis is not a much a thing until today. Bast case use is caching database results that will otherwise take seconds. It is stateless since all your scaled services can read the same cache from Redis’s Client. That was just the tip of the iceberg from Redis.
There is also a ‘Pub/Sub’ feature; a message channel for services to talk to each other at great speed.
Overall Redis is a great companion when you have dozen of micro-services.

  • Serverless Infra

Google cloud function and AWS lambda is a great example. Much like Nodejs but without an actual machine, you can produce complex micro-services.
One advantage is that you only pay when the code runs. So its best for little micro-services like user Authentication Service, Data Logging, Social Media, Event Server.

  • Linux

You cannot miss this. If you are non-Microsoft product dev. You are required to host some sort of service on these servers. Normally the job involves navigating the directory, editing files in vi and vim, backup, restoration, cronjobs, managing systemd services, creating custom services.

Conclusion: Full Stack is madness, I tell you. The knowledge need for this is nothing more than simple courage and will power from fellow Devs. Other than that previous knowledge of multiple programming languages will take you further.

--

--