Egnyte
Java Backend Engineer
Egnyte is looking for a talented Java backend engineer to join its core Infrastructure team. This team is solving high scale, complex challenges inherent to a widely deployed system that serves over 20K customers that rely on Egnyte to house and serve their data in real time. By joining our core infrastructure team, you'd be able to collaborate with a global, highly senior team, while being able to contribute to a wide range of components and technical challenges: from powering AI systems to enabling high throughput for customers managing Petabytes of data. What You'll Do:
Develop and enhance core services: Design, implement, and maintain robust and scalable Java-based services, contributing to both existing systems and new greenfield projects. Collaborate across teams: Work closely with cross-functional teams, including product managers, QA engineers, and other developers, to gather requirements, define solutions, and ensure successful delivery of features. Contribute to system design: Participate in technical discussions and contribute to the architectural design of our distributed systems, focusing on performance, reliability, and security. Implement cloud-native solutions: Develop and deploy applications leveraging cloud platforms such as Google Cloud Platform (GCP) and Microsoft Azure, utilizing relevant services and best practices. Ensure code quality and best practices: Write clean, maintainable, and well-tested code (using frameworks like JUnit), participate in code reviews, and contribute to continuous improvement of development processes. Troubleshoot and optimize: Diagnose and resolve complex technical issues, perform root-cause analysis, and optimize application performance and scalability, particularly for multi-threaded environments. Your Qualifications:
Software engineering experience: Experience with the software development lifecycle, from implementation and testing to deployment and operational support, ideally in server-side or cloud-based applications. Proficiency in Java ecosystem: Hands-on experience developing applications using Java, Spring Framework (Spring Boot), and related technologies like Tomcat. Database familiarity: Familiarity with relational databases and SQL. Experience with MySQL (or PostgreSQL), including basic schema interaction and querying, is a plus. Distributed systems exposure: Exposure to multi-service architectures and concepts such as asynchronicity, fault-tolerance, and resiliency is a plus. Cloud platform exposure: Some experience with or exposure to cloud platforms, specifically Google Cloud Platform (GCP) and/or Microsoft Azure, is desired. Experience with messaging brokers (e.g., Google Pub/Sub, Azure Event Hub) and key-value stores (e.g., Redis) is also a plus. Problem-solving skills: Good debugging skills for applications, including multi-threaded environments, and an ability to identify and resolve technical issues. Collaborative mindset: A team player with strong communication skills, eager to collaborate with peers, product owners, and other stakeholders in an agile, fast-paced environment. Results-oriented: A pragmatic approach to development, focused on delivering high-quality solutions that address real business needs.
Egnyte is looking for a talented Java backend engineer to join its core Infrastructure team. This team is solving high scale, complex challenges inherent to a widely deployed system that serves over 20K customers that rely on Egnyte to house and serve their data in real time. By joining our core infrastructure team, you'd be able to collaborate with a global, highly senior team, while being able to contribute to a wide range of components and technical challenges: from powering AI systems to enabling high throughput for customers managing Petabytes of data. What You'll Do:
Develop and enhance core services: Design, implement, and maintain robust and scalable Java-based services, contributing to both existing systems and new greenfield projects. Collaborate across teams: Work closely with cross-functional teams, including product managers, QA engineers, and other developers, to gather requirements, define solutions, and ensure successful delivery of features. Contribute to system design: Participate in technical discussions and contribute to the architectural design of our distributed systems, focusing on performance, reliability, and security. Implement cloud-native solutions: Develop and deploy applications leveraging cloud platforms such as Google Cloud Platform (GCP) and Microsoft Azure, utilizing relevant services and best practices. Ensure code quality and best practices: Write clean, maintainable, and well-tested code (using frameworks like JUnit), participate in code reviews, and contribute to continuous improvement of development processes. Troubleshoot and optimize: Diagnose and resolve complex technical issues, perform root-cause analysis, and optimize application performance and scalability, particularly for multi-threaded environments. Your Qualifications:
Software engineering experience: Experience with the software development lifecycle, from implementation and testing to deployment and operational support, ideally in server-side or cloud-based applications. Proficiency in Java ecosystem: Hands-on experience developing applications using Java, Spring Framework (Spring Boot), and related technologies like Tomcat. Database familiarity: Familiarity with relational databases and SQL. Experience with MySQL (or PostgreSQL), including basic schema interaction and querying, is a plus. Distributed systems exposure: Exposure to multi-service architectures and concepts such as asynchronicity, fault-tolerance, and resiliency is a plus. Cloud platform exposure: Some experience with or exposure to cloud platforms, specifically Google Cloud Platform (GCP) and/or Microsoft Azure, is desired. Experience with messaging brokers (e.g., Google Pub/Sub, Azure Event Hub) and key-value stores (e.g., Redis) is also a plus. Problem-solving skills: Good debugging skills for applications, including multi-threaded environments, and an ability to identify and resolve technical issues. Collaborative mindset: A team player with strong communication skills, eager to collaborate with peers, product owners, and other stakeholders in an agile, fast-paced environment. Results-oriented: A pragmatic approach to development, focused on delivering high-quality solutions that address real business needs.