Story of Transition to the Senior SE role

TLDR; This article focuses on my recent transition to the Senior SE role, my experience & learnings from that transition which I am sharing so that this might come in help to someone out there looking for it.

Photo by Xan Griffin on Unsplash

Akshay Saini, you must have heard of him. If not, short intro: He is the creator of Namaste Javascript. Now YOU recalled? No? Then go and check out at least one video from the series. I am sure, you will never forget him. He has simplified the most complex internal architecture of Javascript and served it on a plate for us to consume.

Anyways, 21 days back he inspired us to utilize and make the best out of it, and start the new year afresh.
So, I decided to daily solve at least one problem on leetcode and read the “You don’t know Js” book series. But everything doesn’t always go as planned, I was approached by a few recruiters on LinkedIn regarding job opportunities and I thought why don’t I try and utilize these 21 days to get a good job offer.

So, there I was, my quick intro: I am a MEAN stack developer with 1.5 yrs. of professional experience and a total of 2.5 yrs. of experience including internship & freelancing. I am in Love with the JavaScript ecosystem, so I keep exploring different frameworks and libraries in this ever-expanding Javascript world.

Q: Did I get a good job offer?
A: Yes, I did. Not only a good offer but now I am going to be Senior SE with a massive hike.

celebrate the moment

Q: How I did it even though I am not good at competitive coding?
A: I might not be as good at competitive coding but I am great at building modular, scalable web apps with good coding standards covering unit testing and proper documentation of the same so I focus mainly on that and always try to improve upon my skills.

I would like to break my transition of becoming Senior SE in few modules:

HARD WORK:

Most of us post office hours have a mentality that we are done for the day and then we simply relax or binge watch Netflix but I took a different approach & tried to invest at least 2 hrs. daily on my skill development.
also, if I am traveling, I used to read JS articles or if I have 5–10 minutes before leaving, I watch small Instagram tech-based accounts posts for eg: Akshay Saini’s account

keep putting the hard work

PATIENCE:

Have patience, believe in yourself because sooner or later everything is going to be fine. Don’t get de-motivated, your time will come just keep putting in the hard work.
I know it’s easy to say but practically living it is difficult. But we don’t have the option, we have to keep moving and trying if we desire to get good things out of life.

never lose hope

PREPARATION STRATEGY:

Even though I managed to get 3 offers in these 21 days. But for this, I was preparing from the very beginning. Every day bit by bit.
My preparation strategy was simple & I made sure to make it efficient, I first listed down all the possible topics of my skill-set, then I created To-dos for each topic & started crossing out each topic one by one as soon as I was confident about the same, also making some rough notes (I am organizing it currently and will upload on GitHub Soon).

Please, find below important topics of my skill-set which I listed down:

HTML: What is HTML, What’s new in HTML5, explain DOCTYPE declaration, Semantic elements in HTML & its advantage, commonly used tags, figure tag, field set, srcset attribute, tab index, inline & block level elements, meta tags, iframe & object tags, web workers, graphics -> SVG & canvas, Quirks mode in HTML5, HTML5 Web API, image map, marquee, audio, video, geocode, datalist in form, Persistent Local Storage, Microdata, keygen, difference — Semantic Vs. Non-semantic, Application Cache in HTML5, Manifest file & others..

CSS: What is CSS, box model, CSS selectors, pseudo-class & pseudo-element, how does CSS work (under the hood of the browser), the difference between a relative, fixed, absolute and static, CSS Specificity, purpose of clearing floats, media query, CSS for print, selector that will match any links end/start/contains, flexbox, CSS grid, reset CSS, normalize CSS, Sass or Less and or Stylus, !important, concept of Tweening, any CSS framework & others..

JAVASCRIPT: What is Javascript, Call stack, Primitive types, Value Types & Reference Types, Function scope, Execution context, Block scope & Lexical scope, IIFE, Modules, Namespaces, DOM and Layout Trees, this, call apply & bind, prototype inheritance & prototype chain, Object create & assign, Js array functions, Pure/Impure functions, Closures, High order functions, Promises, Callback, Async/Await, OOPs implementation, time/ execution related functions (setTimeout, setInterval), collections and generators, message queues, hoisting, polyfill, currying, debouncing, async vs defer, event bubbling & capturing, Prototype & Prototypal inheritance, Object prototypes, throttling, recursion, local storage vs session storage, CORS, web storage APIs, event loop, web sockets, “use strict”, eval, babel, pass by reference, pass by value, es6+ ex: spread operator, rest operator, destructuring, arrow function, template string, etc., for loop (for-each, for-of, for-in), AJAX & others..

ANGULAR: What is Angular, basic typescript, angular version changes, features of Angular, angular cli, advantage and disadvantage of angular, how angular work, Ivy, JIT & AOT in angular and its advantage & disadvantage, What are the building blocks of Angular, components, What is Data Binding, string interpolation, property binding, event binding, two way binding, data sharing between components, view encapsulation, view child, directive & its type with example, custom directive, pipe, custom pipe, pure pipe & impure pipe, async pipe, pipe chaining, mvc architecture, mvp architecture, angular routing, lazy loading, loadChildren, angular services, dependency injection, life cycle, ng-content, components vs directives, modules, decorators, internationalization, ng-container vs div, angular on server side, MVVM architecture, auth guard, interceptor, rxjs & its most used operators, promise vs observable, cold observable vs hot observable, ngClass & ngStyle, Angular elements, difference among “declarations”, “providers” and “import” in NgModule, form — reactive & template driven, dynamic form, Transpiling, unit-testing related concepts & others..

