We are seeking a skilled and motivated Senior Software Engineer (Java) to join our team.
Innovecs is a global digital services company with a presence in the US, the UK, the EU, Israel, Australia, and Ukraine. Specializing in software solutions, the Innovecs team has experience in Supply Chain, Healthtech, Collaboration Tech, and Gaming.
For the fifth year in a row, Innovecs is included in the Inc. 5000, the list of fastest-growing private companies in the US, and a ranking of the best global outsourcing service providers by IAOP. Recently, Innovecs was honored with the prestigious Global Good Awards for the Employee Engagement & Wellbeing, won gold at the Employer Brand Management Awards, and was included in the Global Top 100 Inspiring Workplaces Ranking.
Our value to you:
- Flexible hours and remote-first mode
- Competitive compensation
- Complete Hardware/Software setup – anything you need for work
- Open-door culture, transparent communication, and top management at a handshake distance
- Health insurance, vacation, sick leaves, holidays, paid maternity/paternity leave
- Access to our learning & development center: workshops, webinars, training platform, and edutainment events
- Virtual team buildings and social activities to celebrate the Innovecs lifestyle
Requirements:
Educational Background
- Bachelor’s degree in Computer Science, Engineering, or a related field.
Professional experience
- 5+ years of experience in backend development with a primary focus on Java.
- Proven track record of developing and maintaining APIs and web services.
- Strong commercial experience with Java and the Spring ecosystem.
- Experience with Python web frameworks such as Django, Flask, or FastAPI is considered an advantage.
Java and Spring expertise
- Strong hands-on experience with Spring Boot, including REST APIs, Security, Data, and Validation.
- Solid understanding of the broader Spring ecosystem, including Spring MVC, Spring Security, Spring Data JPA, and Hibernate.
- Deep understanding of REST principles and API design best practices.
- Experience with asynchronous processing patterns such as CompletableFuture and messaging solutions.
- Strong knowledge of JVM fundamentals, including memory management, threading, and garbage collection basics.
- Experience with unit testing using JUnit and Mockito, as well as Testcontainers.
- Basic understanding of performance testing approaches and tools.
Database and SQL
- Strong SQL knowledge and experience with relational databases.
- Understanding of indexing strategies, query optimization, and execution plans.
- Experience with JPA and Hibernate performance tuning.
- Knowledge of transaction management concepts.
- Understanding of database connection pools such as HikariCP.
Cloud, DevOps, and operations
- Experience configuring environments in Azure, including separation of development, staging, and production.
- Experience deploying applications to Azure services such as App Services, virtual machines, or containers.
- Understanding of CI/CD pipelines using Azure DevOps or GitHub Actions.
- Hands-on experience with Docker.
- Experience with monitoring and logging, including configuration of Application Insights, health checks, and alerts.
System design and engineering practices
- Ability to design scalable and maintainable backend systems.
- Ability to make technical decisions and clearly explain trade-offs.
- Experience participating in code reviews and maintaining code quality standards.
- Strong ownership mindset and accountability for delivered solutions.
- Ability to debug and resolve complex production issues.
Linux and scripting
- Confident Linux user with experience in process management, file system structure, log analysis, permissions, and basic networking diagnostics.
- Ability to write shell scripts for automation and troubleshooting.
Problem solving
- Strong analytical thinking and problem-solving skills.
- Ability to troubleshoot, debug, and optimize application code and systems.
Communication and collaboration
- Excellent written and verbal communication skills.
- Ability to collaborate effectively with team members and stakeholders.
Methodologies
- Experience working in Agile environments.
- Understanding of CI/CD and DevOps practices is considered an advantage.
Responsibilities:
Backend service development and maintenance
- Design, build, and maintain efficient, reusable, and reliable Java backend components and services.
- Develop and integrate APIs, databases, and other server-side systems.
- Ensure high code quality, maintainability, and alignment with architectural standards.
Application performance and reliability
- Identify performance bottlenecks and system inefficiencies, and implement effective solutions.
- Continuously improve application performance, scalability, and responsiveness.
- Ensure production stability and reliability of backend services.
Code quality and engineering practices
- Conduct code reviews and provide constructive feedback to peers.
- Follow and promote best practices in version control, testing, and deployment.
- Contribute to continuous improvement of engineering standards and processes.
EDI solutions development
- Design, implement, and maintain EDI processes and integrations.
- Ensure accurate and efficient exchange of electronic documents and data between systems.
- Troubleshoot and resolve issues related to EDI transactions, mappings, and workflows.