Backend & .NET engineer with 4+ years turning manual, error-prone operations into reliable automated workflows. Most of my production work is private — at Toro Alerts I work across market-data ingestion, SQL analytics, schedulers, internal tools and alert delivery. On the open side I build MCP servers and agent tooling. The throughline: reduce repeated work without losing traceability or control.
A working stock research engine that pulls live US prices from Yahoo Finance when available, filters by liquidity, computes EMA-13, EMA-50 & RSI(14), applies simple signal rules and ranks the picks. If the public source is blocked, the demo switches to marked sample data.
This is a sample stock strategy and isn't financial advice. Live browser requests run in parallel and usually finish in a few seconds; blocked sources fall back to labeled sample data.
| Symbol | Price | EMA-13 | EMA-50 | RSI | Signal |
|---|---|---|---|---|---|
| press ▶ Run to pull live data | |||||
Requirement Bot
I built this as a practical workflow agent for messy marketplace chats. The idea is not to let a bot spray replies into groups. It listens only to approved channels, pulls out useful buyer requests and listing posts, and prepares a short match draft that a person can review.
Good requirements disappear quickly in active chats. Someone asks for a car or property, a seller may already have a match, but the operator still has to scroll, copy, search and reply by hand.
A TypeScript service handles WhatsApp/Telegram inputs, classifies each message, stores structured listings in SQLite and searches only the sources configured in an allowlist.
Ambiguous messages are pushed to an operator flow. Real credentials, group IDs, QR images, logs and downloaded media are kept out of git, and the public defaults are set for review-first operation.
The public repo uses sample data and placeholders, but keeps the real shape: classify, remember, search, rank, and hand a reviewable reply to a human instead of sending blind automation.
A simulated requirement-matching workflow: it detects a buyer request, searches approved sources, ranks matches and prepares a human-reviewable reply. Production use would require consent, rate limits, audit logs and approval controls. Press play for an illustrative run.
Most repetitive work hides its true cost. Drag the sliders to model a task your team does by hand — see what automating it gives back.
Senior Software Engineer
- Built an Automated Alert System & Task Scheduler that reduced recurring manual operations by roughly 60% in internal workflows.
- Built a multi-platform social-media automation suite with AI-assisted scheduling and analysis, reducing repetitive posting/reporting work by roughly 75%.
- Real-time pipelines: market-data ingestion → SQL analytics → alert dispatch, on Azure + .NET Core.
- Automated the full stock-research loop: data fetching, screening, indicator & signal generation.
- Built automated trade-execution systems that consume approved signals and place trades using position-aware rules, current holdings and risk limits.
The pattern I care about is simple: automation that is scheduled, observable, recoverable and still easy for a human to override when the job needs judgment.
Scheduling & retries
Recurring job runners, task state tracking, retry-safe alert dispatch and manual reset paths for jobs that cannot silently fail.
Data pipelines
Market-data ingestion, SQL-backed analytics, indicator calculation, validation checks and downstream alert delivery.
Operational visibility
Status logs, failure messages, result summaries and review points so teams can see what ran, what changed and what needs attention.
Deployment & handoff
Azure-hosted APIs, SQL Server/PostgreSQL backends, internal tools, documentation and practical maintenance paths.
Idempotent jobs
Tasks track state, inputs and outputs so reruns do not duplicate alerts, messages or trade actions when a worker restarts.
Queues & retries
Slow or flaky work is moved behind queues, timeouts and retry limits instead of blocking the main workflow.
Audit trail
Each important action keeps enough context to answer what ran, why it ran, what changed and who needs to review it.
Human control
High-impact steps use approvals, allowlists, safe defaults and manual reset paths rather than full blind automation.
Requirement Bot
Human-reviewed marketplace matching agent that classifies chat requirements, stores structured listing memory, searches approved sources and prepares ranked matches for operator approval.
Web-Agent
Embeddable website-agent widget backed by a user-run local bridge. It lets a site expose approved page actions and context to a local desktop agent runner, with approval flow, backend selection and local-first control.
NFTY-MCP
MCP server for ntfy.sh — push notifications, async agent messaging and human-in-the-loop approval.
AgentVoice
Local Windows push-to-talk dictation that transcribes speech offline with Whisper large-v3 and pastes text at the cursor.
Social Media Automation Suite
Internal multi-platform scheduling and engagement-analysis tooling with AI-assisted workflow support.
Cross-Chain Transactions on Blockchains
Crypto-Asset Trading Analysis
I'm always interested in practical engineering conversations — automation, backend, market-data, or anything worth building. Whether you have a question or just want to say hello, feel free to write.