Skip to content

Instantly share code, notes, and snippets.

@nandilugio
Last active December 1, 2023 13:50
Show Gist options
  • Save nandilugio/895d2e930cee7dd3ea791230d80a92ba to your computer and use it in GitHub Desktop.
Save nandilugio/895d2e930cee7dd3ea791230d80a92ba to your computer and use it in GitHub Desktop.
Recruitment interview ideas
===========================
You
---
One interesting challenge
difficult feature?
difficult bug?
Any personal projects?
Tech you're into now
What do you do whn you find something wrong? eg. ...
Your experience pairing?
How do you get updated?
What would you like to be doing a year from now?
Software Development
--------------------
Testing
TDD
Classisists vs. Mockists
Kinds
Balance between them (Pyramid)
Unit vs. Integration vs. En-to-End
Interfaces
Languages
Type systems
Strong vs. Weak
Static vs. Dynamic, Gradual
Duck typing
Types vs. tests
Constraints: ease & power vs. uncertainty
Paradigms
Object Oriented
Functional
Metaprogramming: ease & power vs. uncertainty
High/low level
Verbosity
Hardware control
Rapid App Development
Size of language
Standard lib vs. 3rd party
How easy is to write DSLs
Features
Higer-order Functions and Lambda Expressions
Data Immutability
Destructuring and Pattern Matching
Tail-recursion
Memory management
Garbage collection
Ref. Counting, Smart Pointers, Borrowed Pointers (Rust)
Code Architecture
Concepts
Abstractions and the Business Model
Interfaces, abstract classes
Inheritance
Encapsulation
Polymorphism
Practices
SOLID
Single responsibility
Open-closed
Liskov substitution
Interface segregation
Dependency inversion
KISS
DRY, and when not to
Future preparedness, YAGNI
Small frameworks/libs
Architectural Patterns
Hexagonal Architecture
Design Patterns
List: https://en.wikipedia.org/wiki/Software_design_pattern
Fowler's Code Smells
List: https://blog.codinghorror.com/code-smells/
Web Services
REST
GraphQL
Concurrency
Threads vs. Procesess (vs. OTP processes)
Shared memory/resources and Locking
Race Conditions
GIL
Green Threads
Caching
Invalidation
Sharing
Warm-up
Infrastructure
Monolith vs. Microservices
Independent teams
Isolated deployments
Application servers scaling
Load balancers
Shared data
Databases
Volatile memory: Caches, Sessions
Locking
Async work
Workers
Idempotence
Queues
Task overlapping and unicity
Messaging
PubSub (Rabbit)
Streaming (Kafka)
Containers
Docker
Orchestration
swarm
kubernetes
Cloud providers:
AWS, GoogleCloud, Azure
IASS: DigitalOcean, Linode
PAAS: Heroku, Gigalixir
Legacy codebases
Challenges
Performance
Data access and processing
DB vs. generic lang
(see below)
Assets optimization
Avoiding "magic"
Big O notation and algorithms
Databases
Relational vs. NoSQL
ACID
Atomic
Consistent
Isolated
Durable
BASE
Basically Available
Soft state
Eventually consistent
Relational
Querying techniques
Rows vs. Sets
Performance
Query planner
Indexing
When?
Types
Modelling
Constraints
Primary/Foreign Keys
Row checks / Exclusion / Unique / Not-null
Derived data
Key/Value
Memcached
Redis
Types
Document
MongoDB
Scaling
Replication
Reads vs. writes
NoSQL
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment