Skip to main content

Can you remain a fullstack developer?

I started as a full stack developer 14 years ago but these days its becoming more and more difficult to remain a one. Back in those days all you needed to know was html/css/Js/jsp/java/sql/ant/xml and some tools like tomcat, svn, eclipse and some shell scripting and you are a full stack developer. Being full stack developer means you can code from UI layer to server to database and peel any layer of onion to trace an issue.

Now a days you may need to know 20 different technologies in each area before you can easily navigate between layers. Life becomes difficult if its a distributed system. In UI you may need to know
  1. React
  2. Angular
  3. Jquery
  4. SASS
  5. HTML5
  6. Javascript
  7. Node.js
  8. Grunt and many more
In server you need to know
  1. Java
  2. Spring
  3. Hibernate or any OR tool
  4. Guava
  5. Nginx
  6. Haproxy
  7. Memcached and many more. 
In Database you may need to know
  1. Mysql
  2. NOSQL databases like Cassandra or MongoDB
  3. Sharding
  4. AWS Aurora or RDS
  5. ElasticSearch
  6. Redis
  7. OpenTSDB
  8. Hadoop 
  9. Big data services like BigQuery and many more
On top of that now Mobile has made life worse as it another ecosystem. I will soon write a post on my adventures in trying to build and iOS app without mac as I dont own a one. For doing mobile development you may need to know
  1. iOS development langugages like Objective, Cocoa
  2. Android development, by luck its java
  3. Hybrid app dev tool like ionic or Sencha touch with Phonegap
  4. Flurry
  5. Also you need to own mac, iphone, ipad, android and many more devices with you.
  6. Signup for Ios and Android developer accounts which costs $$.
  7. and many more.
In terms of tools you may need to know
  1. Maven or ant or Gradle
  2. Jenkins
  3. AWS/Azure/GCE and their ecosystem
  4. Python
  5. New relic or mix panel
  6. Svn/git/JIRA/Pivotal/Reviewboard
  7. Eclipse
  8. shell scripting
  9. Logstash
  10. Sendgrid or postfix
So given all this can you remain a full stack developer. I was at an architecture conference by ThoughtWorks and someone popped this same question to Martin Fowler, and his answer was "Yes its possible". You need to grow like a 'T' where you are deep in 1-2 layers but you should atleast know enough about the other layers to make a good decision. As for me I read a lot of stuff but try only a few. For me the best way to keep up with technologies is to keep signing up for new and hard projects and join a startup early enough that you are involved in lot of layers, doing a lot of grunt work, you would be forced to learn many of these things. Also if someone outside of work asks for help, if you can then don’t say no, if it sounds interesting just give it a try even if its free work, who knows you would learn a thing or two.

Martin Fowler at Dallas


Popular posts from this blog

Compartmentalization helps with Deep Work

I had been trying to learn Solidity/Ethereum over the weekends for the past few months and the first 3-4 weekends were a drag as no matter what I do I wasnt able to focus and getting no where. The problem was not with motivation as I was trying to do it for many weeks but all I was able to do was read 100s of blog posts about it but not able to code anything.

Aparently I realized that on weekdays most of my work is in the "study" room whereas on weekend I was trying to do it in the living room. Now working in study on wekeend was an issue as it felt more like work than fun so last 2 weekends I tried changing the schedule and went 3 hours every Sunday to library with my son and while he was reading books I was coding in solidity.

I also had trouble writing code after 7:00 PM as I thought my brain was tired but last week I tried sitting in study around 10:00 -11:00 in night and boy I was able to focus and code.

Net Net I realized that:
"Having a consistent Routine help wit…

Adventures of a nature lover - 5 national parks in 14 days

To unplug from work and recharge myself I do a 2-3 week trip every year where I am unplugged. Few of the reasons I can totally unplug from work is
Unlimited Vacation policy of Egnyte, Excellent support by the Infrastructure team Our ethos of pro-actively fixing issues before they become nuisance.
TLDR; It's a long post so you can scroll down and first see see images if you need motivation to read it entirely.

Me and my family like national parks and camping to recharge us as there is no cell phone  coverage in parks and you are completely unplugged from technology most of the times. We have done many of the national parks nearby and this year we want to see glacier national park as the glaciers may disappear in 10-15 years so see them before they are gone. Behind every successful trip is a "Trip planner" and for our family its my wife, she researched  and made a trip itinerary book.

She booked camp sites 6 months in advanceShe researched trails and as days are few she pres…

Seven things doing a 1000 piece puzzle has common with complex engineering projects

I was doing grocery shopping during the New Year holidays and the store had a lot of 1000 piece puzzle on sale for $11. My son had never done more than 100 pieces and  I was like hey this seems interesting for him, so I bought one. We started working it on Jan13th and finished between 4 people on Jan25th. During the journey of finishing I saw a lot of similarities with complex engineering projects. I think everyone in engineering should do one of these and here are some of the things I learned.

Underestimating the task: I grossly underestimated the task and amount of time it would take for my son to do it.Teamwork: After a day or two I realized my son lost interest, the whole family had to be involved to keep him motivated on it.Prep work: Like engineering projects, you need to do a lot of prep work like:Turn  the pieces down Study the patternsSort the piecesDivide and rule: Like engineering projects you need to pick some quick wins initially to get off the ground and start assigning t…