A software designer website

#abaks

Abaks: OpenAPI -

Abaks: Views -

Abaks: A word on testing -

Abaks: Drivers -

Abaks: Interface Adapters - API -

Abaks: Testing Use Cases -

Abaks: Use Cases -

Abaks: testing core domain -

Abaks: commands -

Abaks: events -

Abaks: initial requirements -

#architecture

Architecture Heuristic YNIA: Participants -

Architecture Heuristic YNIA: Queues -

What a good design is -

Dependencies management -

Problems before solution -

#build

Nix: optimizing Haskell build size -

#cardano

Plutus: Pioneers Program 4th cohort - Lecture 10 - Built with plutus -

Plutus: Pioneers Program 4th cohort - Lecture 9 - Stablecoin -

Plutus: Pioneers Program 4th cohort - Lecture 8 - Staking -

Plutus: Pioneers Program 4th cohort - Lecture 7 - Marlowe and hosted smart contracts -

Plutus: Pioneers Program 4th cohort - Lecture 6 - Testing -

Plutus: Pioneers Program 4th cohort - Lecture 5 - Minting -

Plutus: Pioneers Program 4th cohort - Lecture 4 - On-chain/Off-chain smart contract code and indexers -

Plutus: Pioneers Program 4th cohort - Ouroboros -

Plutus: Pioneers Program 4th cohort - lecture 3: Tests, Times, and Dapps -

Plutus: Pioneers Program 4th cohort kick start -

#career

A case against Haskell immersion -

Language tourist -

#CI

Nix: optimizing Haskell build size -

#cloud

My encounter with Caddy -

#code kata

Game of Life kata: branchless Grid -

TDD: optimizing for inputs vs for outputs -

Write for debug -

GDCR 2022: My feedback -

GDCR 2023: My participation summary -

#code retreat

Write for debug -

GDCR 2022: My feedback -

GDCR 2023: My participation summary -

#coding dojo

Game of Life kata: branchless Grid -

TDD: optimizing for inputs vs for outputs -

Write for debug -

GDCR 2022: My feedback -

GDCR 2023: My participation summary -

#contributions

Haskell contributions kick-start -

#design

Architecture Heuristic YNIA: Participants -

From custom Monad to Polysemy -

Implementation-oriented Monad -

Architecture Heuristic YNIA: Queues -

Haskell Type Reflection Anti-pattern -

QuasiQuoting Smart Constructors -

Witness functions -

Test-Driven Development Freedom -

What a good design is -

New library: kill-bool -

Abaks: OpenAPI -

Abaks: Views -

Abaks: A word on testing -

Abaks: Drivers -

Abaks: Interface Adapters - API -

Abaks: Testing Use Cases -

Abaks: Use Cases -

Abaks: testing core domain -

Abaks: commands -

Abaks: events -

Abaks: initial requirements -

Polysemy: Scoped -

Polysemy: Opaque -

Polysemy: Onion architecture -

Polysemy: Design heuristics: Hiding vs Exposing -

Polysemy: Design heuristics: Dispatcher -

Polysemy: Design heuristics: Hiding interpreters -

Design for collaboration -

Polysemy: 1.9.0.0 released! -

Polysemy: Design heuristics: Grouping interpreters -

Polysemy: Design heuristics: Effects layering -

Polysemy: Design heuristics: Split by responsibility -

Polysemy: Design heuristics: IO hunting -

Polysemy: Async gotchas -

Polysemy: Strategy internals -

Polysemy: Changing return -

Polysemy: IO -

Polysemy: NonDet -

Polysemy: AtomicState -

Polysemy: Fixpoint -

Polysemy: Bundle -

Polysemy: Higher order Effects and combined interpreters -

Polysemy: Final vs Embed -

Polysemy: Tactics binding deprecated workaround -

Polysemy: Tactics binding -

Polysemy: Strategies binding -

Polysemy: Async -

Polysemy: Higher-order effects with Final -

Polysemy: Final -

Polysemy: Higher-order effects introductions -

Polysemy: Input -

Polysemy: Embed -

Polysemy: Interceptors to buffer -

Polysemy: Introduction to Interceptors -

Polysemy: Tagged effects -

Polysemy: Interpretation and effects inline injection -

Polysemy: Interpretation and effects injection -

