Program

Software engineering

Every software developer starts his career path with learning programming language syntax and frameworks. But when one masters programming language it turns out that this is not sufficient for career promotion. The specialists deepen their programming skills and simultaneously broaden their vision on the software development life cycle. To support programming professionals in their career advancing, we have designed the course Software Engineering. We gathered the best software development practices from enterprises and enriched it with modern tools.

Our purpose is to provide software developers with the eagle view on the full cycle of software development in the enterprise and provide skills highly demanded by the employers in CI/CD, Software architecture and design, API development and Cloud solutions.

Application to the program is currently not active
Start date

January 2022

Duration

4 month

Group size

25-30 students

Schedule

Weekend bootcamp

Admission requirements
Expectation

Personal laptop or computer and readiness for intensive training

Language skills

Knowledge of English: Intermediate (B2)

Requirement

Commercial experience in programming 2+ years

Age

20 years and older

Upon the course completion you will::

Become familiar with modern SDLC (Software Development Life Cycle), including Git SCM (Source Control Management), code review process, Pull Request/Push builds, TDD (Test Driven Development) have detailed information about Release and Branching models.

When and why use User Story Isolation, how to set up an effective collaboration ecosystem within development team be able to setup.

Continuous Integration subsystems based on Jenkins, configure integrations between Github, Jenkins, SonarQube & Nexus setup testing framework, including unit tests, end2end tests, smoke tests,

Build regression plan, configure SonarQube to work with code coverage and Quality Gates understand the difference between Software Architecture & Software design, know how and when to use different patterns and how to transform business inputs into technical terms.

Be able to build RESTful API GraphQL API, Orthogonal API, decompose high-level tasks using Design Patterns use docker as main delivery tool.

Play with Kubernetes to setup HA (High Availability) cluster based on Microservice Architecture

Program

Software engineering
10

Number of modules

  • Continuous Integration
  • Source Control Management Systems - Git
  • Branching & Release models
  • Jenkins
  • Github
  • SonarQube, Code coverage, Instrumentalization
  • Code review process, User Story Isolation mechanics
  • TDD - Test Driven development
  • Test planning, Performance, Regression & Security testing, Vulnerability scanning, Automation e2e & UI testing, Manual testing
  • Software external quality factors: correctness, robustness, extensibility, reusability, etc.
  • Architecture types: Standalone, N-tier, SOA, Microservices, Serverless, Web-Queue-Worker, Event-driven architecture, Big Data/Big Compute
  • Requirements gathering, Pre-sales, Estimates, RFI/RFP

  • General project organization structure, component model, multi-component management system, minimum viable templates
  • Data structures, key programming paradigms: procedural, object-oriented, functional, logic. Compilers vs Interpreters, Processes & Threads
  • The Clean Architecture', Designs patterns, GRASP, UML, C4 model, MVC(MVVM), BFF - Backend For Frontend
  • Inheritance vs Composition vs Aggregation, Composition vs Decomposition, Documentation, Error handling
  • Polyglot programming, Polyglot persistence
  • CAP Theorem (RDBMS, NoSQL, Graph DB) DB migration, Sharding
  • Authentication and Authorization, RBAC vs ABAC, OAuth
  • Message brokering
  • Mobile-first, mobile-only
  • Multi-tenancy, Audit, Branding, GDPR Compliance
  • Waterfall, RUP, Agile, Technical debt, Legacy systems, Refactoring
  • Multithreading, Client-Server, P2P, Distributed computing, Lock-free algorithms, Caching, Journaling, Metaprogramming/Generics, Interprocess communication: mutex, semaphore, pipe, shared memory
  • Orthogonal API, Contract programming, SOLID, ACIS
  • RESTful API, OpenAPI, GraphQL, gRPC, API deprecation strategy
  • API management, API versioning, Pagination, Rate limits, Search
  • AI (ML/DL) overview
  • Artifacts repository
  • NoOps, Opsless, Dev/Prod parity, Infrastructure-as-Code
  • Docker, Docker compose, containerd
  • Different types of environments (dev, qa, uat, prod)
  • Blue/Green, A/B, Canary deployment, 0-downtime, Rolling updates 'Follow the sun' strategy
  • Environment variables, secrets, vaults
  • Kubernetes, Service mesh (Istio, Maesh/Linkerd, Anthos) overview
  • Monitoring, Measuring, Alerting
  • Backup, Recovery strategy, Support (L1/L2/L3)
  • SRE, SLIs, SLOs, SLAs
  • Virtualization, Hardware level/User level
  • Cloud platforms overview, Hybrid Clouds solutions, Zones
  • High Availability, Cloud Architecture patterns
  • Final project