flowchart LR
Client["Clients"] --> API["API"] --> Services["Services"] --> Data["Data"]
Modern Application Development Patterns (Web + Mobile + Cloud)
2026-01-13
Advanced Web Systems Development
Jason Kuruzovich
Associate Professor
Lally School of Management
Contact: - Email: kuruzj@rpi.edu - Office: Pitt 2206 - Hours: Tuesday 9-11 AM or by appointment - Book: bit.ly/jason-rpi
Build production-quality applications as integrated systems.
This is not only about writing code. We’ll focus on:
Tools and frameworks change quickly.
Patterns stick around: - Client ↔︎ server communication - Authentication and sessions - Data modeling and persistence - Scaling and reliability - Dev workflows and deployment
flowchart LR
Client["Clients"] --> API["API"] --> Services["Services"] --> Data["Data"]
We’ll revisit this diagram all semester and add details as your systems grow.
Common pattern: - Browser UI (React, Vue, etc.) - Communicates over HTTP/HTTPS - Mostly stateless requests
Typical concerns: - Routing - Authentication - State management - Performance (latency, bundle size)
Common pattern: - Native or cross-platform app - Often the same backend as the web app - More constraints (battery, offline use, flaky networks)
Key takeaway: Web and mobile usually share the same backend.
Most systems revolve around APIs: - REST (common default) - GraphQL (when it fits)
Typical responsibilities: - Authentication & authorization - Business logic - Validation & error handling
You’ll commonly see: - Monolith — everything in one deployable - Modular monolith — one deployable, clean internal boundaries - Microservices — multiple deployables, more coordination
Rule of thumb: Start simple; add distribution when you have clear reasons.
Application → Data access layer → Database
A common progression: 1. Local development 2. Containers (Docker) 3. Cloud deployment
Instead of manual setup: - Configuration files - Repeatable environments - Version-controlled deployments
If it can’t be reproduced, it’s not done.
Modern developers use AI to: - Generate boilerplate - Explore unfamiliar stacks - Debug and refactor faster
AI is most useful when you understand the underlying patterns.
This course will help you ask better questions and evaluate AI output critically.
We will move from: - Concepts and patterns - To implementation and integration - To deployment and operations
Your job this semester: build something real, learn patterns, explain trade-offs.
Docker and Infrastructure as Code

ITWS-4500 | Week 1, Day 1