I served as Adjunct Professor in the Master’s Degree Program in Software Engineering, run jointly by EPAM Systems and the National University of Kyiv-Mohyla Academy, one of Ukraine’s most prestigious research universities. The program was designed to replace theory-only graduate education with industry-grounded, case-driven learning. For one academic year, from September 2020 to May 2021, I was responsible for the Cloud & DevOps module, covering AWS, Terraform, Infrastructure as Code and production-grade DevOps practices, delivered as blended online, offline and self-study learning. My faculty colleagues included EPAM’s CEO and Vice-Presidents.

- Cloud & DevOpsmodule designed and delivered for a full academic year: AWS, Terraform, IaC and CI/CD
- C-level facultyco-faculty included EPAM’s CEO at the time and its Vice-Presidents
- 2+ yearsof engineering experience required from every student, after English, technical and interview selection
- My role
- Adjunct Professor, Cloud & DevOps module
- Institution
- National University of Kyiv-Mohyla Academy (NaUKMA), founded in 1615
- Industry partner
- EPAM Systems
- Program
- Master’s Degree in Software Engineering, six modules
- Format
- Blended: online, offline and self-study
- Period
- 2020 to 2021, 9 months (one academic year, September to May)
The challenge
Most graduate programs in software engineering teach theory and then expect students to learn practice on the job. This program was designed to do the opposite: put senior industry practitioners in front of students who already had engineering experience, and teach how decisions are made in real projects.
The National University of Kyiv-Mohyla Academy was founded in 1615 and is one of the oldest universities in Ukraine, known for rigorous academic standards and a culture of independent thinking. The program started with EPAM in autumn 2019 as a pilot, and by 2021 it had won an award in the IT-Education category.
The students were experienced engineers. Entry requirements included 2+ years of software engineering experience, practical experience in integration, design, configuration and infrastructure development, and an understanding of the software development lifecycle. Selection involved an English language test, a technical test and a personal interview, and the first group had 20 students. Teaching this audience is very different from teaching undergraduates: they push back, they bring their own experience, and they notice immediately when something is elegant in theory but wrong in practice.
The faculty came from EPAM’s senior leadership and senior practitioners. Co-faculty included Arkadiy Dobkin (CEO of EPAM Systems at the time), Yury Antoniuk (Vice-President, EPAM CEE), Ely Feldman (VP, Technology Solution) and others. Each module was taught by someone with deep, current, first-hand industry experience, which set a clear standard for what industry-grounded teaching means.
My task: design and deliver the Cloud & DevOps module together with my colleagues, and teach working engineers how cloud and DevOps decisions are made in real production environments.
What is Infrastructure as Code, and where does Terraform fit?
Infrastructure as Code (IaC) is, in AWS’s words, “the ability to provision and support your computing infrastructure using code instead of manual processes and settings”. Servers, networks and access rules are described in files kept in version control, so an environment can be rebuilt, reviewed and rolled back like any other code. Terraform, from HashiCorp, is a popular IaC tool: you describe the infrastructure you want, and Terraform works out the changes needed to get there, on AWS and many other platforms. In 2023 HashiCorp moved Terraform to the Business Source License, and the community started OpenTofu, an open-source fork now run under the Linux Foundation.
What I did
-
Built a graduate Cloud & DevOps module: AWS, Terraform and Infrastructure as Code
The module covered Amazon AWS architecture and services, Infrastructure as Code with Terraform, CI/CD pipeline design and production-grade operational practices. The goal was to teach the decision-making process behind the tools: when to use which service, why architecture choices matter at scale, and what operational discipline looks like in a production environment. Exercises were based on real scenarios from large-scale projects.
Technical details
- Topics: AWS architecture and services, Terraform and Infrastructure as Code, CI/CD pipelines, production operations.
- Design choices: the order in which concepts are introduced, which real examples best show each principle, where self-study supports live teaching, and how to check that students can apply what they learned.
-
Connected the module to a six-module software engineering curriculum
The full program covered Engineering Excellence, Solution Architecture, Delivery Management, Product Management, Cloud & DevOps and Big Data, each taught by a senior practitioner from that field. Coordination across modules meant students understood how infrastructure decisions connect to architecture choices, delivery constraints and product management trade-offs. This integration was a deliberate design choice of the program.
-
Designed blended learning for working engineers
The program combined live online sessions, in-person workshops and structured self-study, a model that fits the schedules of working engineers and keeps the learning rigorous. Designing for these three formats needs an understanding of how adults with professional experience learn: they need immediate applicability, they test material against their own experience, and they remember through practice more than through passive listening.
-
Taught from real cases in large production environments
My Cloud & DevOps content was built from real situations in large enterprise environments: architecture trade-offs faced in production, operational failures and their root causes, and the difference between what looks right in a diagram and what works at scale. Teaching with real cases to an audience of working engineers creates a quality of classroom discussion that a constructed example can’t, and it let me mentor engineers through complex concepts at a senior level.
Results
Over one academic year, from September 2020 to May 2021, the work delivered:
- A graduate Cloud & DevOps module covering AWS, Terraform, Infrastructure as Code, CI/CD and production operations, designed and delivered together with my colleagues.
- Teaching material built from real production cases: architecture trade-offs, operational failures and their root causes.
- A module that fitted a six-module program, so students linked infrastructure decisions to architecture, delivery and product choices.
- Blended learning that working engineers could combine with their jobs: online sessions, in-person workshops and self-study.
- Senior-level mentoring for working engineers through complex engineering concepts.
What I learned
Teaching is the hardest test of whether you really understand something.
Experienced engineers can hide gaps in their understanding behind jargon, confidence and the authority of their track record. In front of a class of working engineers who apply everything you say to their own production experience, those gaps become visible immediately. The gap between knowing how to do something and explaining it so others can do it is also larger than most practitioners realise. Bridging it, by turning experience into structured, transferable knowledge, is a separate skill with direct use in consulting, engineering leadership, documentation and team capability building. Many challenges of large organisations, such as architecture trade-offs, delivery pressure and operational risk, can be taught well when grounded in real cases, because real cases teach people to think.
Evidence and further reading
- Announcement · EPAM CampusMaster’s Degree Program in Software Engineering with Kyiv-Mohyla AcademyThe official program announcement: modules, faculty and entry requirements (2019).
- Related projectBuilding a Cloud Center of Excellence from zeroTurning experience into standards a whole company can use.
- Book · this siteArchitecture of Payment SystemsAnother way I turn practice into material others can learn from.
- Related projectLeading a 4-continent SRE teamMentoring L2 and L3 engineers in four regions at the same time as this course.
The program’s award in the IT-Education category and its later runs with more universities are described in the 2021 announcement of its third run.
Skills and technologies
- Cloud & DevOps teaching
- Curriculum design
- AWS
- Terraform
- Infrastructure as Code (IaC)
- CI/CD
- Production operations
- Blended learning design
- Graduate-level teaching
- Case-based teaching
- Knowledge transfer
- Technical mentoring
- Adult learning
- Industry-academic collaboration
Let’s discuss your project and goals
Are you building engineering capability, designing a Cloud or DevOps learning program, or looking for a consultant who leaves knowledge behind? In 30 minutes we can look at what you are trying to build: internal training, structured knowledge for a team transition, or a project your team must own after it ends.
- You need to grow engineering capability faster than you can hire
- You’re designing a Cloud or DevOps learning program for your team
- You want runbooks, decision records and training material your team keeps
- You’re a university or training provider looking for practitioner expertise
No sales pitch, just a direct conversation about your goals and constraints.
