Position: Backend Software Engineer (Java)
Company: WeAreBrain
Experience required: 3y
English level: intermediate

From our start-up client from the Netherlands, you will be defining and developing a new digital international B2B commodities trading marketplace from scratch. You will be working in a compact team of 7 people at a fast pace with an extensive span of control and responsibility

Our co-located team in Kyiv collaborates closely with colleagues and the client in the Netherlands. The users will be from around the world, so technical setup and infrastructure will be international from day one (multi-languages, time zones, currencies, etc.). Among the challenges are multiple 3rd-parties integrations

**Required skills**

— A сomputer science, software engineering, or related field master’s or bachelor’s degree is a must
— Solid knowledge of architectural patterns and programming paradigms (OOP, SOLID, DDD, etc.)
— Hands-on experience with services or/and microservices architecture
— At least 3 years of backend development commercial experience within Java (Spring)
— Hands-on experience with common RDBMS and knowledge of DBs design
— Experience in the optimization of system performance (memory usage, cache optimization)
— Experience with the writing of tests on JUnit
— At least strong intermediate English proficiency with good communication skills

**As a plus**

— Strong theoretical understanding or practical experience with NoSQL databases
— Experience or knowledge of real-time communication within WebSockets
— Hands-on experience with message-broker/stream-processing software RabbitMQ/Apache Kafka, Amazon Services: SNS, SQS
— Practical experience with infrastructure (web servers, cloud services, containerization, etc.)

**We offer**

— Full taxes compensation
— Accounting support & consulting
— Medical insurance
— COVID support (monthly financial contribution)
— Education compensation
— Paid time off (vacation, sick leaves, public holidays)
— Career path design, helping to reach out next promotion steps

**Responsibilities**

— Collaborate closely with teammates and client’s representatives
— Create an architectural design to illustrate high-level solutions to an application and feature requests
— Contribute to overall product quality, own and improve the technology stack, and be responsible for the realization of a services/microservices architecture
— Actively participate in overall team meetings, architectural design sessions, product meetings, etc.
— Translate business requirements and feature requests into User Stories
— Deliver high-quality, testable, and maintainable code, as well as review code was written by others
— Improve the code quality and delivery approach using best practices
— Deploy applications on cloud servers using automation services