You are on page 1of 23

Competency

WebUI
WebUI
WebUI
WebUI
Programming Language
Programming Language
Database
Products and Frameworks
Products and Frameworks
Products and Frameworks
Products and Frameworks
Products and Frameworks
Products and Frameworks
Products and Frameworks
Products and Frameworks
Products and Frameworks
Products and Frameworks
Products and Frameworks
Testing and Logging
Testing and Logging
Testing and Logging
Testing and Logging
Presentation layer
Presentation layer
Cloud
Cloud
Cloud
Design principles
Data structures and Algorithms
Engineering concepts
Skill Proficiency level
HTML5 Working
CSS3 Working
Javascript Working
Jquery Working
Java 8, JDBC Working
JSON, YAML & Shell scripting basics Working
ANSI SQL, PL/SQL Working
Maven Working
GIT Working
JSP & JSTL Working
Spring Core Working
Spring data JPA with Hibernate Working
Spring MVC Working
Spring Boot Working
Spring REST Working
Spring Security with JWT Working
Microservices Working
Spring Cloud Working
Junit with Mockito Working
Code quality Working
Lombok logging, sl4j Working
SonarQube Working
Bootstrap 4 Working
Angular 6 or 7 Working
AWS Working
CI/CD, Docker, Kubernetes Working
Microservice deployment on cloud using ECS/EKS Working
Principles and Patterns Working
Basic data structures and few important algorithms Working
Please refer to the worksheet "FSE Engineering Concepts scope" Knowledge
Newly added skill
Skill Topic
HTLM5 HTML5 - Introduction

HTLM5 HTML5 - Getting Started


HTLM5 HTML5 - Elements &
Attributes
HTLM5 HTML5 - Navigation
HTLM5 HTML5 - Events
HTLM5 HTML5 - Web Forms 2.0
HTML5 - Web Storage
HTML5 - Web SQL Database
HTLM5 HTML5 - Geo location
CSS3 CSS3 - Introduction

CSS3 CSS3 - Selectors


CSS3 CSS3 - Styling
CSS3 CSS3 - Box Model
CSS3 CSS3 - Advanced
JavaScript JavaScript Fundamemtals
JavaScript

JavaScript Javascript Deep Dive


JavaScript
Introduction to Databases
Connecting to the Database, N
SQL Scripting
Basic CRUD operations, Functio
Joins and Subqueries
Object Oriented Programming
Concepts

Packages, Interfaces, Abstract


Classes, Inner Classes
Core Java Fundamentals
Exception Handling

Strings, I/O, Collections and


Generics, Date/Time API,
Standard Libraries (java.lang,
java.util)
Multithreading, Sorting in
Java
JDBC

Lambda Expressions

Core Java Deep Dive


Core Java Deep Dive

Streams and Optionals

Dependency Injection

Spring Core

Spring AOP
Reading values from Property F
Spring JDBC and Transactions
Maven Basics

Maven Build life cycle

Plugins
Run Maven Builds

Junits Unit Testing Fundamentals

Code Quality PMD, Checkstyle, FindBugs

Spring MVC Fundamentals

Spring MVC with Spring


Boot
Spring MVC with Spring Boot
Spring MVC with Spring
Boot
Spring MVC with Spring Boot

Bootstrap Fundamentals

Grid System
NAV Bar

Demonstrate troubleshooting
UI issues using Chrome
Developer Tools

Bootstrap

Bootstrap Components

Bootstrap Styles
ORM Basics

ORM Basics

Hibernate Basics
ORM implementation with
Hibernate XML Configuration
and Annotation Configuration

JPA, Hibernate, Spring


Data Access JPA with
Spring Boot Hibernate Basics

Mapping, Persisting objects


into database, Detatched
Objects
HQL

Criteria

SLF4J, Lombok

Logging, and Continuous


Code Quality

Continuous Code Quality


using SONAR
Analysis of Algorithms

Sorting

Data Structures and Arrays


Algorithms Linked List

Stack and Queues

