Responsibilities
- Contribute to solving large, complex problems by building simple, elegant solutions.
- Collaborate closely with teammates and stakeholders across product, sales, and operations.
- Be an active part of our architectural journey: from legacy monolith to modular monolith and event-driven systems.
- Apply and grow your knowledge of domain-driven design, hexagonal architecture, test-driven development, and clean code.
- Use object-oriented and functional programming concepts appropriately.
- Learn from senior colleagues, while steadily increasing your scope of ownership.
- Continuously improve how we work, experimenting with new ideas and raising the bar with the team.
Requirements
- Solid foundations in computer science and software engineering (algorithms, data structures, system design, agile approaches).
- 4 + years' experience in software development
- Interest in, or hands-on experience with, domain-driven design (strategic & tactical).
- Familiarity with hexagonal / ports-and-adapters architecture.
- Experience with object-oriented and functional programming concepts.
- Passion for writing clean, simple, and readable code.
- Understanding of test-driven development and eagerness to grow in this area.
- Exposure to or interest in event-driven architectures.
- A collaborative mindset: you’re a team player who values collective ownership and close cooperation across disciplines.
- Strong analytical and communication skills, with the ability to learn and explain complex ideas.
- Above all: curiosity, drive, and a desire to continuously improve — both yourself and the way the team builds software.