Senior/Lead Java Developer Offline
Summary
- 10+ years of experience in developing software in Java, Spring Boot, and Hibernate;- Strong knowledge of data structures, algorithms, and software development principles;- Proficiency with OOP concepts, large-scale software architecture, networking and distributed system and UNIX/Linux environments;- 5+ years of experience with PostgreSQL, strong understanding of relational databases and SQL;- Experience with NoSQL databases;- Knowledge of Cloud Services and cloud-native application development;- Expert-level understanding of CI/CD principles, know-how of various tools, and passionate focus on CI/CD practices;- Experience with containerization and orchestration frameworks such as Docker and/or Kubernetes;- Location: EU (Poland is preferable), Bulgaria, Serbia, Georgia;- The position is for a full time, long term project.
About the Role:
As a Backend Engineer, you will be responsible for developing key technical solutions for complex purchasing and supply chain business platforms. The system is a SAAS for raw materials strategic sourcing and analytics.
As a member of our engineering team, you will be expected to be a team player, own the product, and contribute and add meaningful innovation to our development. You will have a significant opportunity to be an important part of the client's team. You will collaborate closely with all other teams to assist in their functions.
Minimum qualifications:
- Experience with data modeling and database design with a focus on performance;
- 5+ years of experience with PostgreSQL, strong understanding of relational databases and SQL;
- Experience with NoSQL databases;
- Experience with service-oriented architecture (especially REST);
- Knowledge of Cloud Services and cloud-native application development;
- Expert-level understanding of CI/CD principles, know-how of various tools, and passionate focus on CI/CD practices;
- Experience with containerization and orchestration frameworks such as Docker and/or Kubernetes;
- Strong unit test and debugging skills;
- Proficiency in code versioning tools such as Git;
- 7+ years of experience* in developing software in Java, Spring Boot, and Hibernate;
- Strong knowledge of data structures, algorithms, and software development principles;
- Proficiency with OOP concepts, large-scale software architecture, networking and distributed systems, and UNIX/Linux environments;
- Strong verbal and written communication skills;
- Strong sense of analytical thinking and problem-solving skills;
- Excellent attention to detail, effective time management, and multitasking skills;
- Bachelor’s degree or equivalent practical experience;
- Fluent in English.
Preferred qualifications:
- Understanding of front-end technologies such as JavaScript, React, HTML5 and CSS3;
- Prior experience with SCRUM/Agile methodologies;
- Contributions to open-source projects;
- Experience with purchasing and/or ERP systems.
Focused list of technical expectations:
- Very strong Java experience, worked with recent releases, knows common data structures and JDK APIs;
- Very strong Spring Boot experience has multiple professional experiences with spring boot-microservices, JPA;
- Very strong experience with REST and other API protocols;
- Very strong relational database experience, both database structure and query language;
- Strong understanding of git, git-flow, GitHub flow, and application development lifecycle.
Key Responsibilities:
- Responsibilities Writing well-designed, reusable, testable, and secure code by applying best software development practices;
- Designing and implementing low-latency, high-availability, and performant applications;
- Architecting well-defined APIs for user-facing elements developed by front-end developers;
- Investigate 3rd party tools and assess fit to various requirements such as data management, performance, and security;
- Create flow diagram cases;
- Collaborating in a multi-disciplinary team;
- Participating and conducting code reviews;
- Troubleshooting system-level integration and performance issues;
- Discovering, learning, and implementing new technologies Improving the coding standards and processes within the team;
- Documenting the software components;
- Mentoring junior team members in best practices, pair programming, giving internal training, etc.