Vas Vasiliadis

5735 South Ellis Avenue, Rm 101 · Chicago, IL 60637 · (773) 702-5376 · vas@uchicago.edu

Welcome to my home at the University of Chicago. I lead the customer team for Globus and teach in the Masters Program in Computer Science. I am also an advisor to early stage software companies in the areas of go-to-market strategy, product management, and marketing.

Cloud Computing (MPCS 51083)

Course Description

Cloud computing is being widely adopted by enterprises of all sizes due to the low initial investment required, attractive operating costs, and elastic capacity that can best serve the highly variable demands of modern applications. Software engineers must be familiar with cloud computing technologies since many new applications they develop will be deployed “in the cloud”, and existing applications will often require integration with cloud-hosted services to take advantage of new capabilities.

This course provides an introduction to cloud computing with specific consideration for application development in two contexts: highly scalable (or so-called “web-scale”) web applications, and enterprise applications in a hybrid environment comprising both on-premises and cloud infrastructure. We will focus primarily on infrastructure and platform services, and will introduce software-as-a-service from the perspective of a consuming application. The course will emphasize practical applications of cloud computing technologies, with sufficient exploration of their theoretical underpinnings to inform architectural, design, and implementation decisions. We will use commercial cloud offerings provided by Amazon Web Services to build and deploy "real” cloud-hosted applications.

Topics covered include:

  • A (very) brief history of distributed computing and the motivation for cloud computing
  • An overview of cloud computing service models and economics
  • Virtualization and the Infrastructure-as-a-Service (IaaS) service model
  • Application concurrency and data consistency models
  • Cloud storage and data management considerations (block storage, object stores, cloud databases, etc.)
  • Authentication, authorization, and accounting in cloud computing systems
  • Inter-service communication (messaging, notifications, etc.)
  • Cloud infrastructure for "big data” analytics (filesystems, tools, techniques)
  • Cloud services and mobile applications
  • Serverless computing, microservices, and containerization
  • Automated deployment and operations techniques
  • Cloud security, privacy, and policy compliance
  • Designing for fault-tolerance and disaster recovery strategies

Coursework

During the first six weeks of the course, a series of short programming assignments will be due each week. During the last four weeks we will work towards a capstone project that brings together many of the concepts and technologies covered in the course. Some of the earlier programming assignments will provide components to be used in our capstone project so it is important to stay current on coursework, otherwise you may find completion of the capstone project very challenging.

Grading

The grade for this course will be heavily weighted towards the capstone project. There will also be two short quizzes covering material that you should be familiar with if you have attended class and completed the programming assignments.

Reference material

There is no formal textbook for this course. We will refer to a variety of online resources, including selected readings on cloud concepts, programming guides for Amazon Web Services, and references for various technologies used in programming assignments.

Prerequisites

This course assumes no prior knowledge of cloud computing. Programming assignments require familiarity with Python and use of Linux commands, as well as simple shell scripts. We will use the boto library to access Amazon Web Services, and some assignments, including the capstone project, will make use of Flask, a Python-based micro-framework for web applications. A brief overview of boto, the web framework, as well as a list of reference materials will be provided; additional concepts will be introduced as they are needed to complete assignments. Knowledge of web application development is not required, but students with little or no web development experience may find some assignments particularly challenging. Ideally, students should understand the fundamentals of web APIs in general, and the REST approach in particular. An understanding of database concepts, such as referential integrity and ACID properties, is also useful.

Note: Students in past courses have struggled to keep up with homework assignments due to limited experience with Python and knowledge of the Linux command line. See the notes on this page for more detail on expected knowledge—if you have doubts about your proficiency in these areas please talk with me before signing up for the course.

Product Management (MPCS 51240)

Course Description

Product management is a cross-disciplinary endeavor that sits at the intrersection of software engineering, marketing, and the user experience. Product managers are expected to create products in support of business objectives, ensuring that products deliver value to customers and are feasible to build within varying sets of constraints. In this course we will introduce the role of the product manager and demonstrate the challenges faced by product managers. We will explore approaches for managing the tension that exists between software development and product delivery, using the minimum viable product and the product roadmap as critical tools. Key themes covered in this course include:

  • Identifying a lack of product management
  • Getting to market quickly; aka: "Perfection is the enemy of progress"
  • Understanding the value of iteration and failing fast; aka: "You don’t know what customers value"
  • Delivering a product that meets customer needs; aka. "Customers don’t know what they need"
  • Trading off product focus and business needs; aka: "Drive on the freeway but be ready to use the emergency lane"
  • Understanding technology maturity and product lifecycles; aka: “You gotta know when to hold ‘em and know when to fold ‘em”

Product management concepts factor into every aspect of the business and hence can be approached from a number of different—but complementary—perspectives. This course skews towards a more business-focused discussion of product management, while incorporating key technical elements.

We set out to understand what it takes to deliver a minimum viable product (MVP), including a review of the different types of MVPs and when to use each one, the various tools that can help us define an MVP, hypothesis testing, and metrics. We then work with tools for agile product design such as user stories, model users (personas), storyboards, and ready stories. This is followed by a very high-level survey of UX design approaches and UI design (from the perspective of achieving desired product and business goals, not visual asthetics), product architecture considerations, and how to work with engineering teams. The second half of the course focuses on managing the product roadmap: working with product backlogs; prioritizing features and managing tradeoffs. We bring some of these techniques together in a multi week-long simulation of an actual product—with some shortcuts, in the interests of time!

While most of the course is geared towards developing early-stage products in small companies or start-ups, we also touch on techniques more relevant to larger or more established product organizations, e.g. managing product portfolios, complementary products, and planned obsolescence.

Coursework

