Bill Katsoulis
Systems-Minded Full-Stack Developer
Bill Katsoulis
17 years enterprise · career pivoter · builder

I spent 17 years fixing other people's problems. Now I build the tools.

Full-stack developer with nearly two decades of Tier 2 wireless network support at TELUS Communications. I lived inside enterprise platforms like BMC Remedy, diagnosed escalations, and made sense of other people's bad tickets. Now I build web applications with React, Node.js, Express, and PostgreSQL — and I bring that same diagnostic thinking to how I write code and design systems.


Projects

Analytics Service Dashboard

⚡ Analytics Service

Live

A service-oriented event analytics platform. Any application sends events via a single POST endpoint, the service stores them in PostgreSQL with a generic JSONB schema, and a server-side dashboard aggregates everything with dynamic filtering. PhotoLabs and ShortStop both send real events to it.

Node.jsExpressPostgreSQLEJSJSONBRailway
PhotoLabs Gallery

📸 PhotoLabs

Live

Full-stack photo gallery with JWT authentication, Cloudinary uploads, and AI-powered image descriptions via Anthropic's Claude Vision API. React frontend on Vercel, Express backend on Railway. Includes search, topic filtering, and a demo login for recruiters.

ReactExpressPostgreSQLClaude APICloudinaryJWT
ShortStop URL Shortener

🔗 ShortStop

Live

URL shortening service with per-link click tracking analytics, QR code generation, and JWT authentication. Server-side rendered with EJS. Integrated with Analytics Service for cross-app event tracking.

Node.jsExpressPostgreSQLEJSJWTRailway

🛡️ Phylax

Building Now

ITIL-aligned incident logger with AI integration. Lightweight incident management for teams too small for ServiceNow but too structured for spreadsheets. AI suggests severity and category as you type, validates completeness before escalation, and generates postmortem summaries on resolution.

Next.jsTypeScriptPostgreSQLClaude APIRailway
Coming Soon

Technical Skills

Frontend

  • React (Hooks, Reducers, Context)
  • EJS / Server-Side Rendering
  • HTML / CSS / SCSS
  • Vite
  • TypeScript Learning
  • Next.js Learning

Backend

  • Node.js / Express
  • REST API Design
  • JWT Authentication
  • PostgreSQL / JSONB
  • Relational Data Modeling
  • Axios / HTTP Integration

Tools & Cloud

  • Git / GitHub
  • Anthropic Claude API
  • Cloudinary
  • Vercel / Railway
  • AI Coding Assistants
  • BMC Remedy / ITSM

How I Work

I come from a world where systems can't go down and bad data has real consequences. That shapes how I build software — with the operational discipline of enterprise and the shipping speed of a startup.

Build for reliability

Sane defaults, clear failure modes, and predictable behavior. If something breaks, the error message should tell you why — not leave you guessing.

Ship small, iterate fast

Get something working and deployed before it's perfect. Real feedback beats theoretical planning every time.

Document like someone else will maintain it

READMEs that explain the why, not just the what. Code that reads like prose. Because the person maintaining this in six months might be me — or might not.

Solve the actual problem

17 years of watching enterprise tools frustrate users taught me one thing: the best feature is the one that removes friction, not the one that adds complexity.


The Pivot

For 17 years at TELUS Communications, I was a Tier 2 wireless network support specialist. I diagnosed escalated connectivity and coverage issues, interpreted network diagnostics, and worked daily inside enterprise ITSM platforms like BMC Remedy. I knew the pain of bad tickets, missing data, and tools that fought you instead of helping you.

I left during a company restructuring, completed Lighthouse Labs' web development bootcamp, and started building. Not from zero — from 17 years of understanding how systems work, how they break, and what users actually need.

Every project I build carries that perspective. The Analytics Service exists because I understand the value of cross-system visibility. Phylax exists because I spent years on the receiving end of incomplete incident reports. I'm not imagining these problems — I lived them.


Contact

If you're looking for a developer who ships fast and thinks operationally — someone who's built real things and brings 17 years of enterprise context to the table — I'd love to connect.