Binary Tree, Binary Search


Tree, Binary Heap

Hashing
Divide and Conquer
Solid Principles
Design Patterns Introduction

Design Principles and Design Patterns - Creational


Patterns
Design Patterns - Structural
Design Patterns - Behavioral

Spring Boot Introduction for


Spring REST
Spring Boot Introduction for
Spring REST

REST Web Services


Introduction
Spring REST with Spring
Boot

Producing and Consuming


REST services

Spring Security using OAuth2


and JSON Web Tokens (JWT)

Spring Security with Spring


REST and Spring Boot

Microservices Basics,
Monolithic to Microservices

Spring Cloud

Microservices and Docker


Microservices and Docker
Introduction to Docker

Hosting App using nginx, using


command line and Dockerfile

Hosting a MySQL database


with schema creation using
docker
Hosting a REST API
Microservice using docker

Introduction to Kubernetes

Kubernetes - Container
Orchestration
Kubernetes Demonstration

Introduction to cloud
computing
Containers
Fundamentals of AWS
CI/CD in AWS
Deploying an application on
AWS
Introduction to Devops --
CI/CD on cloud on AWS
AWS, CI/CD CI/CD hands on lab
CI/CD with microservices
deployed on ECS/EKS
Jquery Jquery

Angular Angular basics, components,


forms
Sub Topics
Need and Benefits of HTML, Setup, Browser, BOM and DOM, DOCTYPE, Character Encoding, <script> , <link>, , HTML5 Document, Comme

Visual Studio Code features, Google Chrome Developer tools, Inspect document
Formatting Tags, List, Table, Form & Input Tags, Images, Styles, placeholder, inline and block elements, id vs class attributes

Navigation tags, hyper link, reference to intermediate section


onblur, onchange, onclick, form related events, load events, key events, mouse events, ondblclick, onbeforeonload, oncanplay
<input> element in HTML5, <output>, placeholder attribute, autofocus, required
Session storage, local storage and Delete web storage
openDatabase, transaction, transaction
Geolocation Methods, Location Properties, Handling Errors, Position Options
Need and Benefits of CSS, Setup, CSS Syntax, CSS Comments, Including CSS in HTML Documents(Inline styles, Embedded styles, External st
sheets)
CSS3 Selectors - Universal Selector, Element Type Selector, Id Selectors, Class Selectors, Grouping Selectors
CSS Color, CSS Background, CSS Fonts, CSS Text, CSS Links, CSS Lists, CSS Tables
CSS Box Model, Margin, padding, border, Outline, Visibility vs. Display, Multiple Columns
Media Queries, RWD
JavaScript Basics, DOM
Variables, Datatypes, Type Conversions, Operators, Comparisons, Interactions, Loops, Functions, Function expression, Control Flow,
Conditionals
Array, String, Date, Math, Number, Boolean, Functions, JSON, Regular Expression
Objects, Arrays and Functions, JSON
Introduction to SQL/NoSQL, Advantages and Disadvantages
Table and Views
DDL, DML, Query and Operations, Clauses, Aggregate Functions, String Functions, GROUP BY, Having, Rank Functions
Joins, Sub queries
Principles of OOP, Inheritance, Polymorphism, Classes, Methods, Coupling and Cohesion, Abstraction, Encapsulation, Constructors

Overloading, Overriding, Abstract Classes, Implementing Interfaces, Access Protection, Using this, super and final, Object Class, Inner Class
Anonymous Inner Classes, Method-Local Inner Classes, Static Nested Classes

Handling Exceptions, Propagating and Catching Exceptions, Uncaught Exceptions, Subclassing Exceptions, try, catch, throw, throws, finally

String, StringBuilder, StringBuffer, StringTokenizer, File Navigation and I/O (java.io), Numbers, Calendar, Locale, Scanner, ResourceBundle
Currency, Parsing, Tokenizing, Formatting, Collection Interfaces, Collection Classes, Iterators, Comparators, Generic and Non-Generic
Collections, Primitive Wrappers, Comparable Interface, Math, ClassLoader, System, Process, Runtime,
LocalDate, LocalTime,LocalDateTime, Instant, Duration, Period, TemporalAdjusters

