Last active
December 1, 2023 13:50
-
-
Save nandilugio/895d2e930cee7dd3ea791230d80a92ba to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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