The position involves joining a highly motivated team to develop a modern solution for an existing client. The candidate will act as a technology expert, taking ownership and applying best practices to impact new business positively. The role focuses on back-end development within a modern software development environment, including cloud-based platforms and microservice architecture.
Responsibilities:
- Develop back-end components to meet customer business needs using modern software development practices.
- Participate actively in decision-making processes related to application architecture, solution development, architecture, and code reviews.
- Develop and review feature design documents, providing inputs and updates to solution specifications.
- Design and implement various types of tests, including unit, integration, and functional tests.
- Proactively contribute to solution development and process improvements.
- Collaborate within an international distributed team operating in an Agile environment.
- Communicate effectively with project managers, engineers, architects, QA, and other stakeholders.
- Contribute to delivering the product roadmap and planning activities.
- Maintain high coding standards, software best practices, and write highly testable, automatable, and performant code throughout the software development lifecycle.
Additional Skills and Plus Points:
- Experience with high-performance and high-load systems.
- Operational insights including comfort with Linux, command lines, and Kubernetes.
- Node.js and Typescript experience for AWS Lambda functions.
- AWS experience including Aurora, Lambda, Step Functions.
- Certifications in Java, Spring Frameworks, and Cloud computing platforms are desirable.
- Knowledge of orchestration and containerization (Kubernetes, Swarm), deployment patterns, serverless architecture, integration with third-party solutions, NoSQL databases (MongoDB, ElasticSearch, CouchDB), search engines (ElasticSearch, Azure Search, Apache Solr), provisioning tools (Terraform, Ansible), and quality tools (SonarQube).
Technologies and Methodologies: Java (3+ years), Kotlin, Reactive programming (Spring Boot Reactor), Domain Driven Design, REST API development, Spring Boot Framework, Testing frameworks (JUnit, PowerMock, WireMock), ORM (Hibernate), RDBMS (MySQL/MariaDB, PostgreSQL, Oracle), Key-value storages (Redis, Memcached), Messaging systems (RabbitMQ, Apache Kafka, Active MQ, AWS SQS, Azure Service Bus, Google Pub/Sub), Web Servers, Version control (GIT), Cloud platforms (AWS, Google Cloud Platform, Microsoft Azure), Docker, Continuous Integration tools (Gitlab Pipeline, Jenkins, TeamCity, Bamboo), Agile software processes, Code review and refactoring processes.
Additional expertise includes understanding of computer science principles (OOP, SOLID, DDD, TDD, BDD), database theory, algorithms, data structures, architectural and design patterns, security patterns (OWASP), network protocols and conventions (REST, RPC), authentication and authorization flows (OAuth, JWT), and troubleshooting, profiling, and debugging applications.