What are the responsibilities and job description for the Java Developer position at Glow Networks?
We are seeking a highly skilled Senior Java Developer with in-depth knowledge of core Java, the Spring Framework, web services (SOAP/RESTful/GraphQL), and cloud technologies. The ideal candidate will have a strong background in Linux environments, SQL databases, and experience with tools like Cloud Foundry, AWS, and various monitoring, logging, and deployment systems. This role requires a developer who is not only proficient in software development but also has a solid understanding of infrastructure and DevOps principles.
Key Responsibilities:
- Design, develop, and implement robust Java-based web services (SOAP/REST/GraphQL) to support complex business requirements.
- Collaborate with cross-functional teams to ensure high availability, performance, and scalability of distributed systems.
- Utilize Cloud Foundry (PaaS), AWS, and various web service tools (SOAP UI, Postman, GraphiQL) for development, testing, and deployment.
- Develop and maintain CI/CD pipelines using tools like GoCICD, Jenkins, Gradle, and Maven.
- Write scripts (Unix Shell, CLI, Perl) for automation and orchestration tasks.
- Ensure application performance with tools such as App Dynamics, Grafana, Nagios, and Splunk, while troubleshooting and resolving issues in production environments.
- Utilize GitHub/SVN for version control, with expertise in managing source code repositories and branching strategies.
- Analyze business requirements and create comprehensive technical design documents that align with company architecture standards.
- Identify and resolve technical issues through debugging and research, contributing to the overall stability and performance of the system.
- Participate in full software lifecycle activities, including design, coding, testing, documentation, deployment, and maintenance.
- Perform unit and system testing of application code, ensuring high-quality releases.
- Understand and work with networking concepts, data centers, storage systems, and traffic routing.
- Handle production incidents and outages efficiently, ensuring minimal disruption to services.
- Contribute to the optimization of applications by estimating CPU/memory requirements and troubleshooting performance bottlenecks.
- Ensure the system is secure by adhering to best practices in authentication (OAuth 2.0), encryption (TLS/HTTPS), and certificate management.
Required Skills & Experience:
- Core Java Expertise: Strong in-depth knowledge of Java, including object-oriented design, multi-threading, and memory management.
- LDAP (Lightweight Directory Access Protocol): Exposure to LDAP for authentication and directory services.
- Spring Framework: Experience in designing and implementing scalable, maintainable, and efficient systems with Spring.
- Web Services: Proficiency with SOAP, RESTful APIs, and GraphQL for service integration and communication.
- Cloud Technologies: Hands-on experience with Cloud Foundry (PaaS) and AWS services (EC2, S3, RDS, Lambda, etc.).
- CI/CD & DevOps Tools: Knowledge of GoCICD, Jenkins, Gradle, Maven, and version control tools (GitHub/SVN).
- Monitoring & Logging Tools: Experience with App Dynamics, Grafana, Nagios, Splunk, Kibana, Logstash, and ElasticSearch.
- Database & Scripting: Strong experience with SQL databases and scripting languages such as Unix Shell, Perl, and CLI.
- Authentication & Security: Familiarity with OAuth 2.0, TLS, HTTPS, and certificate management.
- Infrastructure Knowledge: Understanding of network zones, data centers, storage systems, traffic routing (GSLB, HAProxy), and API Gateway configurations.
- Production Support & Troubleshooting: Proven track record in handling production incidents, debugging complex issues, and working with large-scale distributed systems.
- Experience: At least 5 years of professional software development experience in Java, with a focus on large-scale systems and production support.
Secondary Skills (Nice to Have):
- Performance Optimization: Experience in troubleshooting and optimizing system performance related to memory usage and CPU requirements.
- Cloud & Infrastructure Design: Ability to understand infrastructure architecture, including failover strategies and load balancing.
Education & Certifications:
- A Bachelor's or Masters degree in Computer Science, Engineering, or related field.
- Relevant certifications (e.g., AWS Certified Solutions Architect, Java certifications) are a plus.
Personal Attributes:
- Strong problem-solving and debugging skills.
- Ability to thrive in a fast-paced, high-pressure environment.
- Excellent communication skills with the ability to articulate complex technical concepts to both technical and non-technical stakeholders.
- Strong team player, with the ability to mentor junior developers and work collaboratively across teams.