REACT: What is React, advantages of React, Component Architecture, Hierarchy, Communication between components, State & Props, props validation, SPA (Simple Page Application) vs MPA (Multi-Page Application), Functional vs Class-based component, Controlled Components, Pure Component how React & virtual DOM works, Higher-Order component, JSX, Life-Cycle Methods, render method, constructor, Hooks & Custom hooks, Routing & lazy loading, what is prop drilling & how to avoid it? State Management (Mostly Redux questions are asked but other libraries like Mobx are there), React clone elements, Strict Mode in React, synthetic events & others..

VUE: What is Vue.js, advantages of Vue.js, Component Architecture, Templates, Instances in Vue.js, Life-Cycle Methods, Computed Property, Watcher, Bindings, Events, Custom Events & root events, rendering & render function, transitions & animation, Directives, Refs, Routing & lazy loading, Mixins, Slots, Named Slots, Scoped Slots, Filters in Vue, State Management (Vuex), Reactive Interfaces, Vue Loader, Plugins & others..

NODEJS: What is Node.js, If Node.js is single-threaded then how it handles concurrency, benefits of NodeJS, event loop, event queue, Libuv, thread pool, the downside of the single-threaded concept, What is an error-first callback, event emitter, node environment, LTS release of node, reactor pattern in node, time/ execution related functions (setTimeout/clearTimeout, setInterval/clear interval, setImmediate/clear immediate, process.nextTick) where a node is used, Asynchronous & Synchronous, non-blocking” in node.js, REPL, NPM, semantic versioning, child process, fork & spawn, streams in node, fs module, HTTP module, Zlib module, stream module, util module, v8 engine, event-driven programming, package.json, create a simple server in Node.js, purpose of module exports, buffer class, different types of HTTP requests, put vs patch, cluster, event listeners, Microservice architecture, message queue & Trace, Stream Buffer, Crypto, Security Mechanism & others..

EXPRESSJS: What is express, features of Express JS, steps used to set up an express JS application, arguments available to an Express JS route handler-function, use of next in Express JS, Middleware in Express.js, types of middleware, templating engine, server-side rendered page, error handling & others..

MongoDB & MONGOOSE: what is MongoDB, JSON vs BSON, data types supported by mongo, best features of MongoDB, the difference between SQL or NoSQL, _id Field in MongoDB, create or select a database, collection in mongo, CRUD operation in mongo, upsert, write concern, Storage Engine, replica set, journal, profiler, the concept of foreign key in mongo, sharding, GridFS, update the _id of one MongoDB Document, Does an update fsync to disk immediately, replica set, transactions/locking in MongoDB, ACID property, namespace, Horizontal Scaling & Vertical Scaling, MongoDB aggregation, Indexes in MongoDB, type of index, covered query, rename keys of document, models & schema in mongoose.

Once I am done with listing the topics, I start reading all these topics online either on YouTube or medium or dev or on the documentation itself. I always make sure to understand the topics in a way that I can explain to anyone along with many scenarios and real-life examples.

Q: What about DSA?
A: No one can escape DSA even in a frontend role interview. As Akshay, said in many of his videos you must be aware of basic DSA and its implementation. So, I made sure to learn most of the topics of DSA and its implementation in JavaScript. ref

This Udemy course came in very handy and boosted my confidence.
https://www.udemy.com/course/js-algorithms-and-data-structures-masterclass/

Hold on, few more points:

alright

TIPS TO STAND OUT

FIND A GOOD FRIEND

A friend whose skillset matches yours. As Akshay always says find your Simran. This is very important because it fastens the process and you both get to learn so many things in less time. In my case my mentor/Simran/friend is Mihir. We collab and work together on side stuff along with our own adventure that is open devs, a GitHub organization we created to build cool open source projects & teach what we have learned over the years.

WORK ON SIDE PROJECTS

This always helps as it lets you implement the concept you have learned theoretically and most importantly if you have some good projects then you have a lot to talk about and the interviewer will have a lot to ask about from the project which you are master at.

ALWAYS KEEP LEARNING

There is no ending to learning, you must always keep learning & practicing.

FEW RECENT INTERVIEW JS QUESTIONS:

· closure with an example; advantage & disadvantage?

· setInterval, setTimeout with example & how to break setInterval; advantage & disadvantage;

· HTML5 Web API; Local Storage vs session storage

· IIFE and anonymous function;

· Service Workers

· Output of code snippet and their explanation & more..

FEW RESOURCES:

· Interview Questions

· Namaste Javascript

· JavaScript Algorithms and Data Structures Masterclass

· The Beginner’s Guide to MongoDB Aggregation

· MongoDB Interview Questions and Answers

· Node.JS Prep

Great, you have reached the bottom. If you are a Javascript developer then bookmark this because these topics are gonna very helpful in your next interview.

p.s: Thank you Mihir & Ravi for the proofreading and adding more value to this article.
Please give a clap if it is helpful

DONE

Sr. Software Engineer @globant 💻 | Open source enthusiast @opendevs 🚀 | I code UI<React>@globant ⚔️