Polysemy: Introduction to Effect interpretation -

Polysemy: Introduction to Effect definition -

Polysemy: EffectRow design -

Polysemy: EffectRow -

Polysemy: Introduction to interpreters -

Polysemy: An introduction -

Problems before solution -

Write for debug -

User Driven Design -

#dev

My history with ViM -

Zsh: debugging git remotes completion -

Language tourist -

#development

Homelab: Monitoring Withings -

My history with ViM -

Zsh: debugging git remotes completion -

#devops

My encounter with Caddy -

#docker

Nix: optimizing Haskell-based Docker-size -

#effects systems

Polysemy: Scoped -

Polysemy: Opaque -

Polysemy: Onion architecture -

Polysemy: Design heuristics: Hiding vs Exposing -

Polysemy: Design heuristics: Dispatcher -

Polysemy: Design heuristics: Hiding interpreters -

Polysemy: 1.9.0.0 released! -

Polysemy: Design heuristics: Grouping interpreters -

Polysemy: Design heuristics: Effects layering -

Polysemy: Design heuristics: Split by responsibility -

Polysemy: Design heuristics: IO hunting -

Polysemy: Async gotchas -

Polysemy: Strategy internals -

Polysemy: Changing return -

Polysemy: IO -

Polysemy: NonDet -

Polysemy: AtomicState -

Polysemy: Fixpoint -

Polysemy: Bundle -

Polysemy: Higher order Effects and combined interpreters -

Polysemy: Final vs Embed -

Polysemy: Tactics binding deprecated workaround -

Polysemy: Tactics binding -

Polysemy: Strategies binding -

Polysemy: Async -

Polysemy: Higher-order effects with Final -

Polysemy: Final -

Polysemy: Higher-order effects introductions -

Polysemy: Input -

Polysemy: Embed -

Polysemy: Interceptors to buffer -

Polysemy: Introduction to Interceptors -

Polysemy: Tagged effects -

Polysemy: Interpretation and effects inline injection -

Polysemy: Interpretation and effects injection -

Polysemy: Introduction to Effect interpretation -

Polysemy: Introduction to Effect definition -

Polysemy: EffectRow design -

Polysemy: EffectRow -

Polysemy: Introduction to interpreters -

Polysemy: An introduction -

#engineering

Witness functions -

Test-Driven Development Freedom -

What a good design is -

Dependencies management -

A case against Haskell immersion -

#feedbacks

Retrospective of my first CTO experience -

#flow

My history with ViM -

Zsh: debugging git remotes completion -

#foss

Hacktoberfest 2023: My contributions -

Haskell contributions kick-start -

Contributors management -

Hacktoberfest 2022: My feedback -

Hacktoberfest 2022: My contributions -

#gdcr

Write for debug -

GDCR 2022: My feedback -

GDCR 2023: My participation summary -

#git

Zsh: debugging git remotes completion -

#hacktoberfest

Hacktoberfest 2023: My contributions -

Hacktoberfest 2022: My feedback -

Hacktoberfest 2022: My contributions -

#haskell

From custom Monad to Polysemy -

Implementation-oriented Monad -

Haskell Type Reflection Anti-pattern -

QuasiQuoting Smart Constructors -

Nix: optimizing Haskell build size -

Haskell contributions kick-start -

Witness functions -

Test-Driven Development Freedom -

A case against Haskell immersion -

Bloodhound redesign progress -

Haskell macros -

Nix: optimizing Haskell-based Docker-size -

New library: kill-bool -

Abaks: OpenAPI -

Abaks: Views -

Abaks: A word on testing -

Abaks: Drivers -

Abaks: Interface Adapters - API -

Abaks: Testing Use Cases -

Abaks: Use Cases -

Abaks: testing core domain -

Abaks: commands -

Abaks: events -

Abaks: initial requirements -

Polysemy: Scoped -

Polysemy: Opaque -

Polysemy: Onion architecture -

Polysemy: Design heuristics: Hiding vs Exposing -

Polysemy: Design heuristics: Dispatcher -

Plutus: Pioneers Program 4th cohort - Lecture 10 - Built with plutus -

Polysemy: Design heuristics: Hiding interpreters -

Plutus: Pioneers Program 4th cohort - Lecture 9 - Stablecoin -

Plutus: Pioneers Program 4th cohort - Lecture 8 - Staking -