Creating a Thread, Suspending, Resuming and Stopping Threads, Serial and Parallel Sorts in Java
Create Connection, Query, Update
Lambda expressions (with Single parameter, multiple parameters, return type, collections, forEach, Multiple statements, without return ty
Reference to a static method, Reference to an instance method, Reference to a constructor, Usage of Functional interfaces and default
methods
Java Stream vs. Collection, Different ways to create streams(Stream.of(), List.stream(), Stream.generate() or Stream.iterate(),String chars o
String tokens),Convert streams to collections,
Intermediate Operations (filter(),map(),flatMap(),distinct(),sorted(),peek(),limit(),skip())
Terminal Operations
(forEach(),forEachOrdered(),toArray(),reduce(),collect(),min(),max(),count(),anyMatch(),allMatch(),noneMatch(),findFirst(),findAny()),
Parallelism in Java Stream
Optional.empty(), Optional.of(), Optional.ofNullable(), ifPresent(), isPresent(), orElse(), orElseThrow(), filter()

Asynchronous and Parallel Programming in Java 8


- Threads, Completable Future, Future, Parallel Streams

Setter Injection
Constructor Injection
Autowiring
Injecting Collections
Inner Beans
Inheritance, Interfaces, Scope
Aspect Oriented Programming (AOP) using Spring AOP and AspectJ
PropertyPlaceholderConfigurer , ResourceBundleMessageSource
Executing Queries, Transaction Management

Maven (Local, Remote and Central Repo)


Setup Maven
Manage Repositories and Dependency
Management
Managing dependent libraries, building and deploying project, create package (jar or war)
Integrate Maven with Eclipse
Manage testing and deployment options

Build life cycle,


Using environment variables JAVA_HOME, MAVEN_HOME, PATH, mvn -version
Create, build and deploy a maven project (Using Eclipse and Command Line)
Various aspects available in pom.xml - groupId, artifactId, version, packaging, dependencies, dependency scope (compile, provided, runtim
test, system), properties
Plugins
Running Maven Builds for a sample Spring Project
TDD Fundamentals
Environment Setup, Assertions, Execution Procedure, Executing Tests
Basic Tests using Junits
Parameterized Tests
Composing and running a test suite
Refactoring code, using setup and teardown
Using Mockito - Mocking a database, expecting calls, exception handling, callbacks, resetting mock, timeouts
Running PMD rulesets for checking Code Quality
Use Checkstyle, SONAR, Findbugs, FxCopAnalyzers
Refactoring code to improve code quality
Practice to generate the code quality report with no errors and minimum warnings
Introduction to Application Servers (Tomcat)
JSP, Servlets, JSTL
Initializing and Auto Configuring Spring Boot App
Configuring Web App using Spring Boot
Spring MVC Tag Libraries
View Resolvers
Controllers
Internationalization
Data Binding, Validation and Exception Handling
Responsive Web Design (RWD), Disadvantages of sites without RWD, Mobile First design, Bootstrap 4, emulate devices in Chrome Browse

doctype, viewport meta tag and attributes, Bootstrap CDN


Grid System, 12 columns, devices and corresponding prefix of bootstrap class, container, container-fluid, row, col-
navbar, navbar-expand-lg, navbar-dark, bg-dark, navbar-brand
navbar-nav, nav-item, nav-link
navbar-toggler, navbar-toggler-icon, collapse, navbar-collapse, ml-auto
Element selection
1) using Inspect
2) selection tool in Developer Console
3) Hovering over the elements in the HTML code within the "Element" section of Developer Tool
Applying Styles directly using Developer Tools
1) Add new style in the style window
2) Disable an existing style using the checkbox
3) Change value of an existing style
badge, badge-primary
Google Material Icon, Content Delivery Network (CDN), include icons in web page
list-group, list-group-item
card, card-title, card-body, card-text, change mouse cursor on hovering an icon
Display a list of cards using grid system and thus enabling RWD
gijgo, getting started, setting date format
Develop form with textbox, password, drop down, date using gijgo, radio button and checkbox form-row, form-group, form-control, form-
check, form-check-input, form-check-label, form-check-input
Separate CSS file for customization, overriding the styles of Bootstrap
ORM (Object-Relational Mapping), makes it easier to develop code that interacts with database, abstracts the database system, transactio