This course incorporates a mix of case studies, in-class exercises, product design sessions, written work, and presentations. A key element of product management is communication, so there is an expectation that every student will contribute regularly to class discussions. You will work in small groups during class, rapidly developing new concepts and ideas which you will then present to the rest of the class. Unlike many other courses in the MPCS, you will be called upon to challenge the ideas presented by your fellow students—in a constructive manner, of course!

Grading

The grade for this course is split roughly evenly between homework assignments, quizzes, and in-class activities. Note that overall class participation will be a substantial component of the final grade.

Reference material

While there is no prescribed reading for this course, we will review the approaches developed by Geoffrey Moore, as presented in his classic book "Crossing the Chasm", so feel free to get yourself a copy if you want to dive deeper into some of the concepts.

Prerequisites

This course assumes no prior knowledge of product management concepts or specific technologies. However, you may find some of the material easier to put into perspective if you're familiar with software design patterns, or have taken one of the other software engineering courses offered in the MPCS.

Globus

What is Globus?

Globus (www.globus.org) is software- and platform-as-a-service for research data management, developed and operated by the University of Chicago. The service offers a suite of data and user management capabilities to the research community, encompassing file transfer and sharing, identity management, and data publication. Globus capabilities are accessible via both a web browser and REST APIs. Web access allows Globus to address the needs of research labs through a software-as-a-service (SaaS) model, while REST APIs address the needs of developers of research services, who can use Globus as a platform to simplify access via data portals, science gateways, and other web applications.

Globus is currently used by all R1 research institutions in the USA, many national laboratories, federal facilities, as well as hundreds of non-profit and commercial organizations around the world. Researchers have transferred hundreds of petabytes and shared billions of files using Globus since the service was first deployed in November 2010.

Key Features

File Transfer: Using Globus, researchers can coordinate high-performance, secure, file transfer and synchronization between storage systems. The service significantly simplifies large scale data transfer by handling all the difficult aspects of moving files across diverse and sometimes unreliable networks. For example, it coordinates authentication at source and destination, automatically tunes parameters to maximize bandwidth usage, provides automatic fault recovery, and notifies users of completion and problems.

Data Sharing: While researchers typically have access to considerable storage resources, it is often difficult to grant their collaborators access to those resources, due to cost, technical infeasibility, or restrictive administrative policies. Globus data sharing is designed to specifically fill this gap, providing the ability for users to dynamically share data with others without having to copy the data to the cloud, and without the need to provision temporary accounts on local storage systems.

Data Publication: Researchers and funding agencies alike are increasingly concerned with scientific reproducibility. To this end, Globus provides a self-service data publication service that can support arbitrarily large datasets. Globus data publication can be used both as a "turnkey" service and as a set of data management functions integrated into existing institutional repositories and custom, data distribution systems. The service greatly simplifies the assembly, annotation, curation, publication, and discovery of diverse datasets, governed by a series of user- or institution-defined policies.

Developing with the Globus Platform

The capabilities described above are primarily designed to address the needs of individual researchers directly; however, they are equally valuable to those developing their own scientific services, many of whom have little desire to build and operate their own authentication, data access, and data transfer infrastructure. The Globus platform addresses the needs of this developer community by exposing all Globus capabilities via REST APIs, and providing software developer kits and code samples to simplify integration of the various features into their own applications. Check out these resources to see how Globus can help you build more widely accessible research applications faster:


Vas Vasiliadis

5735 South Ellis Avenue, Rm 101 · Chicago, IL 60637 · (773) 702-5376 · vas@uchicago.edu

Vas is Chief Customer Officer for Globus, an innovative software-as-a-service for research data management, developed and operated by the University of Chicago. His responsibilities include sales, marketing, customer support, training, and generally working with current and prospective users to grow adoption of the service and make it self-sustaining. Vas is also a lecturer in the Masters Program in Computer Science, where he teaches courses on Cloud Computing and Product Management.

Vas has 30 years of experience in operational and consulting roles, spanning strategy, marketing and technology. An experienced software product marketing professional with a passion for shaping emerging technologies to bring innovative products to market, Vas has nurtured early stage companies into successful businesses, and consulted to companies on a wide range of strategic issues.

Prior to joining the University, Vas was a principal at Strategos, the innovation consulting firm founded by Gary Hamel, where he led Fortune 100 management teams in defining their growth agenda. Earlier, Vas led marketing efforts at Univa, a leading provider of grid and cloud computing solutions. Vas joined Univa's founding team shortly after inception and was instrumental in defining the product vision, raising venture capital and launching the company's initial products.

In the late 1990's Vas served as vice president of product management and corporate strategy at CrossWorlds Software, the enterprise application integration pioneer, and was part of the executive team that grew CrossWorlds from a start-up to a successful public company that was subsequently acquired by IBM.

Vas was also chief technology officer at Cimnet Systems, a company specializing in software for electronics manufacturing, which was acquired by Consona in 2005. At Cimnet he led product strategy and development of the company's supplier management and business intelligence solutions. Prior to Cimnet, Vas was vice president of strategy and product management at Promeria, a supplier relationship management company which was acquired by Ariba.

Vas' management consulting experience includes Booz & Company (now Strategy&), where he focused on supply chain strategy and customer service level optimization, and Accenture, where he helped clients in the financial services industry automate trading and back office operations. He has a deep technical understanding of system development for real-time applications, including data distibution, analytics, and trading platforms for derivatives and fixed income securities.

Vas holds an MBA with High Distinction from the Ross School of Business at the University of Michigan, Ann Arbor and a BS in Electrical Engineering from the University of the Witwatersrand in South Africa. He remains a network partner with Strategos and is an advisor to early-stage technology companies on all aspects of strategy, marketing, and product management.