Intersog® is a Chicago-based provider of tailored software engineering solutions, offering dedicated development teams and custom software applications to help businesses meet their IT challenges. Our focus on innovation and efficiency allows us to partner effectively with clients across various industries.
We are looking for a talented Java Software Engineer (BackEnd) . Our client is looking to transform experiments into executable instructions for Workcells and devices. This is why we are looking for a dynamic Software Engineer to join our team. You will collaborate with a talented team of engineers and with cross-functional departments to deliver high-quality solutions that meet our clients' needs. If you're passionate about technology and creating user-centric applications, we want to hear from you!
Responsibilities :
- Java Backend Service Development : Design, develop, and maintain scalable and resilient Java-based Kubernetes services using the Spring Boot framework and its code generation capabilities. Leverage Spring's robust features, such as dependency injection, data access, and web development, to build efficient and maintainable microservices.
- Microservices Architecture : Design and implement new microservices, and enhance existing ones, adhering to best practices of microservices architecture. This entails utilizing message-based communication systems and effectively leveraging SDK clients or APIs for inter-service interaction. Additionally, employ efficient data querying techniques to retrieve information from diverse data systems and ensure transactional data integrity to ensure no instruction is lost.
- Akka Actors and Distributed Systems : Design, Build, and test execution logic partitioned by akka actors. Develop new distributed systems designs as needed to support the volume of experiment requests in a laboratory.
- Constraint Solvers : The core capability of the Orchestration Layer is solving a scheduling problem. The scheduling problem is created by an input experiment and the available inventory in a target laboratory. Choose the best algorithms and frameworks for the experiment request volume and the quantity of workcells and devices present in our client laboratories.
- Execution Engine : Computing the execution plan for an input experiment is the first half of the Orchestration Layer. The second half is managing the execution of said plan. Design, Build, and test the execution engine in the Orchestration Layer.
- Workcell Software Expertise : Gain a deep knowledge of the execution models and access patterns for Workcell Software Systems. The Orchestration Layer does not communicate directly with Workcell Software Systems but must generate execution plans and execute them in accordance with the current capabilities of Workcell Software Systems.
Requirements
7+ Java based backend services5+ Microarchitecture principles, Kubernetes and Docker based services5+ Messaging frameworks, SQL and non-sql data storage systems, data layers and efficient data query techniques3+ Distributed systems, specifically Akka actors3+ CI / CD environments, using tools (Jenkins, Argo Workflows, Github actions)2+ Constraint Solvers for Scheduling problems(i.e. IBM CPLEX or OR-Tools)2+ Working with 3rd party API’s. Adept at RESTFUL concepts. Good understanding of the HTTP / S protocol and standard conventions. Experience with api documentation tools (Swagger)