Polysemy: 1.9.0.0 released! -

Plutus: Pioneers Program 4th cohort - Lecture 7 - Marlowe and hosted smart contracts -

Plutus: Pioneers Program 4th cohort - Lecture 6 - Testing -

Polysemy: Design heuristics: Grouping interpreters -

Plutus: Pioneers Program 4th cohort - Lecture 5 - Minting -

Polysemy: Design heuristics: Effects layering -

Plutus: Pioneers Program 4th cohort - Lecture 4 - On-chain/Off-chain smart contract code and indexers -

Polysemy: Design heuristics: Split by responsibility -

Plutus: Pioneers Program 4th cohort - Ouroboros -

Polysemy: Design heuristics: IO hunting -

Plutus: Pioneers Program 4th cohort - lecture 3: Tests, Times, and Dapps -

Polysemy: Async gotchas -

Plutus: Pioneers Program 4th cohort kick start -

Polysemy: Strategy internals -

Polysemy: Changing return -

Polysemy: IO -

Polysemy: NonDet -

Polysemy: AtomicState -

Polysemy: Fixpoint -

Polysemy: Bundle -

Polysemy: Higher order Effects and combined interpreters -

Polysemy: Final vs Embed -

Polysemy: Tactics binding deprecated workaround -

Polysemy: Tactics binding -

Polysemy: Strategies binding -

Polysemy: Async -

Polysemy: Higher-order effects with Final -

Polysemy: Final -

Polysemy: Higher-order effects introductions -

Polysemy: Input -

Polysemy: Embed -

Polysemy: Interceptors to buffer -

Polysemy: Introduction to Interceptors -

Polysemy: Tagged effects -

Polysemy: Interpretation and effects inline injection -

Polysemy: Interpretation and effects injection -

Polysemy: Introduction to Effect interpretation -

Polysemy: Introduction to Effect definition -

Polysemy: EffectRow design -

Polysemy: EffectRow -

Polysemy: Introduction to interpreters -

Game of Life kata: branchless Grid -

Polysemy: An introduction -

TDD: optimizing for inputs vs for outputs -

#heuristics

Architecture Heuristic YNIA: Participants -

Architecture Heuristic YNIA: Queues -

#hiring

A reasonable hiring process -

#infra

My encounter with Caddy -

#leadership

Team owned architecture -

#learning

Language tourist -

#lgtm-stack

Homelab: Monitoring Withings -

Announcing grafana-dashboards.nix -

Homelab: Monitoring alerting through AlertManager -

Homelab: Monitoring alerting -

Homelab: Monitoring dashboards -

Homelab: Monitoring introduction -

#library

New library: kill-bool -

#monitoring

Homelab: Monitoring Withings -

Announcing grafana-dashboards.nix -

Homelab: Monitoring alerting through AlertManager -

Homelab: Monitoring alerting -

Homelab: Monitoring dashboards -

Homelab: Monitoring introduction -

#news

My history with ViM -

Initial log -

#nix

Homelab: client certificates CRL regeneration -

Nix: optimizing Haskell build size -

Announcing grafana-dashboards.nix -

Homelab: Monitoring alerting through AlertManager -

Homelab: Monitoring alerting -

Homelab: Monitoring dashboards -

Homelab: Monitoring introduction -

Homelab: Secrets management -

Homelab: Regenerating certificates -

Homelab: Intermediate CA -

Homelab: client certificates -

Homelab: server certificates -

Homelab: current state and plan -

Nix: optimizing Haskell-based Docker-size -

#nixos

Homelab: client certificates CRL regeneration -

Announcing grafana-dashboards.nix -

Homelab: Monitoring alerting through AlertManager -

Homelab: Monitoring alerting -

Homelab: Monitoring dashboards -

Homelab: Monitoring introduction -

Homelab: Secrets management -

Homelab: Regenerating certificates -

Homelab: Intermediate CA -

Homelab: client certificates -

Homelab: server certificates -

Homelab: current state and plan -

#ops

Homelab: client certificates CRL regeneration -

Homelab: Monitoring Withings -

Announcing grafana-dashboards.nix -

Homelab: Monitoring alerting through AlertManager -

Homelab: Monitoring alerting -

Homelab: Monitoring dashboards -