Evolution of ORM solutions, Hibernate XML Configuration, Hibernate Annotation Configuration, Spring Data JPA, Hibernate benefits, open
source, light weight, database independent query
Session Factory, Session, Transaction Factory, Transaction, Connection Provider
XML Configuration - persistence class, mapping xml, configuration xml, loading hibernate configuration xml file
Annotation Configuration - persistence class, @Entity, @Table, @Id, @Column, hibernate configuration xml file
Loading hibernate configuration and interacting with database
get the session factory, open session, begin transaction, commit transaction, close session

JPA (Java Persistence API), JPA is a specification (JSR 338), JPA does not have implementation, Hibernate is one of the implementation for
Hibernate is a ORM tool, Spring Data JPA is an abstraction above Hibernate to remove boiler plate code when persisting data using Hibern

Hibernate log configuration and ddl-auto configuration, JpaRepsitory.findById(), defining Query Methods, JpaRespository.save(),
JpaRepository.deleteById()
Query Methods - Search by containing text, sorting, filter with starting text, fetch between dates, greater than or lesser than, top
@ManyToOne, @JoinColumn, @OneToMany, FetchType.EAGER, FetchType.LAZY, @ManyToMany, @JoinTable, mappedBy
HQL stands for Hibernate Query Language, JPQL stands for Java Persistence Query Language, Compare HQL and JPQL, @Query annotation
fetch keyword, aggregate functions in HQL, Native Query, nativeQuery attribute
Scenarios where Criteria Query helps, CriteriaBuilder, Criteria Query, Root, TypedQuery
SLF4J vs. Log4J vs. Lombok
SLF4J - Env Setup, Sample Logging
SLF4j - error messages, warning levels, parameterized logging, different appenders
Lombok - Configuring Project using Lombok
Logging using Lombok annotations
Clean as you code - SONAR Intro, benefits
Using SonarQube with Maven - Update connect URLs, Proxies in POM
Sonar architecture - how it works? SonarQube client and Server, Sonar Database
Running Maven Sonar Goals for Static Code Analysis
Use SonarQube to find the following:
Finding Duplicate Code, Cyclomatic Complexity, Sphagetti Design, Lack of Unit Tests, Improper Coding Standards, Potential Bugs, Insufficie
Comments
Interpreting Sonar Logs
Introduction, Why DS& Algorithm, Types of DS, Notations, Time and Space Complexity, Start using frameworks for describing and analyzin
algorithms.
Begin using asymptotic notation to express running-time analysis.
Asymptotic notations for run-time analysis of algorithms
Best Case, Average Case, Worst case analysis of an algorithm
Finding Time Complexity of few iterative and recursive algorithms

Bubble, Insertion, Heap Sort, Quick Sort, Merge Sort


- Worst, Average and Best Case analysis
Array Traversal - Array representation in Memory, Measuring Time complexity, Searching, Traversal in Arrays, When to use Arrays
Single Linked List, Circular Single Linked List, Double Linked List, Circular Doube Linked List - Search, Inert, Traverse, Delete operations, Tim
complexity
Stack - Arrays and Linked Lists - Push, Pop, Peep, Delete
Queue - Linear and Circular Queues - enqueue, dequeue - Array and Linked Lists Implementation
Tree, Traversals (In-order, pre-order, post-order), Binary Tree - Array and Linked Lists implementation
Sorting and Searching in BST
Create, Peek, Insert, Extract and Delete from Heap
Hash Functions, Collision Resolution
Exercises on converting one string to another, longest common subsequence, palindromes etc.
SRP, OCP, DIP, LSP, ISP
Need and Benefits of Design Patterns

