We want to give you an overview how life & work looks like once you are part of Untis product development.
We have been working on school management software for more than 50 years and have lived through many technological changes.
In 1984, we started to develop our windows application (C++) with a very small team.
In 2006, we started to develop in parallel our web application (JSP, JAVA, mostly 3-layered) consisting of UI views on database tables.
In 2013, we managed to hybridize our desktop application with the C#/.NET, a major leap forward.
In 2018, we started to completely reinvent our Web (React, Java) and Mobile (native iOS, Android) User Experience and enhance our teams.
In 2019, we started to bring our Windows application online and closer together with our web application, using Apache Kafka in a distributed architecture.
Since the end of 2020, we are creating future views of our products and domains to help us form team boundaries and take the right technical decisions.
The education domain is governed per country and per state.
The use cases across these regions are similar, which allows us to build one set of configurable products and user interfaces.
In each area we work with partners who best understand the local requirements and systems.
Each region can have its own government education system providing reference (e.g. subject, grading scheme) and master data (e.g. teacher), and requesting aggregated accounting data (e.g. hours worked per teacher).
For private schools, reference and master data is managed in our systems.
Each school can use one or multiple (non-Untis) e-learning systems, which are provided by a couple of big and some smaller vendors across Europe.
Our systems are used by more than five million users in 20+ countries, most of them in Europe.
How we work
- We use Objective and Key Results (OKR) to plan and align our work.
- We spend about 80% of our time on product improvements and the rest on housekeeping (e.g. on Tech Fridays - 20% - 80%).
- We use a combination of user analytics, design sprints and short feedback cycles to deliver value to our users.
- Cross-functional feature teams are optimizing their effective way of working (Scrum, Kanban) in a common three-week cadence.
- A separate customer-specific team focuses on individual project implementations.
- Our self-organizing communities of practice (CoPs) are improving work across our teams (workshops).
- We include static code analysis and coding guideline checks in our development pipelines.
- We use automated UI testing frameworks (Cypress, Ranorex) for our web and Windows application which are integrated into our CI/CD GitLab pipeline.
- We work beyond standard role definitions and responsibilities, use consent decision making and share responsibilities like project management, architecture, test management, release management,...
- We want to continuously improve ourselves on technical, domain or personal level.
Our tech stacks across all teams
- Legacy tech stack
- C# Winforms, C++
- JSP with Dojo
- Modern tech stack - started three years ago:
- "Micro"-Services Kafka, Spring Boot
- React, Native Apps
- CDN, VDC, Kubernetes, Docker, Hosted artifactory
Special Interests - Optimization/Algorithms
- More than 50 different optimization weights
- Different optimization algorithms in several application domains
- Regular timetables
- Course optimization
- Calendar optimization
- Break supervision optimization
- Stand-by optimization
- Parents day optimization
- Substitution proposal