Software Engineer Intermediate
Definition
Has enough experience to deliver tasks defined by Tech Leads.
Gains technical and business domain experience.
Learns how to become a go-to expert in certain project areas.
Understands the reasoning behind the business priorities.
Influences architecture, technical decisions and delivery process used on the project.
Is self-accountable, has a conscious and mature approach in problem solving and communication.
Intermediate English
My Journey To Mastery
Technology Specific - JavaScript stack
Tech Agnostic
Frontend
Backend
JavaScript Core/Lang
Architecture and Design
Continuous Integration and Continuous Delivery
Troubleshooting
Computer Science
Application Infrastructure
Technical Documentation
Information Security
Toolchain
People Skills
ECMA-262 (ES11)
Advanced Scoping
Nested Functions
Lexical Scoping
Immediately Invoked Function Expressions
Closures
Currying
this
Implicit Binding
Explicit Binding
New Binding
Lexical Binding
Default Binding
OOP/Inheritance
Prototype
Prototypal Inheritance
Functional Programming
Classes
Iterator
Generator
Event Loop
Asynchronous JS
setTimeout/setInterval
callbacks
Promises
async/await
CommonJS
ES Modules
Import/Export
Default and Named Exports
Web APIs
Document Object Model
XHR & Fetch
Storage
Video and Audio
Drawing Graphics
Linters
Code Formatters
Bundlers
TypeScript
UI Frameworks and libs
Observables (RxJS)
Libs
lodash
Testing My Code
Jasmine/Chai
Mocha/Karma
Jest
D3/C3
jQuery
Packages Management Tools
Angular
React
VueJS
Svelte
Fundamentals
Angular CLI
NgModules
Template Syntax
Interpolation
Property Binding
Event Binding
Two Way Binding
Pipes
Template Reference Variables
Directives
Async Error Handling
Components
Class
Template
Metadata
Structural
ngIf
ngSwitch
ngFor
Attribute
NgClass
NgStyle
Component Styling
Class Binding
Style Binding
Components Interaction
Input
Output
Lifecycle Methods
NodeJS
Deno
Advanced
Services
Dependency Injection
Providing Services
Observables
Creating Observables
Subscribing to Observables
Executing Observables
Disposing Observables
Operators
HTTP Client
HttpClient
HTTP Methods: GET, POST, PUT & DELETE
Typed Response
Error Handling
Interceptors
Forms
Template-Driven Forms
Forms Module
NgForm
NgModel
NgModelGroup
Tracking State & Validity
Validation & Error messages
ngSubmit
Reactive Forms
ReactiveFormsModule
FormControl
FormGroup
setValue & patchValue
FormBuilder service
Validator Functions
FormArray
ngSubmit
Routing
RouterModule
Configuring Routes
RouterOutlet
routerLink
Wildcard Routes
Redirecting Routes
Route Parameters
Nested Routes
Relative Paths
Lazy Loading Routes
Route Guards
Animations
Ecosystem
State Management
ngRx
UI Libraries
AGGrid
Angular Material
Server Side Rendering
Angular Universal
Protractor
Miscellaneous
i18n
Accessibility
Persistent Layer
Caches
Data Bases
Soft Skills
Accountability, commitment and result ownership
Communication and Teamwork
Personal Characteristics and Work Attitude
Sticks to given commitment
Copes with the flexible scope of technical uncertainty
Seeks no excuses if the result does not match the expectation
"Success of the group is more important than personal result" attitude
Alligns one's work with the team priorities
Motivates teams and colleagues by acting in a positive way
Shows openness to advice from colleagues and welcomes other points of view
Continuously invests time and efforts in the team development, both as a group and as a set of individuals
"Mentors team members and less experienced colleagues.
Is proactive in their evolving professional development to improve soft and hard skills"
If in conflict, is driven toward a resolution
Solves issues with customers and stakeholders and prepares enough background/arguments to support the teamās or the companyās position
Productively collaborates with colleagues from other projects/departments
Communication style is polite, respectful, and concise
Is accurate, attentive to details
Controls his/her own time allocation, estimates, and actual time spent
Learns from his/her own mistakes
Takes initiative
Easily adapts to change
Fits the values and the culture of the company
Is result-oriented
Acts objectively rather than impulsively or emotionally
Works under pressure effectively, staying stress-resistant
Perceives and understands the feelings and the attitudes of others (emotional intelligence)
Goes an extra mile when performing a task
Meta Skills
Problem-Solving
Self-Management
Working With People
Technology Use and Development
analytical thinking and innovation
Complex problem-solving
Critical thinking and analysis
Creativity, originality and initiative
Reasoning, problem-solving and ideation
Active learning and learning strategies
Self-Reflection
Resilience, stress tolerance and flexibility
Leadership and social influence
Technology use, monitoring and control
Technology design and programming
Relational
NoSQL
Search Engines
Managed (Cloud) DBs
ElasticSearch
Solr
Sphinx
Microsoft SQL Server
PostgreSQL
MySQL
MongoDB
REDIS (as persistent storage)
Apache Cassandra
CouchDB
Azure CosmosDB
Amazon DynamoDB
Google Bigtable
node-cache
Distributed Cache
In-Memory Cache
Logging
Structured Logging Approach
Logging Management Systems
Sentry.io
Loggly.com
Splunk
AWS CloudWatch
Logging Frameworks
Winston
pino
bunyan
Node's Architecture
V8 and libuv
NodeJS CLI
NodeJS REPL (Read, Eval, Print Loop)
Global Object, Process and Buffer
How require() actually works
JSON and C++ Addons
Web Frameworks
Koa.js
Express.js
Loopback.js
Programming Techniques
Error Handling
Asynchronous Programming
Parallel Programming
Meta programming
Template Engines
marko
handlebars
ejs
jade
mustache
API Clients
Typed Superset
Flow
TypeScript
Web sockets. (Real-Time Communication)
Socket.IO
GraphQL
REST
Axios
Request
node-rest-client
Testing
E2E Testing
Selenium
Puppeteer
Integration Testing
Super Test
Mocha
Chai
Behaviour Testing
Mocha
Chai
Jasmine
Unit Testing
Mocking
Sinon
Jasmine
Enzyme
Frameworks/Assertion
jest
chai
Mocha
Jasmine
Microservices
Task Schedulers
Agenda
Cronicle
node-schedule
Message Brokerage
RabbitMQ
AWS SQS
Apache Kafka
Azure Service Bus
Message Bus
Distribus
BusMQ
Design Patterns
Command Query Responsibility Segregation (CQRS)
Pub/Sub
Factory
Prototype
Strategy
Observer
Midleware
State
Singletone
Open Web Application Security Protocol (OWASP) Top 10
Payment Card Industry Data Security Standard (PCI DSS)
Health Insurance Portability and Accountability Act (HIPPA)
Code Complexity and big O(n) notation
Data Structures: Lists, Trees, Queues, Hashtable, Hashmap, Linked Lists, Binary Trees, State Machines, etc.
Algorithms: Classification, Complexity and Practical Appliance
Docker
Service Registry Design Pattern