Singleton, Factory, Abstract Factory, Builder

Adapter, Decorator, Bridge, Façade


Chain of Responsibility, Command, Mediator, Observer, Iterator, Strategy, State

Spring initializr, https://start.spring.io, @SpringBootApplication, SpringApplication.run()


Makes Java development easy, avoids tedious development steps, reduces development time, avoids writing boilerplate code, provides
embedded tomcat server, avoid XML configuration
Spring configuration xml, spring xml schema spring-beans.xsd, <bean>, id, class, <constructor-arg>, <property>, name, value,
ClassPathXmlApplicationContext, ApplicationContext, context.getBean(), singleton scope, prototype scope
Spring Boot CLI and Initializing a Spring Boot Project - Working with Spring Boot Starters
Overriding auto-configured beans
"Reducing code with custom auto configurations
- @EnableAutoConfiguration
- writing own custom auto configuration"
Configuring with external properties
Customizing Error Pages
Spring Boot Dependency Management

application.properties, logging.level, logging.pattern, server.port, LoggerFactory, Logger, log levels (trace, debug, info, warn, error)
HTTP Request and Response, HTTP Request Format, HTTP Response Format, Request URL, Request Method, Content-Type, User-Agent
The need to transfer data between heterogenous systems, disadvantages of SOAP, REST stands for REpresentational State Transfer,
lightweight, maintainable, scalable, underlying protocol is HTTP; composed of resources, verbs, header, body, response status code, client
server technology
DispatcherServlet, @RestController, @GetMapping, invoking get request from browser, invoking get request from postman, bean
transformation to JSON, APIs for bean to JSON and vice versa, Jersey, Jackson, get method with parameter, return array, @PathVariable

@AutoConfigureMockMvc, MockMvc, @Test, get(), perform(), andExpect(), status().isOk(), jsonPath().exists, jsonPath().value(),


status().isBadRequest(), status().reason test execution in Eclipse, test execution in command line using maven
REST Web Service architecture with Controller, Service and Dao, service methods, invoking service using http client in Spring MVC, cross o
Errors and Exception Handling, Writing a REST Client, Modifying Response Formats (Content negotiation), Building custom response using
Response Entity.

HTTP method types (GET, POST, PUT, DELETE), REST service URL naming guidelines, @RequestMapping, @GetMapping, @PostMapping,
@PutMapping, @DeleteMapping, setting POST request payload and invoking the REST service in Postman and curl, JSON to bean mapping
@RequestBody, validating input request using javax.validation and hibernate validators, @Size, @NotNull, @NotBlank, @Min, @Max,
@JsonFormat, @Valid, global exception handling, handle number formatting errors, HTTP Caching,
Retrieving LIST in REST, Writing a RESTful Web Services with JSON

Introduction to OAuth2, Spring Security for OAuth2,


Steps Involved in User Authentication,
Auth Server, Resource Server, JWT tokens
Configuring Libraries in Maven
Create Oauth Config Class to define secret keys, public private keys , token validity and scopes
Write a Spring Boot RESt application, use Auth and Resource Servers
Try triggering REST requests with and without valid tokens and checking response

Spring RESTful Web Services, server.port definition

Distributed/versioned configuration
Service registration and discovery
Routing
Service-to-service calls
Load balancing
Circuit Breakers
Distributed messaging
Using the above concepts:
1. Decompose the monolith application built earlier into micrroservices 2. Write th
microservices using Spring Boot. Expose each as a REST service
3. Demonstrate features of spring cloud like API Gateway, Load balancer, Circuit breaker, Service discovery for microservices used to addre
the challenges of a distributed architecture
4. Securing Microservices with Security
Container Introduction, Container architecture, Overview of Docker, Docker architecture
Docker file
Working with containers
Container Communication
Docker Compose
open source; create, deploy and run applications in containers;
package application; virtual machine; image; container