Homelab: Monitoring introduction -

Homelab: Secrets management -

Homelab: Regenerating certificates -

Homelab: Intermediate CA -

Homelab: client certificates -

Homelab: server certificates -

Homelab: current state and plan -

#optimization

Nix: optimizing Haskell build size -

Nix: optimizing Haskell-based Docker-size -

#pki

Homelab: client certificates CRL regeneration -

Homelab: Regenerating certificates -

Homelab: Intermediate CA -

Homelab: client certificates -

Homelab: server certificates -

#polysemy

From custom Monad to Polysemy -

Polysemy: Scoped -

Polysemy: Opaque -

Polysemy: Onion architecture -

Polysemy: Design heuristics: Hiding vs Exposing -

Polysemy: Design heuristics: Dispatcher -

Polysemy: Design heuristics: Hiding interpreters -

Polysemy: 1.9.0.0 released! -

Polysemy: Design heuristics: Grouping interpreters -

Polysemy: Design heuristics: Effects layering -

Polysemy: Design heuristics: Split by responsibility -

Polysemy: Design heuristics: IO hunting -

Polysemy: Async gotchas -

Polysemy: Strategy internals -

Polysemy: Changing return -

Polysemy: IO -

Polysemy: NonDet -

Polysemy: AtomicState -

Polysemy: Fixpoint -

Polysemy: Bundle -

Polysemy: Higher order Effects and combined interpreters -

Polysemy: Final vs Embed -

Polysemy: Tactics binding deprecated workaround -

Polysemy: Tactics binding -

Polysemy: Strategies binding -

Polysemy: Async -

Polysemy: Higher-order effects with Final -

Polysemy: Final -

Polysemy: Higher-order effects introductions -

Polysemy: Input -

Polysemy: Embed -

Polysemy: Interceptors to buffer -

Polysemy: Introduction to Interceptors -

Polysemy: Tagged effects -

Polysemy: Interpretation and effects inline injection -

Polysemy: Interpretation and effects injection -

Polysemy: Introduction to Effect interpretation -

Polysemy: Introduction to Effect definition -

Polysemy: EffectRow design -

Polysemy: EffectRow -

Polysemy: Introduction to interpreters -

Polysemy: An introduction -

#product

Team owned architecture -

Design for collaboration -

A reasonable hiring process -

Retrospective of my first CTO experience -

Local vs Global optimum -

User Driven Design -

#programming languages

Language tourist -

#project

Abaks: OpenAPI -

Abaks: Views -

Abaks: A word on testing -

Abaks: Drivers -

Abaks: Interface Adapters - API -

Abaks: Testing Use Cases -

Abaks: Use Cases -

Abaks: testing core domain -

Abaks: commands -

Abaks: events -

Abaks: initial requirements -

#refactoring

Witness functions -

#retrospective

Retrospective of my first CTO experience -

#secrets-management

Homelab: Secrets management -

#smart contracts

Plutus: Pioneers Program 4th cohort - Lecture 10 - Built with plutus -

Plutus: Pioneers Program 4th cohort - Lecture 9 - Stablecoin -

Plutus: Pioneers Program 4th cohort - Lecture 8 - Staking -

Plutus: Pioneers Program 4th cohort - Lecture 7 - Marlowe and hosted smart contracts -

Plutus: Pioneers Program 4th cohort - Lecture 6 - Testing -

Plutus: Pioneers Program 4th cohort - Lecture 5 - Minting -

Plutus: Pioneers Program 4th cohort - Lecture 4 - On-chain/Off-chain smart contract code and indexers -

Plutus: Pioneers Program 4th cohort - Ouroboros -

Plutus: Pioneers Program 4th cohort - lecture 3: Tests, Times, and Dapps -

Plutus: Pioneers Program 4th cohort kick start -

#software engineering

Team owned architecture -

Design for collaboration -

A reasonable hiring process -

Retrospective of my first CTO experience -

Local vs Global optimum -

User Driven Design -

#team

Team owned architecture -

Design for collaboration -

A reasonable hiring process -

Retrospective of my first CTO experience -

Local vs Global optimum -

#test-driven development

Test-Driven Development Freedom -

#tools

My history with ViM -

Zsh: debugging git remotes completion -

#vim

My history with ViM -

#zsh

Zsh: debugging git remotes completion -