PhD Position (m/f/d): World Models for Software Architecture Synthesis (Constructor Fabric) in Bremen

PhD Position (m/f/d): World Models for Software Architecture Synthesis (Constructor Fabric) in Bremen

Bremen Vollzeit 49500 - 60500 € / Jahr (geschätzt) Vor Ort
C

Auf einen Blick

  • Aufgaben: Entwickle innovative Softwarearchitekturen mit maschinellem Lernen und forme die Zukunft der Softwareentwicklung.
  • Unternehmen: Constructor Knowledge Labs, ein führendes Unternehmen in der Softwaretechnik.
  • Vorteile: Monatliches Stipendium von 1.650 €, Forschungsbudget und Gesundheitszuschuss.
  • Weitere Informationen: Dynamisches Umfeld mit exzellenten Entwicklungsmöglichkeiten und einem engagierten Team.
  • Warum dieser Job: Gestalte bahnbrechende Technologien und arbeite an realen Herausforderungen in der Softwarearchitektur.
  • Qualifikationen: MSc in Informatik oder verwandten Bereichen, Erfahrung in Programmiersprachen und formalen Methoden.

Das prognostizierte Gehalt liegt zwischen 49500 - 60500 € pro Jahr.

Supervisor

  • Prof. Dr. Alexander Tormasov
  • About the Position

Constructor Knowledge Labs (CKL), in collaboration with Constructor Technology, invites applications for a Ph D position in machine learning for software engineering and formal methods, on the Constructor Fabric project.

Constructor Fabric turns a company's informal knowledge into production software through a pipeline of composable capability units called gears : requirements → architecture → product fit → framework (G1) → application → runtime. We are building a

World Model over that pipeline — a model that does not just generate code, but predicts the consequences of an architectural decision: total cost of ownership, unintended side effects, latency and failure behaviour, and whether a proposed composition is even admissible.

The central object is not a digital twin of the application but its formal architectural skeleton : gear contracts (Gear Spec), a typed attributed hypergraph of the application (App Graph), a composition algebra that defines which assemblies are legal, and several semantic projections (types, protocols, resources, security) over which properties are proved, refuted by counterexample, or reported as an explainable gap . All of it is written in a domain-specific language whose syntax trees and graphs we keep in a projectional editor (Jet Brains MPS) — so the DSL is not a convenience layer, it is the thing that defines the model's state space and the boundary of what the model is allowed to propose.

What you will work on

Depending on your background, one or two of

  • Formal skeleton and composition — Gear Spec as a contract $(Requires, Provides, State, Effects, Assumptions, Guarantees, Parameters)$; App Graph as a typed attributed hypergraph; an algebra of assembly (sequential, parallel, feedback, refinement); semantic projections and system-level invariants over trajectories.
  • Architecture synthesis as an inverse problem — given a specification, load and constraints, find the composition of gears that realises it.

Constraint solving and MCTS as the baseline; a learned transition/value model for ranking and pruning; LLM proposals treated strictly as candidate hypotheses that a DSL parser, type checker and property checks must then admit or reject.

  • DSL design and language engineering — the gear DSL and its glue layer decide which App Graphs are expressible at all, and therefore where the search space ends.

This thread covers the abstract syntax and static semantics of that DSL; the requirement that an architectural decision be unbypassable by construction (you must not be able to wire authentication around the Auth Resolver); what happens to the language when gear contracts change or a 201st gear is added; projectional representation of graphs with cycles; and the open hypothesis that a specialised G1-DSL is generated together with every G1.

  • Local transition models and pipeline surrogates — fast approximate predictors for single pipeline steps (spec change → code quality, architecture → product fit, app → runtime outcome), with calibrated uncertainty, validated against real telemetry.
  • Data — reconstructing (specification → architecture) pairs from open repositories at scale, plus synthetic project generation from a fixed gear set and DSL grammar to cover rare transitions, gaps and counterexamples.

Your Profile

  • MSc (or equivalent) in computer science, mathematics, or a mathematical natural science.
  • Coursework in compilers, programming-language theory, language design or model-driven engineering is a strong positive signal, half of this project is deciding what a formal architecture description is allowed to say.
  • Evidence that you finish things: a maintained open-source repository, a peer-reviewed publication, or a strong competition result.
  • Fluent technical English.
  • Most importantly: the habit of stating an assumption explicitly and designing an experiment that could falsify it.
  • Required mathematical background

Core skills

  • Probability and statistics.

Estimation, Bayesian inference, uncertainty quantification and calibration (proper scoring rules, reliability diagrams, ECE), experiment design and significance testing.

A prediction we cannot calibrate is not usable here.

  • Linear algebra and multivariate calculus at the level needed to derive, not just call, a training objective: matrix calculus, gradients, stochastic optimisation, conditioning.
  • Discrete mathematics and graph theory. Typed and attributed graphs and hypergraphs, subgraph matching and isomorphism, graph rewriting, reachability, basic complexity classes.
  • Mathematical logic and formal methods. First-order logic, type systems, SAT/SMT, temporal logic (LTL/CTL) and model checking, pre/post-conditions, invariants, refinement.
  • Sequential decision making. MDP/POMDP, dynamic programming, model-based RL, latent state-space (world) models, Monte-Carlo Tree Search.

Strong command of at least one, working knowledge of a second

  • Formal languages, semantics and language engineering — grammars (context-free, attribute and graph grammars), derivation and reachability, parsing; abstract versus concrete syntax; operational and denotational semantics; metamodelling, model-driven engineering, model-to-model transformation, and projectional (structural) editing of the kind Jet Brains MPS implements.

We are asking for the education, not the tool: you should know why a projectional editor exists, what a metamodel buys you over a text grammar, and how a language evolves without breaking its existing models.

Hands-on MPS experience is explicitly not required — we will teach it.

  • Category theory for compositional systems — monoidal and traced monoidal categories, functors as semantic projections, string diagrams, operads.

This is the language of our assembly algebra.

  • Causal inference — structural causal models, do-calculus, counterfactuals, identifiability.

Required for the "what happens if we replace this technology / move on-premises" class of questions, which similarity search alone cannot answer.

  • Queueing theory and applied stochastic processes — M/M/1 and networks of queues, heavy tails, retries, timeouts, partial failure and reliability models.

This is the resource and stochastic projection.

  • Combinatorial optimisation, constraint programming and program synthesis theory — CEGIS, version-space algebras, symmetry breaking, search heuristics.
  • Representation learning theory — VAEs and latent dynamics, GNN expressiveness (Weisfeiler-Leman hierarchy), permutation equivariance, embedding migration under a changing vocabulary.
  • Required hands-on programming skills

This is an engineering-heavy Ph D. We expect code that another person can clone, run and reproduce — not notebooks that worked once.

Must have

  • Python (professional level).

Type hints, packaging, `pytest`, profiling, `asyncio`, memory-aware data structures.

You write unbuffered, logged, restartable long-running jobs by default.

  • Training loops written from scratch, custom datasets and collation, mixed precision, multi-GPU; experiment tracking (W&B or MLflow), configuration management (Hydra), strict seed and artefact reproducibility.
  • Graph machine learning.

Py Torch Geometric or DGL — message passing, heterogeneous and typed graphs, graph transformers, handling graphs whose node vocabulary changes between versions.

  • Solvers and verification tooling driven from Python.

Z3 or cvc5 hands-on; demonstrated exposure to at least one model checker (TLA+/TLC, SPIN, Nu SMV, Alloy) or proof assistant (Lean, Coq, Isabelle).

  • Code as data. AST manipulation, `tree-sitter`, static analysis, dependency and interface graph extraction, large-scale repository mining.
  • Parallel data pipelines. `multiprocessing`, Ray or Dask; checkpointing, heartbeats, cost estimation before launching a run that touches millions of files.
  • LLM engineering.

API orchestration, structured and grammar-constrained decoding, evaluation harnesses, token/cost accounting — with the discipline to treat model output as a hypothesis subject to formal checks.

  • Linux, git, code review, shell.

Desirable

  • Language tooling you have actually used: ANTLR, Xtext, Lark, or a parser, type checker or interpreter you wrote yourself.

Our internal representation of gear syntax trees and graphs lives in Jet Brains MPS — again, we do not ask for MPS experience, only that you are comfortable reading and extending a metamodel; Java/Kotlin literacy helps once you get there.

  • JAX, or compiler / SAT-SMT internals.
  • Infrastructure literacy — Docker, Kubernetes, Terraform, Open Telemetry/Prometheus — since the resource projection is calibrated against real deployment telemetry.
  • One systems language (Rust, Go or C++) for performance-critical search.
  • Prior experience with production software architecture, or with a brownfield system you had to change without breaking.
  • Funding

The appointment provides full financial coverage through a dedicated fellowship, comprising:

  • Monthly stipend of €1,650
  • Monthly research-cost allowance of €100 (Forschungskostenpauschale)
  • Health-insurance subsidy of €100 per month

Location

Bremen, Germany

Duration

3 years, full time

Start date

  • November 2026
  • Application package must include
  • CV, including publications, code, or research projects.
  • Cover letter (1–2 pages) explaining your motivation, research interests, and fit with the project.
  • A link to code you have written.
  • A one-page research statement picking one open research question from the project and sketching how you would approach it.
  • Master’s and Bachelor’s degree certificate and transcripts.
  • Contact information for 2–3 academic referees.

Applications are reviewed on a rolling basis. Shortlisted candidates will be invited to interviews.

Please note that only applications submitted through the official application portal will be considered for recognition

PhD Position (m/f/d): World Models for Software Architecture Synthesis (Constructor Fabric) in Bremen Arbeitgeber: Constructor University

Constructor University ist ein hervorragender Arbeitgeber, der eine internationale und dynamische Arbeitsumgebung bietet, in der Mitarbeiter aktiv an bedeutenden Forschungsprojekten teilnehmen können. Mit umfangreichen Programmen zur beruflichen Weiterentwicklung, einem starken Fokus auf Nachhaltigkeit und einer offenen, vielfältigen Unternehmenskultur fördert die Universität das persönliche Wachstum und die Zusammenarbeit in interdisziplinären Teams. Zudem profitieren die Mitarbeiter von attraktiven Zusatzleistungen wie einem Fitnessprogramm, einem Firmenfahrradleasing und großzügigen Urlaubstagen, was das Arbeiten am grünen Campus besonders angenehm macht.

C

Kontaktdaten:

Constructor University Recruiting-Team

StudySmarter Expertenrat🤫

Wir sind der Meinung, dass du so PhD Position (m/f/d): World Models for Software Architecture Synthesis (Constructor Fabric) in Bremen erhalten könntest

✨Engagier dich in Entwickler-Communities!

Lass uns mal ehrlich sein: In der Software-Entwicklung sind Netzwerke Gold wert! Tummel dich in GitHub-Projekten, nehme an lokalen Meetups oder Hackathons teil und vernetze dich mit anderen Entwicklern. So steigerst du nicht nur deine Sichtbarkeit, sondern lernst auch die neuesten Trends und Technologien kennen.

✨Zeig deine Fähigkeiten!

Erstelle ein Portfolio, das deine besten Projekte und Code-Examples zeigt. Nichts überzeugt mehr als ein praktischer Beweis deiner Skills. Das kann auch helfen, bei Constructor University anzuklopfen, wenn du dich auf die Stelle als PhD Position (m/f/d): World Models for Software Architecture Synthesis (Constructor Fabric) bewirbst – so wissen sie gleich, was sie von dir erwarten können!

✨Nutze Jobplattformen speziell für Tech-Jobs!

Plattformen wie Stack Overflow Jobs oder AngelsList sind perfekte Orte, um Vollzeitstellen in der Software-Entwicklung zu finden. Hier sind viele tolle Unternehmen auf der Suche nach Talenten wie uns, also schau regelmäßig vorbei und bewirb dich direkt über die Website.

✨Such dir Mentoren und Feedback!

Hol dir Feedback von erfahrenen Entwicklern, die dir Tipps geben können, was Recruiter wirklich suchen. Ob über LinkedIn oder persönliche Kontakte: Menschen, die sich in der Branche auskennen, können enorm wertvoll sein, um dir zu helfen, dich optimal auf deine Bewerbung bei Constructor University vorzubereiten!

Wir glauben, dass du diese Fähigkeiten brauchst, um PhD Position (m/f/d): World Models for Software Architecture Synthesis (Constructor Fabric) in Bremen mit Bravour zu bestehen

Maschinelles Lernen
Software Engineering
Formale Methoden
Programmiersprachen-Theorie
DSL-Design
Graphentheorie
Mathematische Logik

Einige Tipps für deine Bewerbung 🫡

Highlights deiner Coding-Skills:In der Software-Entwicklung kommt es auf konkrete Fähigkeiten an. Vergiss nicht, relevante Programmiersprachen und Frameworks in deinen Lebenslauf aufzunehmen. Zeig uns, was du kannst – vielleicht mit einem Link zu deinem GitHub-Profil oder einer Übersicht deiner Side Projects, die deine Programmierkenntnisse illustrieren.

Dokumentation deiner Erfolge:Gerade bei einer Vollzeitstelle in der Software-Entwicklung sind konkrete Ergebnisse Gold wert. Nenn uns Zahlen und Ergebnisse aus deinen vorherigen Projekten. Hast du den Code optimiert oder Systemfehler behoben? Solche Erfolge zeigen, dass du die Sprache der Entwickler sprichst und einen echten Mehrwert bringst.

Attraktive Projektbeschreibungen:Wenn du an Projekten gearbeitet hast, die hervorstechen, beschreibe sie ausführlich in deinem Lebenslauf. Was war das Problem, das du gelöst hast? Welche Technologien hast du eingesetzt? Das gibt uns einen klaren Einblick in deine Herangehensweise und Problemlösungsfähigkeiten.

Motivation zeigen:In deinem Anschreiben solltest du deine Motivation für die Stelle im Bereich Software-Entwicklung bei Constructor University klar herausstellen. Warum sprichst gerade du die Anforderungen für diese Vollzeitrolle an? Mach deutlich, was dich an der Arbeit bei uns reizt und wie du über das rein Technische hinaus wachsen möchtest.

Wie man sich auf ein Vorstellungsgespräch bei Constructor University vorbereitet

✨Technische Vorbereitung auf die Coding-Challenges

In der Software-Entwicklung sind technische Fragen oft ein zentraler Teil des Interviews. Macht euch mit Plattformen wie LeetCode oder HackerRank vertraut, um eure Problemlösungsfähigkeiten zu trainieren. Zeigt im Interview viel Selbstbewusstsein beim Erklären eurer Ansätze!

✨Das eigene Portfolio im besten Licht präsentieren

Stellt sicher, dass ihr ein aussagekräftiges Portfolio habt, das einige eurer besten Projekte zeigt. Seid bereit, darüber zu sprechen, was eure Rolle war, welche Technologien ihr verwendet habt und welche Herausforderungen es gab. Das gibt den Interviewern einen Einblick in eure praktische Erfahrung.

✨Teamfähigkeit und Kommunikation betonen

In einer Vollzeit-Position wird Kommunikation im Team sehr wichtig sein. Seid bereit, Beispiele aus der Vergangenheit zu teilen, in denen ihr effektiv im Team gearbeitet habt. Dies zeigt, dass ihr nicht nur technische Fähigkeiten habt, sondern auch gut ins Team passt.

✨Vorbereitung auf Fragen zur Software-Architektur

Bereitet euch darauf vor, Fragen zur Software-Architektur zu beantworten. Themen wie RESTful APIs, Microservices und Cloud-Architekturen können Teil eures Interviews sein. Zeigt euer Verständnis durch Diskussionen und Beispiele aus eurer bisherigen Arbeit oder Projekte.