nginx, pull, run, listing images, container name, detaching the process, port number, volumes, listing containers, listing non running conta
starting and stoping a container, Dockerfile, FROM, COPY, ENTRYPOINT, build, remove images and containers

docker-compose.yml, docker-compose up command, mapping MySQL data file to local folder, schema creation script execution definition
defining port, password definition, docker compose up, executing mysql client on the mysql server container

Defining Dockerfile for REST API, building Dockerfile from docker-compose.yml, using depends_on in docker compose to define dependen
using links to establish connectivity between REST API service and MySQL server, modify connection properties in REST API to connect to t
docker instance
What, Why and Features of Kubernetes, Kubernetes Architecture
Kubernetes Cluster, Master, Node
Kubernetes Architecture
Kubernetes Basics Modules ( Create a Kubernetes Cluster, Deploy an App, Explore your App, Expose your app publicly, Scale up your App,
Update your app)

Deploy the container image created earlier on A Kubernetes cluster. Use an open source framework like Minikube for a standalone deploy

Kubernetes Cluster, Master, Node


Cloud Introduction, Difference between on-premise server and cloud offerings - Server, Storage, Service, PAAS, SAAS. IAAS, Private cloud,
cloud
Introduction to Containers. Containers vs VM
Global cloud infrastructure of AWS (Regions, AZ), Cloud services -- Compute, Storage, Database, Container
Introducing devops (CI/CD) on AWS
Learn how to automate a web application deployment using Services like Elastic Beanstalk. Create environment in AWS containing VPC, EL
EC2 Instances, Subnets, Security groups …for deploying different web applications
Introducing DevOps, CI/CD stack-- Code Commit, Code Build, Code Deploy, Code Pipeline, Code Star

CI/CD with AWS Code services.


Setup Codepipeline within the AWS environment that will automate the build & deployment of microservices containers on ECS / EKS.
Developers will write / enhance microservices & commit it to the source control repository. They will then watch how the CI/CD is
automatically executed without downtime to the existing service TASKS:
1. Setting up code repository for microservices 2. Infrastructure automa
setup 3. Infrastructure creation using automation scripts 4. Use the CI/CD infrastructu
check automated build, deploy of artifacts on the container instances. Eg for ECS, the build should create a container image of a microser
& push it to the ECR repository, The deploy should deploy the container images on the ECS cluster having a task definition, Service, Target
group 5. The above process should be repeated so that any changes to the
source code will result in the containers being automatically updated to reflect the new change
Jquery and its features
Javascript framework, DOM manipulation, event handling, AJAX, how to use - download js/CDN, basic usage thru $, $(document)
Basic components
Selectors - TagId, Tagname, tag class; attributes - text, attr, val, html, addClass, chaining of attributes

DOM manipulation & events


content manipulation, DOM element addition and removal, append, clone, Events - click, change, blur, dblclick, load, keyup, mouseover,
unload

Basic AJAX with JQuery

SPA basics
Works inside a browser, no page reload, example multi page application (MPA) sites, example SPA sites, technologies to develop SPA (HTM
CSS, JavaScript, jQuery, ajax, AngularJS, Angular, ReactJS, Ember.js)
Traditional page life cycle in Servlet/ASP.NET/ASP.Net MVC, initial request, single time loading of HTML resources, AJAX, JSON
Limitations of implementing SPA using JavaScript, Limitations of implementing SPA using jQuery, how to implement using angular, better
performance since UI resources loads only once, gives better user experience, clear separation of view, action and web service call, compa
with all major browsers

Angular introduction
Angular JS is version 1, called as Angular from version 2, how Angular JS works, key differences between Angular JS and Angular, Angular J
uses JavaScript, Angular uses TypeScript, Angular is command line based, Angular has a compilation step

ECMAScript 6
European Computer Manufacturers Association (ECMA) standards organization, ECMAScript, scripting language specification, let, const, ar
functions, classes, TypeScript ES6 is related to TypeScript and Angular

