posts
-
2024
-
19 NovHacktoberfest 2024: My contributions
-
12 NovGDCR 2024: My participation summary
-
05 NovExtreme branchless: primitives
-
29 OctExtreme branchless: containers
-
22 OctNo value Software Engineer
-
15 OctCoding challenges retrospective
-
08 OctEvent sourcing migrations retrospective
-
02 Oct10 years mark
-
24 SepDesigning strongly typed range
-
17 SepBowling kata as a zipper
-
10 SepHaskell Legacy: Adding features
-
03 SepRetrospective of my time at Autogriff
-
27 AugHaskell Legacy: Pure projection
-
20 AugHaskell Legacy: CQRS
-
13 AugHaskell Legacy: Going event-first
-
06 AugHaskell Legacy: Reversing writes
-
30 JulHaskell Legacy: Creating events
-
23 JulHaskell Legacy: Extracting business logic and introducing effects
-
16 JulHaskell Legacy: Testing
-
09 JulHaskell Legacy: Introduction
-
02 JulPace in pair programming
-
25 JunIn-depth programming language is not the point
-
18 JunHaskell Ecosystem Workshop & ZuriHac 2024
-
24 MarThe end of a 666 days streak
-
20 MarIntroduction to GHC's Generics
-
17 MarFix aeson ToJSONKey/FromJSONKey derivation
-
13 MarFizzbuzz kata: branchless version
-
10 MarOOP has not invented encapsulation
-
06 MarTypes for building and types for running
-
03 MarTypes strengthening
-
28 FebeDSLs for tests
-
25 FebType-driven development applied: librarian
-
21 FebTypes and Tests
-
18 FebArchitecture Heuristic YNIA: Events metadata
-
14 FebHaskell: imports vs exports
-
11 FebHaskell refactorings
-
07 FebBypassing Prometheus SDK push model
-
04 FebNaming has a social convention
-
31 JanPrescriptivism and Descriptivism
-
28 JanSoftware inventory
-
24 JanScreaming Architecture
-
21 JanPersonal README
-
17 JanNeoViM: Improve Telescope (last edited) find files
-
14 JanAccess Control: Biscuit
-
10 JanAccess Control: topaz
-
07 JanAccess Control: Open Policy Agent
-
03 JanAccess Control: Capabilities
-
-
2023
-
31 DecAccess Control: Mandatory vs Discretionary
-
27 DecAccess Control: Relationship-based Access control
-
24 DecAccess Control: Organisation-based Access control
-
20 DecAccess Control: Graph-based Access control
-
17 DecAccess Control: Attribute-based Access control
-
13 DecAccess Control: Role-based Access control
-
10 DecAccess Control: Context-based Access control
-
06 DecAccess Control: ACL
-
03 DecHomelab: Monthly certificate regeneration deployment issue
-
29 NovArchitecture Heuristic YNIA: Participants
-
26 NovGame of Life kata: branchless Grid
-
05 NovGDCR 2023: My participation summary
-
01 NovHacktoberfest 2023: My contributions
-
29 OctFrom custom Monad to Polysemy
-
25 OctImplementation-oriented Monad
-
22 OctHomelab: client certificates CRL regeneration
-
18 OctArchitecture Heuristic YNIA: Queues
-
15 OctHaskell Type Reflection Anti-pattern
-
11 OctQuasiQuoting Smart Constructors
-
08 OctNix: optimizing Haskell build size
-
04 OctHaskell contributions kick-start
-
01 OctTeam owned architecture
-
27 SepWitness functions
-
24 SepHomelab: Monitoring Withings
-
20 SepAnnouncing grafana-dashboards.nix
-
17 SepHomelab: Monitoring alerting through AlertManager
-
13 SepHomelab: Monitoring alerting
-
10 SepHomelab: Monitoring dashboards
-
06 SepHomelab: Monitoring introduction
-
03 SepHomelab: Secrets management
-
30 AugHomelab: Regenerating certificates
-
27 AugHomelab: Intermediate CA
-
23 AugHomelab: client certificates
-
20 AugHomelab: server certificates
-
16 AugHomelab: current state and plan
-
13 AugTest-Driven Development Freedom
-
09 AugWhat a good design is
-
06 AugMy history with ViM
-
02 AugDependencies management
-
30 JulA case against Haskell immersion
-
26 JulMy encounter with Caddy
-
23 JulBloodhound redesign progress
-
19 JulHaskell macros
-
16 JulNix: optimizing Haskell-based Docker-size
-
12 JulNew library: kill-bool
-
09 JulAbaks: OpenAPI
-
07 JulAbaks: Views
-
02 JulAbaks: A word on testing
-
28 JunAbaks: Drivers
-
25 JunAbaks: Interface Adapters - API
-
21 JunAbaks: Testing Use Cases
-
18 JunAbaks: Use Cases
-
14 JunAbaks: testing core domain
-
11 JunAbaks: commands
-
07 JunAbaks: events
-
04 JunAbaks: initial requirements
-
31 MayZsh: debugging git remotes completion
-
28 MayPolysemy: Scoped
-
24 MayPolysemy: Opaque
-
17 MayPolysemy: Onion architecture
-
14 MayPolysemy: Design heuristics: Hiding vs Exposing
-
10 MayPolysemy: Design heuristics: Dispatcher
-
07 MayPlutus: Pioneers Program 4th cohort - Lecture 10 - Built with plutus
-
03 MayPolysemy: Design heuristics: Hiding interpreters
-
30 AprPlutus: Pioneers Program 4th cohort - Lecture 9 - Stablecoin
-
26 AprDesign for collaboration
-
23 AprPlutus: Pioneers Program 4th cohort - Lecture 8 - Staking
-
21 AprPolysemy: 1.9.0.0 released!
-
19 AprA reasonable hiring process
-
16 AprPlutus: Pioneers Program 4th cohort - Lecture 7 - Marlowe and hosted smart contracts
-
12 AprRetrospective of my first CTO experience
-
09 AprPlutus: Pioneers Program 4th cohort - Lecture 6 - Testing
-
05 AprPolysemy: Design heuristics: Grouping interpreters
-
02 AprPlutus: Pioneers Program 4th cohort - Lecture 5 - Minting
-
29 MarPolysemy: Design heuristics: Effects layering
-
26 MarPlutus: Pioneers Program 4th cohort - Lecture 4 - On-chain/Off-chain smart contract code and indexers
-
22 MarPolysemy: Design heuristics: Split by responsibility
-
19 MarPlutus: Pioneers Program 4th cohort - Ouroboros
-
15 MarPolysemy: Design heuristics: IO hunting
-
12 MarPlutus: Pioneers Program 4th cohort - lecture 3: Tests, Times, and Dapps
-
08 MarPolysemy: Async gotchas
-
05 MarPlutus: Pioneers Program 4th cohort kick start
-
01 MarPolysemy: Strategy internals
-
26 FebPolysemy: Changing return
-
22 FebPolysemy: IO
-
19 FebPolysemy: NonDet
-
15 FebPolysemy: AtomicState
-
12 FebPolysemy: Fixpoint
-
08 FebPolysemy: Bundle
-
05 FebPolysemy: Higher order Effects and combined interpreters
-
01 FebPolysemy: Final vs Embed
-
29 JanPolysemy: Tactics binding deprecated workaround
-
25 JanPolysemy: Tactics binding
-
22 JanPolysemy: Strategies binding
-
18 JanPolysemy: Async
-
15 JanPolysemy: Higher-order effects with Final
-
11 JanPolysemy: Final
-
08 JanPolysemy: Higher-order effects introductions
-
04 JanPolysemy: Input
-
01 JanPolysemy: Embed
-
-
2022
-
28 DecPolysemy: Interceptors to buffer
-
25 DecPolysemy: Introduction to Interceptors
-
21 DecPolysemy: Tagged effects
-
18 DecPolysemy: Interpretation and effects inline injection
-
14 DecPolysemy: Interpretation and effects injection
-
11 DecPolysemy: Introduction to Effect interpretation
-
07 DecPolysemy: Introduction to Effect definition
-
04 DecPolysemy: EffectRow design
-
30 NovPolysemy: EffectRow
-
27 NovPolysemy: Introduction to interpreters
-
23 NovPolysemy: An introduction
-
22 NovTDD: optimizing for inputs vs for outputs
-
20 NovContributors management
-
19 NovLocal vs Global optimum
-
16 NovHacktoberfest 2022: My feedback
-
15 NovProblems before solution
-
13 NovHacktoberfest 2022: My contributions
-
12 NovLanguage tourist
-
09 NovWrite for debug
-
08 NovUser Driven Design
-
06 NovGDCR 2022: My feedback
-
01 NovInitial log
-