Full Stack Developer Interview Questions
Full Stack Developer Interview Questions
[⬆] Architecture:
Design principles. (SOLID, DRY, KISS, YAGNI, Worse is better, convention over
configuration, separation of concerns, principle of least knowledge, tourist
principle, single source of truth, single version of the truth)
Drawbacks of not using separation of concerns
o Adding new features will take an order of magnitude longer
o Impossible to optimize
o Extremely difficult to test
o Fixing and debugging can be a nightmare (fixing something in one
place can lead to something else breaking that seems completely
unrelated).
Microservices are a style of software architecture that involves delivering
systems as a set of very small, granular, independent collaborating services.
Pros of microservices (The services are easy to replace, Services can be
implemented using different programming languages, databases, hardware
and software environment, depending on what fits best)
The Twelve-Factor App (http://12factor.net)
What is SOLID?
Rule Description
Single responsibility A class should have one and only one task/responsibility. If class is perfor
principle task, it leads to confusion.
Open/closed The developers should focus more on extending the software entities rat
principle them.
Liskov substitution
It should be possible to substitute the derived class with base class.
principle
Interface It’s like Single Responsibility Principle but applicable to interfaces. Each in
segregation responsible for a specific task. The developers should need to implement
principle doesn’t need.
Dependency Depend upon Abstractions but not on concretions. This means that each
inversion principle separated from other using an abstract layer which binds them together.
[⬆] WEB:
WEB security vulnerabilities (XSS, CSRF, session fixation, SQL injection, man-in-
the-middle, buffer overflow)
CSRF prevention. (CSRF-token)
What is JSONP, CORS? (A communication technique used in JavaScript
programs running in web browsers to request data from a server in a different
domain, something prohibited by typical web browsers because of the same-
origin policy)
HTTPS negotiation steps.
What is HTTP Strict Transport Security (HSTS)? (Prevents Man in the Middle
attacks)
Browser-server communication methods: WebSocket, EventSource,
Comet(Polling, Long-Polling, Streaming)
What is character encoding?
What is role-based access control and access control list?
What is session and persistent cookies, sessionStorage and localStorage?
How to implement remember-me?
(http://jaspan.com/improved_persistent_login_cookie_best_practice)
Authentication using cookies, JWT (JSON Web Tokens).
How OAuth 2.0 works?
[⬆] SQL:
SQL join types (inner join, left/right outer join, full outer join, cross join )
SQL normal forms (1.The domain of each attribute contains only atomic values,
and the value of each attribute contains only a single value from that domain.
2.No non-prime attribute in the table is functionally dependent on a proper
subset of any candidate key. 3.Every non-prime attribute is non-transitively
dependent on every candidate key in the table. BCNF.Every non-trivial
functional dependency in the table is a dependency on a superkey.)
Isolation levels and Anomalies (Read Uncommitted, Read Committed,
Repeatable Read, Serializable
Lost_update
Non_repeatable_reads
Isolation_level\Anomaly (because of Dirty_read P
second_lost_update
rollback)
Repeatable Read - - - m
Snapshot - - -
Serializable - - -
[⬆] NoSQL:
[⬆] Transactions:
What ACID?
What is 2-phase, 3-phase commit?
What is pessimistic/optimistic locking?
[⬆] Scalability:
sticky/non-sticky sessions
Sticky sessions vs storing sessions in Redis.
[⬆] Distributed:
databases CP or AP")
What is map-reduce? (Word count example)
Sharding counters.
Distributed software:
o Distributed streaming platforms: kafka
o Distributed key-value store: zookeeper
o Map-reduce: hadoop, spark
o Distributed file system: hbase
o Cluster management: mesos, kubernetes
Herlihy’s consensus hierarchy. Every shared object can be assigned a
consensus number, which is the maximum number of processes for which the
object can solve wait-free consensus in an asynchronous system.
1 Read-write registers
2 Test-and-set, swap, fetch-and-add, queue, stack
⋮ ⋮
∞ Augmented queue, compare-and-swap, sticky byte
Consensus number. Maximum number of threads for which objects of the class
can solve consensus problem.
[⬆] Cache:
[⬆] Concurrency:
[⬆] Networking:
[⬆] Java:
[⬆] Javascript:
this keyword
How prototypes work?
inheritance
differences between == and === (http://dorey.github.io/JavaScript-Equality-
Table/)
closures
What is MVC, MVP, MVVM?
What is promise?
What is event bubbling and capturing? (target.addEventListener(type, listener[,
useCapture]))
What is AMD(Asynchronous Module Design) and CommonJS?
What is jQuery?
[⬆] Codewriting:
What is Monad?
[⬆] Git:
[⬆] DevOps:
[⬆] QA:
What is unit test? (A test that purely tests a single unit of functionality)
What is component test?
What is integration test? (Examine several parts of a system to make sure that
when integrated, these parts behave as expected)
What is user acceptance test? BDD?
Unit tests advantages?
Types of tests: acceptance testing, functional testing, smoke testing,
regression testing, unit testing, integration testing, stress testing, (Load,
Performance, Sanity, Stability, Security, Feature, Progression, Installation,
Business).
Differences between stub and mock? (A stub is a test double with
preprogrammed behavior. Mocks are stubs with preprogrammed
expectations)
Selenium tests and webdriver.
How to test multithreading code?
What is Consumer Driven Contract? link
[⬆] Agile:
[⬆] Algorithms:
[⬆] Other:
[⬆] Cryptography:
[⬆] Security:
[⬆] Android: