Ofertas › Constructor Labs

PhD Position: World Models for Software Architecture Synthesis (Constructor Fabric)

Constructor Labs · Bremen

<p><strong>Supervisor: </strong>Prof. Dr. Alexander Tormasov<strong> </strong></p> <p><strong>About the Position</strong></p> <p>Constructor Knowledge Labs (CKL), in collaboration with Constructor Technology, invites applications for a PhD position in machine learning for software engineering and formal methods, on the Constructor Fabric project.</p> <p>Constructor Fabric turns a company's informal knowledge into production software through a pipeline of composable capability units called <em>gears</em>: requirements → architecture → product fit → framework (G1) → application → runtime. We are building a <strong>World Model</strong> over that pipeline — a model that does not just generate code, but predicts the <em>consequences</em> of an architectural decision: total cost of ownership, unintended side effects, latency and failure behaviour, and whether a proposed composition is even admissible.</p> <p><br>The central object is not a digital twin of the application but its <strong>formal architectural skeleton</strong>: gear contracts (GearSpec), a typed attributed hypergraph of the application (AppGraph), 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 <strong>gap</strong>. All of it is written in a <strong>domain-specific language</strong> whose syntax trees and graphs we keep in a projectional editor (JetBrains 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.</p> <p><strong>What you will work on</strong><br>Depending on your background, one or two of:</p> <ol> <li>Formal skeleton and composition — GearSpec as a contract $(Requires, Provides, State, Effects, Assumptions, Guarantees, Parameters)$; AppGraph as a typed attributed hypergraph; an algebra of assembly (sequential, parallel, feedback, refinement); semantic projections and system-level invariants over trajectories.</li> <li>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.</li> <li>DSL design and language engineering — the gear DSL and its glue layer decide which AppGraphs 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.</li> <li>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.</li> <li>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.</li> </ol> <p><strong>Profile</strong></p> <ul> <li>MSc (or equivalent) in computer science, mathematics, or a mathematical natural science.</li> <li>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.</li> <li>Evidence that you finish things: a maintained open-source repository, a peer-reviewed publication, or a strong competition result.</li> <li>Fluent technical English.</li> <li>Most importantly: the habit of stating an assumption explicitly and designing an experiment that could falsify it.</li> </ul> <p><strong>Required mathematical background</strong></p> <p><strong><em>Core skills:</em></strong></p> <ul> <li>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.</li> <li>Linear algebra and multivariate calculus at the level needed to derive, not just call, a training objective: matrix calculus, gradients, stochastic optimisation, conditioning.</li> <li>Discrete mathematics and graph theory. Typed and attributed graphs and hypergraphs, subgraph matching and isomorphism, graph rewriting, reachability, basic complexity classes.</li> <li>Mathematical logic and formal methods. First-order logic, type systems, SAT/SMT, temporal logic (LTL/CTL) and model checking, pre/post-conditions, invariants, refinement.</li> <li>Sequential decision making. MDP/POMDP, dynamic programming, model-based RL, latent state-space (world) models, Monte-Carlo Tree Search.</li> </ul> <p><strong><em>Strong command of at least one, working knowledge of a second:</em></strong></p> <ul> <li>Formal langua

Que mi agente aplique