Typescript
static typing, superset of JavaScript, typescript code compiles to JavaScript, browser compatible, open source, primary language of angula
Install typescript npm package, write typescript program, compile and run
Data Types (boolean, number, string, array, tuple, enum, any, void) interfaces, class and modules
Defining functions with parameters' data type and return data type defined, using for .. of to iterate through arrays

Angular
Create new angular application in command line (ng new), execute the application (ng serve), understanding app component and app
component html, importance of app module
Interpolation, ng directives(ngIf, ngFor), pipes - builtin for date, Upper and lower case, currency
Component
ng generate Component, component.ts, component.html, @component decorator, selector, templateUrl, style, two way binding using
[(ngModel)], click event and event handling, difference between normal and square brackets, Routing: router-outlet, routerLink,
routerLinkActive
Basics of Karma testing
ng test, TestBed, fixture, component, debugElement, nativeElement, detectChanges(), it(), expect(), toEqual(), toBe()

Template driven forms


template reference variable, [(ngModel)], FormModule, Validation Properties (invalid, touched, dirty, errors.required, errors.minlength, js
pipe, binding ngModel with radio buttons using [value], binding ngModel with select drop dwon using [value], [selected], (change) and
$event.target.value, karma testing with createNewEvent() and dispatchNewEvent()
Reactive forms
ReactiveFormsModule, FormControl, [formControl], formControlName, set form control values, FormGroup, Validators (required, minleng
maxlength), read value from FormGroup, definition of FormGroup in <form>, nested form groups, FormBuilder, Dynamic Forms, FormArra
formArrayName, FormBuilder.array(), FormBuilder.control(), push new form control
Component interaction
app selector with passing parameters, @Input decorator, filter() method, defining router link with parameters in app-routing.module.ts,
defining router link in HTML template with parameter, ActivatedRoute, paramMap, router.navigate() method
Guard
generate guard, define protected routes in app-routing.module.ts with mapping to guard, define authentication service to retain the statu
authentication, implement redirection in guard based on authentication status
Services
generate service, dependency injection, HttpClientModule, HttpClient, HttpHeaders, Observable, get(), post(), put(), delete(), subscribe, er
handling
Skill
Software
Engineering
Concepts,
OOP, OOAD

Software
Architecture
Styles
UI Markup,
Styling, RWD

Mobile,
Pervasive
Computing

Security
Principles
Database and
Storage

Compute and
Integrate
Compute and
Integrate

Security and
Identity

Security and
Identity

Governance and
Tooling

Governance and
Tooling

Governance and
Tooling

Network and
Content Delivery

NOTE
Topics
Software Engineering Concepts (3 hours):
Software Characteristics, Software Process Models (Incremental/Iterative/Waterfall), People (Team Players/Team Leaders/Coordination/C
Significance of Software Quality Assurance, Quality Control, Significance of finding issues early in the cycle, Fail Fast approaches
Introduction of Software Scoping and Estimates, Introduction to Software Risks and mitigation approaches
Software Configuration Management (SCM), Change Control, Version Control, etc.
Importance of Unit and Integration testing strategies (Test Case, Test Suite, Test Data, Test Results, Test Evidence etc.)
OOP (2 hours):
Classes and Objects, Encapsulation, Abstraction and Information Hiding, Polymorphism, Inheritance
OOA (1 hour):
Requirements Elicitation, Usecases, Impact Analysis, Software Prototyping approaches, Interpreting Functional and Non-Functional Requir
OOD: (2 hours)
Modularity, Functional Independence, Cohesion, Coupling, Entity and Relationships, Cardinality

Types of Software Architectures (Client-Server, Peer-Peer, Layered, SOA, MSA, Hybrid, ESB)

Principles of User Interface Design (User in control, reduce memory load, consistency etc.), Know the users (Novices, Intermittent, Frequen
UI Design Process (User Analysis, Environment Analysis, etc., UI Design, Prototypes, Evaluate with users), Defining Interface objects and ac
Introduction to HTML5, CSS3, Various design elements
Importance of RWD, Browsers and Devices, Theming, Layouts, Components, Accessibility

Mobile Computing:
Mobile Computing Models, Supporting Programming Languages, Implementation Tools, Do's and Dont's
Pervasive Computing and IoT:
Introduction to Context-Aware Computing
RFID-Based System, technology and standards
Sensing Technologies, programming models for sensors, uses and applications;
Smart Spaces Concept

Security principles:
Transport layer Security, TCP/IP, UDP/IP, Sockets, Ports, Authentication, Authorization, Encryption, public/private keys, SSL certificates, TL
Database Concepts
Data Models, Schemas and Instances
Database Languages
Classification of DBMS (RDBMS, Object/Block/Storage etc.)
Entity Types, Entity Sets, Attributes, Keys, Relationships, Structural Constraints, Normalization
ER Diagrams
ACID and BASE Properties
Transactions and Locks (Isolation levels)
Query Processing and Optimization (Joins, Plan Table, Index Statistics, Query Cost etc.)
Storage
Physical Storage, File Storage, Table spaces
Concurrency and Deadlock

Deep dive on REST Architecture


- Architecture Constraints (Uniform Interface, Loose Coupling, Stateless, Resource, Representations)
Microservices Architecture
- significance, Principles, Loose coupling, Modularity, Independently Deployable, Domain Driven Design, Stateless etc.)
Cloud Computing
- Fundamentals, Types: IaaS, PaaS, SaaS
- Deployment and Hosting Models (On-Prem/Private Cloud, Public Cloud, Hybrid)
- Need for Global Deployment (Reduced Latency and Increased Redundancy)
- Securing the App in Cloud
- Compare and Contrast Cloud Providers
Communication and Discovery
- Event Driven Architecture, Bus Toplogy, Queue/Topics, Discovery and Lookup, Distributed Caching
CI/CD and Containerization
- What is DevOps, automation, collaboration, integration
- DevOps Principles, Benefits, Need for CI and CD
- Phases - plan, code, build, test, release, deploy, operate, monitor
Dockerization and the need, Resource Optimization
Orchestration
- Configuring, Auto-scaling, Scheduling, allocation of resources, load balancing, traffic routing, health monitoring

Security Services
- Authentication (Peer Entity, Data Origin), Access Control, Data Confidentiality, Integrity, Non-repudiation (origin, destination), Availabilit
Key Terms
Security Threat, Security Attack (Passive, Active), Modification of messages
Security Mechanisms
Encipherment, Digital Signature, Access Control, Trusted Source etc.
RBAC
creating role based access control, permission matrix, session keys, time-to-live etc.
IAM
Introduction to IAM, User Groups, Security Policies, Monitoring etc.

Classical Encryption Techniques


- Symmetric, Asymmetric (Public/Private keys)
- DES
- Message authentication code, message digest
- Cryptanalysis, Bruteforce
Key Management
- Distribution of Public/Private keys (Authority, Certificates), Key Exchange protocols
Types of attacks
- Message modification, Sequence Modification, Timing Modification, Source repudiation, Destination repudiation, Replay attacks

Governance and Monitoring


Health Checks and Thresholds, Liveness checks, Performance monitors in Web servers; database monitoring through logs and tools like pr
Logging
- to files, console, database, cloud logs
Alerting
Email notification, Resource Utilization / Load Threshold Alerts

Unit Testing
Test Driven Development and Unit test cases
Unit vs. Integration Testing
Source Control
- Checkin/Checkout, Merge, Resolve Conflicts, Branches, Pull requests and Code Reviews etc.
Integration Tools
- Jenkins, AWS/Azure Code Pipelines

Virtual Network, VPCs, DNS, IP addresses, Subnets, Inbound / Outbound Routes, Gateways, NACL, Security Groups,
API gateway on cloud - Functionality of API gateway, routing request to resource
Web Server, App Server, Load Balancers

PPT content to support these topics will be provided

You might also like