Tee3 | Tips, Tricks and Technologies

I have been into web development from 2 decades (starting with static HTML websites back in 2001), and moving up the ladder by learning/implementing Photoshop/graphic design for 5 years, and from 2006 onward professional PHP (and related tech-stack) based development.

Seeing people struggling with basic know-how of core programming and related skills and ending up with confusion, lack of confidence, being less efficient/productive, filled with anxiety and stress etc, is a difficult thing to watch, and I see it(almost daily) and intend to help these young developers (and some experienced/seasoned ones as well) to do things faster than they are doing now, by teaching the tips, tricks and technologies that would help them do things in (may be) 2 years what I was able to do in, say, 5 (or more).

I speak often at devTalks (local meet-up group) where we talk/deliver-session about various topics from different layers of technologies : server, client, DevOps, DB, upcoming technologies etc and during the lock-down we conducted a lot of online sessions (open and free for all) helping people who are at home (and/or working-from-home) and continue to help a lot of young and mature developers alike, and I would want to focus on some specific sections (from the tech-stack that I know) that I believe will make things much easier/better for most of the developers.

If I were to start a course tomorrow, the title would be:
How Docker could put your career on a fast track

Class project (after/during the course):
Deploy a CI/CD pipeline on GCP Cloud Run using bespoke docker images created after learning Docker and related tech-stack(from the course) and using available services – for PHP and Nodejs.

Some key lessons to be included:
– The Why and What of Docker in brief : The introduction (~2 mins)
– Installation instructions (Ubuntu only, other OS instructions linked/referred) : docker, docker-compose, git (optional), hub.docker.com account (to push images to docker hub, to be used during CI/CD setups) (~5 mins)
– Docker images and containers “What are those?” : Names and tags, local images, pull-from/push-to docker hub, difference and similarity, context
– Build docker images : How to build from official/base versions, create your own images, why the need to create custom images
– Docker containers (details yet to be listed)
– “docker-compose” : Services, networks, volumes and containers. Using CLI and VS Code (non-CLI)

I might need following tools (already with me, or need to update/install):
Equipment : Smart phone, DSLR camera, silent space, lights.
Software : Screen recording tools, PhpStorm (and inbuilt tools), OBS studio (multi window/source management, streaming/recording) etc

Some of the links (from gist.github.com/jdecode) related to Docker/docker-compose:
– Dockerfile for PHP 8.0 RC2 with MySQL and Postgres support: https://gist.github.com/jdecode/77b554ba217c5dfcf5f78f89260c8561
– Setting up Dockerfile and docker-compose for a CakePHP project : https://gist.github.com/jdecode/f25b66b8993d5ca32c4a25353e9f2ec9
– Steps to run Docker project (similar to the above link, but different and important – uses MySQL): https://gist.github.com/jdecode/b2754547a461f289493df38a51776524
– Screenshots accommodating the content of the course : https://gist.github.com/jdecode/3dd9a6edd6c0411756681c0035b76c41

Unfair and unrealistic expectations

It is an unfair and unrealistic expectation to put on ourselves that every day at work, at home, with our spouse, with our friends would be spectacular or fulfilling.

There will be days that are “routine”.

We get up, and are not so mindful of the day, drag ourself to start the day, have a lazy breakfast (or skip it, and have a cup of tea, or just coffee at the office – or wherever we go).

We proceed with the day, do whatever we are supposed to do – and may be with less of a heart – but we get it done.

Wait for the day to end, and then just end it.

There would be days that are bad, and we don’t like the way things are going. That could be multiple days in a row, but not every day.

You could not be happy every day, but you can still be full of joy. It’s a choice that you make.

You don’t have to like every day, but you love every day.

You don’t have to like your children every day, but you love them every day.

 

Sometimes the work (or business/organization) is not designed to take care of our happiness/joy.

But sometimes(actually, most of the time), it is us – We are making ourself unhappy.

WE consider ourself victims – due to organization structure, the tasks, the vision/mission, some policies and what not.

What we fail to do (and process) is to see what the motive and intent of the organization is and what pain is being taken to make us more happy.

It is (also) problem with most organizations that they fail to let us know what they are doing. Writing an aweomse vision/mission statement and creating great-sounding OKRs does not guarantees that we understand what it means and how we connect with those objective, and instead the focus is on achieving the “Metrics” for the key results.

#startedWithSomethingAndEndedWithSomethingElse #bwah

Full Stack Developer?

I believe there is a misconception in the title “Full Stack Developer” and this sets very wrong expectations for the developer and for the hiring organization as well.

A full stack developer should, potentially, take care of 4 key areas :

  1. Business analysis
    1. Client-interaction
    2. Documenting the understanding
    3. Creating FRD/DFD (and a lot more, probably)
  2. Designing
    1. Creating initial draft
    2. Wire-framing
    3. Prototyping (and more)
  3. Development
    1. Back-end coding(PHP, Java, Node.JS, .Net etc)
    2. Database
    3. Frameworks
    4. Algorithms
    5. APIs
    6. OOPs (and everything else programming)
  4. Deployment
    1. Server management
    2. Backups
    3. Logging
    4. Performance monitoring
    5. Debugging (and potentially a lot of other stuff, including, but not limited to Cloud/pipelines/CI/CD)

 

And these are just the high level bullet points on top of my head.

So, when I read a post on LinkedIn saying “Required Full Stack Developer having 3-5 years of experience” – that is straight away “A” class bullshit.

Do you, as a recruiter, seriously think there would be a someone who has worked for “3-5” years and is a “Full Stack Developer”?

Do you, as a developer, want to join the company that has no clue what a “Full Stack Developer” is?


There used to be a really old TV ad promoting education-for-all (from 90’s may be) that used to have a line in Hindi that roughly translates to “You work hard, but you also need to learn/educate yourself” (पढ़ना लिखना सीखो, ओ मेहनत करने वालो) – and this was reminded/said to me by Mr. Rajat Julka (of TrantorInc. Chandigarh) – which is aptly applicable in this scenario as well.

Developers should know what they are : Full Stack Developer, or someone who knows more than 1 programming language?