Software engineer
Required skills
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
Preferred skills
Technologies
Backend: Java / Spring, Persistence: MySQL, Frontend: Vue.js (though deep frontend expertise is not required), Architecture: Modular Monolith (evolving from legacy monolith), Hexagonal Architecture, Domain-Driven Design, Event-Driven Systems
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
Seniority
Domain
Software engineering