Key Responsibilities:
- Design, develop, and maintain back-end components, ensuring smooth integration and high performance.
- API Development & Integration: Build and integrate RESTful APIs to ensure the seamless communication between the front-end and back-end systems.
- Software Design: work closely with the Software Architect to design software that guarantees the expected quality attributes, using well known software principles, software patterns and best practices.
- Code Quality & Best Practices: write clean, maintainable, and efficient code while following best practices, such as version control with Git, code reviews, and maintaining a high level of test coverage.
- Problem-Solving & Troubleshooting: debug issues across the stack, perform root cause analysis, and implement solutions to improve system performance and reliability.
- Agile Development: work in an Agile environment, participating in sprint planning, daily stand-ups, and retrospectives to ensure timely and high-quality delivery.
- Improve and maintain the CI/CD pipelines.
- Treat security as an integral part of system design. Key expectations include implementing robust Authentication and Authorization workflows, enforcing strict OWASP Top 10 mitigation, conducting threat modeling, managing secrets safely, and embedding security checks into CI/CD pipelines.
Required Skills and Experience:
- Experience: 5+ years of hands-on experience as a Java Software Engineer/Developer and at least 1 year as a Java Senior Software Backend Engineer/Developer.
Software Design & Principles:
- SOLID Principles.
- Design Patterns: Familiarity with common design patterns like Singleton, Factory, Observer, and Strategy.
- Architectural Patterns: Understanding of architectural styles like layered architecture, modular monolith, microservices, event-driven, and serverless architectures.
Back-End:
- Solid experience with server-side programming in Java.
- Java 8, 11, 17, 21.
- Concurrency & Multithreading.
- API design and implementation.
- RESTful APIs: Ability to fetch and manage data from REST APIs.
- Scalability Patterns: implementing load balancing, horizontal scaling, sharding, and rate limiting.
- Multi-layer caching with Redis or Memcached to reduce database load.
Expertise with Spring Framework:
- Spring Core: Dependency Injection (DI), Inversion of Control (IoC).
- Spring Boot.
- Spring JPA.
- Spring Security.
Databases:
- Experience working with relational databases like: MySQL, PostgreSQL, Oracle.
- Advanced Databases: optimize SQL queries, design indexing, handle migrations.
- Data Integrity: transactions management, concurrency control, and data validation safely.
Building Tools:
- Maven, Gradle.
- Github Actions (Plus).
Version Control:
- Proficient in Git for version control.
Deployment:
- Familiarity with containerization using Docker and orchestration with Kubernetes.
- Experience working with CI/CD tools (e.g., Jenkins, GitHub Actions).
Testing:
- Strong experience writing unit, integration, and end-to-end tests using frameworks like JUnit, Jest, or Mocha.
- Test Coverage.
Security:
- Authentication & Authorization: OAuth2, JWT tokens handling, and OIDC flows.
- Role-Based (RBAC) or Attribute-Based (ABAC) permissions.
- Credential safety: Enforce strong password hashing (Argon2, bcrypt) and multi-factor logic.
- Encryption & Hashing: Secure communication (TLS/SSL), data encryption.
- Vulnerability Management: Preventing common vulnerabilities like SQL injection, XSS, CSRF, and understanding OWASP security practices.
- Secret isolation: use of dedicated vaults (e.g., HashiCorp Vault) instead of environment variables in code.
Performance Tuning & Scalability:
- Profiling: Using tools like JProfiler, VisualVM.
- Caching: Familiarity with caching mechanisms (e.g., Redis, Memcached) to reduce load on databases and improve performance.
- Horizontal Scaling: Understanding the concepts of scaling applications horizontally across multiple machines.
Agile Methodologies:
- Experience working in an Agile/Scrum environment, participating in sprint cycles, planning meetings, and retrospectives.
Soft Skills:
- Problem Solving: Ability to break down complex problems into clear, efficient solutions.
- Collaborative & Autonomous: Comfortable working independently while maintaining high alignment with agile team members.
- Strong Communication: Excellent verbal and written communication skills with both technical team members and non-technical stakeholders.
- Mentorship: Guide junior and mid-level developers through code reviews and constructive feedback.
Bonus Qualifications (Nice-to-Have):
Backend:
- Knowledge of how to use GraphQL for more flexible and efficient data querying.
- Protocol Buffers (Protobuf).
- Observability: set up structured logging, metrics, and distributed tracing via OpenTelemetry or Prometheus.
Expertise with Spring Framework:
Microservices Architecture:
- Inter-service Communication: Understanding synchronous (REST, gRPC) and asynchronous (Kafka, RabbitMQ) communication methods.
- API Gateway.
Message Queues & Event-driven Architecture:
Databases:
- NoSQL Databases like MongoDB.
Building Tools:
Performance Tuning & Scalability:
- Metrics & Monitoring: Knowledge of tools like Prometheus and Grafana to monitor system health, performance, and alerts.
- Load Balancing: Knowledge of load balancing strategies and tools.
Front-End Technologies:
- Proficiency in HTML5, CSS3, JavaScript (ES6+).
- Familiarity with popular CSS frameworks like Bootstrap, Material UI, or Tailwind CSS to speed up UI development.
- Proficiency in JavaScript. Knowledge of DOM manipulation, asynchronous programming (promises, async/await), and working with APIs.
- Ability to use browser developer tools effectively for inspecting code, debugging JavaScript, and diagnosing performance issues.
- Experience working with one or more modern front-end frameworks/libraries like React, Angular, or Vue.js.
- Familiarity with modern build tools to bundle and optimize your code.
- Knowledge of package managers for handling libraries, dependencies, and automation tasks: e.g., NPM, Yarn, Webpack, Babel, CSS preprocessors (e.g., Sass, LESS).
What We Offer
- Competitive salary package with performance-aligned growth.
- Opportunity to work on impactful digital identity products used by millions worldwide.
- Small company, informal office environment and always in for fun!