# ~/stack/README.md
Pick a file from the tree on the left to see my subjective take on that tech - roughly how comfortable I am with it and where I use it.
//
~/stack/csharp.cs
## C#
tier: Core ●●●●●
Daily driver - across commercial and personal projects. OOP, FP, and procedural paradigms, async/await, recent language features - record types, pattern matching, source generators.
//
~/stack/dotnet.csproj
## .NET 6 / 8 / 9
tier: Strong ●●●●○
Production on .NET 6, 8, 9. Comfortable migrating between versions and reading release notes the day they ship.
//
~/stack/aspnet-core.cs
## ASP.NET Core
tier: Core ●●●●●
I build production APIs and Blazor apps daily. DI, middleware, Minimal APIs are all part of the daily toolkit.
//
~/stack/blazor.razor
## Blazor
tier: Solid ●●●○○
Frontend of choice at Santander, Blazor Hybrid for internal tools. I improve the UX based on feedback from analysts.
//
~/stack/rest-apis.http
## REST APIs
tier: Core ●●●●●
I designed and delivered many REST APIs. I care about consistent resource modeling and clear error contracts.
//
~/stack/python.py
## Python
tier: Working ●●○○○
Basics. I use it task-by-task - scripts and a simple event-driven backend (asyncio, FastAPI), e.g. in my personal zetaTrade project. Not my primary language.
//
~/stack/mssql.sql
## MSSQL
tier: Strong ●●●●○
Main database at Santander. I read query plans, optimize indexes, and work with data not only through the ORM.
//
~/stack/postgresql.sql
## PostgreSQL
tier: Strong ●●●●○
cetuspro projects and LifeOS. My first choice for new projects from scratch.
//
~/stack/ef-core.cs
## EF Core
tier: Core ●●●●●
On every commercial project. Migrations, query optimization, raw SQL when needed. Change tracking is great for most CRUD scenarios.
//
~/stack/dapper.cs
## Dapper
tier: Strong ●●●●○
I use it when EF Core is too heavy - read-only queries and high-throughput paths. At Santander I often combine it with EF Core.
//
~/stack/clean-architecture.md
## Clean Architecture
tier: Core ●●●●●
Default approach for backend services. I strongly believe in keeping layer boundaries (domain / application / infra / api).
//
~/stack/modular-monolith.md
## Modular Monolith
tier: Solid ●●●○○
Logger Master at Santander, LifeOS architecture. The right tool for most problems (outside of FAANG scale).
//
~/stack/cqrs.md
## CQRS
tier: Core ●●●●●
I use it where read and write paths really go in different directions. I'm not a fanboy, but I appreciate the clarity of intent and the scaling potential.
//
~/stack/mvc.md
## MVC
tier: Strong ●●●●○
Classic MVC + Razor Pages in older cetuspro and Santander projects. Familiar territory.
//
~/stack/database-design.md
## Database Design
tier: Strong ●●●●○
End-to-end ownership of data modeling at Santander. I really care about getting the model right before the code starts.
//
~/stack/angular.ts
## Angular
tier: Solid ●●●○○
LifeOS frontend stack. Comfortable with RxJS. Solid, but not my main area.
//
~/stack/typescript.ts
## TypeScript
tier: Solid ●●●○○
Wherever JS is. Strict mode always. Comfortable day-to-day, not a TS guru.
//
~/stack/html-css.html
## HTML5 / CSS3
tier: Solid ●●●○○
Just enough to write clean semantic markup. Not my main area.
//
~/stack/tailwind.css
## Tailwind CSS
tier: Solid ●●●○○
On every personal project, including this site. I prefer pragmatism over custom CSS systems.
//
~/stack/git.gitignore
## Git
tier: Core ●●●●●
Daily. Rebase, cherry-pick, bisect - no stress. Branch hygiene matters to me.
//
~/stack/Dockerfile
## Docker
tier: Strong ●●●●○
I containerize anything that needs to run the same everywhere. Compose for local dev environments.
//
~/stack/bash.sh
## Bash
tier: Solid ●●●○○
Pipes, loops, sed/awk when needed. I don't write complex bash apps.
//
~/stack/linux.conf
## Linux
tier: Solid ●●●○○
Comfortable in the shell, I manage Proxmox VMs daily. Light sysadmin work.
//
~/stack/proxmox.conf
## Proxmox
tier: Solid ●●●○○
My homelab runs on it. VM/LXC management, backups.
//
~/stack/tailscale.conf
## Tailscale
tier: Strong ●●●●○
Mesh VPN for accessing the homelab from anywhere. Zero open ports to the public internet.
//
~/stack/cloudflare.toml
## Cloudflare
tier: Strong ●●●●○
Tunnel + Workers + Pages, power user, this site also runs on Workers.
//
~/stack/owasp.md
## OWASP Top 10
tier: Working ●●○○○
Working through the Top 10 as part of my Master's degree in cybersecurity. Solid foundation, building deeper expertise.
//
~/stack/api-security.md
## API Security
tier: Working ●●○○○
Practical knowledge from work + going deeper through my Master's program. Auth, rate limiting, input validation as defaults.
//
~/stack/gen-ai.py
## Generative AI
tier: Strong ●●●●○
Power user - Claude/GPT integrated into my daily workflow. I build agents for specific tasks.
//
~/stack/prompts.md
## Prompt Engineering
tier: Core ●●●●●
Daily - for code, content, and tooling. Comfortable with structured prompts and agent design.
//
~/stack/claude-code.md
## Claude Code
tier: Core ●●●●●
Daily driver for anything code-related. I built my own agents and slash commands, mostly for refactoring, code review, and automating repetitive tasks. At work I only use it for technical tasks (compliance-aware).
//
~/stack/rider.idea
## Rider
tier: Strong ●●●●○
My main IDE for .NET. I started writing projects with it. JetBrains does a great job with most of their dedicated tools.
//
~/stack/visual-studio.sln
## Visual Studio
tier: Strong ●●●●○
I use it where the client's project requires it. Full compatibility with MS tooling pipelines. I prefer Rider for daily work, but I'm comfortable in both.
//
~/stack/vscode.json
## VS Code
tier: Core ●●●●●
Great for personal projects with a lot beyond .NET (frontend, scripts, markdown). Customized workspace, cross-platform. My main editor on MacOS.
//
~/stack/xunit.cs
## xUnit
tier: Strong ●●●●○
My test framework of choice. I use Moq/NSubstitute for mocking, and prefer integration tests where possible.
//
~/stack/nunit.cs
## nUnit
tier: Solid ●●●○○
Older projects. Most of the new code has been migrated to xUnit.
//
~/stack/postman.json
## Postman
tier: Solid ●●●○○
Quick API testing. These days I mostly use curl and REST Client in VS Code instead.