Please enable JavaScript.
Coggle requires JavaScript to display documents.
Software Engineer Intermediate - Coggle Diagram
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
Frontend
Web APIs
Document Object Model
XHR & Fetch
Storage
Video and Audio
Drawing Graphics
UI Frameworks and libs
Angular
Fundamentals
Angular CLI
NgModules
Template Syntax
Interpolation
Property Binding
Event Binding
Two Way Binding
Pipes
Template Reference Variables
Directives
Components
Class
Template
Metadata
Component Styling
2 more items...
Components Interaction
2 more items...
Structural
ngIf
ngSwitch
ngFor
Attribute
NgClass
NgStyle
Lifecycle Methods
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
Miscellaneous
i18n
Accessibility
React
VueJS
Svelte
Backend
NodeJS
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
Web sockets. (Real-Time Communication)
Socket.IO
GraphQL
REST
Axios
Request
node-rest-client
Typed Superset
Flow
TypeScript
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
Service Registry Design Pattern
Deno
Persistent Layer
Caches
node-cache
Distributed Cache
In-Memory Cache
Data Bases
Relational
Microsoft SQL Server
PostgreSQL
MySQL
NoSQL
MongoDB
REDIS (as persistent storage)
Apache Cassandra
CouchDB
Search Engines
ElasticSearch
Solr
Sphinx
Managed (Cloud) DBs
Azure CosmosDB
Amazon DynamoDB
Google Bigtable
Logging
Structured Logging Approach
Logging Management Systems
Sentry.io
Loggly.com
Splunk
AWS CloudWatch
Logging Frameworks
Winston
pino
bunyan
Design Patterns
Command Query Responsibility Segregation (CQRS)
Pub/Sub
Factory
Prototype
Strategy
Observer
Midleware
State
Singletone
JavaScript Core/Lang
ECMA-262 (ES11)
Advanced Scoping
Nested Functions
Lexical Scoping
Immediately Invoked Function Expressions
Revealing Module Pattern
Closures
Currying
this
Implicit Binding
Explicit Binding
New Binding
Lexical Binding
Default Binding
OOP/Inheritance
Prototype
Prototypal Inheritance
Classes
Functional Programming
Iterator
Generator
Event Loop
Asynchronous JS
setTimeout/setInterval
callbacks
Promises
async/await
Observables (RxJS)
Async Error Handling
Module System
CommonJS
ES Modules
Import/Export
Default and Named Exports
TypeScript
Libs
lodash
D3/C3
jQuery
Testing My Code
Jasmine/Chai
Mocha/Karma
Jest
Protractor
Tech Agnostic
Architecture and Design
Continuous Integration and Continuous Delivery
Troubleshooting
Computer Science
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
Code Refactoring and Maintenance
Application Infrastructure
Docker
Technical Documentation
Information Security
Open Web Application Security Protocol (OWASP) Top 10
Payment Card Industry Data Security Standard (PCI DSS)
Health Insurance Portability and Accountability Act (HIPPA)
Toolchain
Linters
Code Formatters
Bundlers
Packages Management Tools
People Skills
Soft Skills
Accountability, commitment and result ownership
Sticks to given commitment
Copes with the flexible scope of technical uncertainty
Seeks no excuses if the result does not match the expectation
Communication and Teamwork
"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
Personal Characteristics and Work Attitude
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
analytical thinking and innovation
Complex problem-solving
Critical thinking and analysis
Creativity, originality and initiative
Reasoning, problem-solving and ideation
Self-Management
Active learning and learning strategies
Self-Reflection
Resilience, stress tolerance and flexibility
Working With People
Leadership and social influence
Technology Use and Development
Technology use, monitoring and control
Technology design and programming