Share this postThe Coder Cafe📌 IndexCopy linkFacebookEmailNotesMore📌 IndexCodingAlgorithms and Data StructuresArrays vs. Linked ListsBinary HeapsFord-Fulkerson AlgorithmGraphsTopological SortCoding Challenges1,000 Subscribers, 1 Coding ChallengeAdvent of CodeExercismGossip GlomersOne Billion Row ChallengeConcurrencyConcurrency vs. ParallelismCoroutinesData Race vs. Race ConditionMutex vs. SemaphoreFunctional ProgrammingFunctors, Applicatives, and MonadsPartially Applied Functions vs. CurryingSoftware EngineeringCode HealthCognitive LoadCohesionCouplingFocus on Product Ideas, Not RequirementsNested CodePremature AbstractionsReadabilitySimplifying Complex if StatementsTidy First?You Aren’t Gonna Need It (YAGNI)TestingFundamentalsAvoiding Logic in TestsCode CoverageEventually Green Tests (April Fool’s Joke)Line vs. Branch CoverageUnit Tests10 Unit Tests PropertiesCommon Arguments Against Unit TestsTest Behavior, Not ImplementationTest-Driven Development (TDD)Unit Tests As DocumentationDistributed SystemsDatabasesACIDConsensusConsistency ModelExploring Database Isolation LevelsIsolation LevelSafety and LivenessThe CAP TheoremThe PACELC TheoremTransactionsPerformanceLatency and User ExperienceFundamentalsWorking on Complex SystemsSystem DesignBloom FiltersProbabilistic IncrementReliabilityAnalysisLurking VariablesPost Hoc Ergo Propter HocFundamentalsAdaptive LIFOFail Open vs. Fail ClosedGraceful DegradationReliabilityResilient, Fault-tolerant, Robust, or Reliable?SystemsComputer ArchitectureInstruction PipeliningSimultaneous MultithreadingLinuxLinux Soft vs. Hard LockupSoft Skills & CommunicationCommunication10 Rules I Learned About Technical WritingThe XY ProblemCritical ThinkingCognitive BiasesConfirmation BiasLateral ThinkingStreetlight EffectSurvivor BiasSubscribe