Senior Java Software Engineer
Job Title: Senior Java Software Engineer Location: Taipei, Taiwan
Role Overview: The Senior Java Software Engineer is responsible for designing, developing, and maintaining scalable, high-performing, secure applications and efficient backend services and APIs.
This role involves deep expertise in Java technologies, ecosystem, cloud infrastructure, architectural decision-making, and collaboration with cross-functional teams to build robust systems that meet business and technical requirements. The ideal candidate combines technical excellence, complex technical problem-solving skills, and leadership abilities to contribute to the success of high-impact projects.
Key Responsibilities:
Backend Development and Maintenance: • Design, develop, and maintain server-side components, APIs, and microservices using Java and frameworks like Spring Boot or Jakarta EE. • Implement RESTful APIs, ensuring high performance and security. • Handle complex data transformation pipelines and middleware logic in API flows. • Manage API versioning, backward compatibility, and documentation using tools like Swagger (OpenAPI) and Postman. • Write clean, maintainable, and well-documented code. Architecture and Design: • Develop and implement scalable, distributed, and fault-tolerant architectures. • Perform system design and review to ensure alignment with business and technical goals. • Implement design patterns such as Domain-Driven Design (DDD), Event-Driven Architecture, and CQRS (Command Query Responsibility Segregation). Database Management: • Design normalized relational schemas with databases like PostgreSQL, MySQL, or H2. • Optimize database queries and indexes for performance, leveraging profiling tools. • Use NoSQL databases like MongoDB, Cassandra, or Couchbase for flexible, high-speed data storage. • Design data pipelines and ETL processes for real-time and batch data ingestion. • Implement data access layers with ORMs like Hibernate or JPA. Performance Optimization: • Identify and resolve performance bottlenecks in the backend systems. • Implement caching solutions using Redis, Memcached, or similar technologies. • Use tools like JProfiler, YourKit, or VisualVM to analyze and optimize application performance. Security and Compliance: • Implement secure authentication and authorization mechanisms (e.g., OAuth2, JWT, SAML). • Ensure backend systems are secure from common vulnerabilities (e.g., OWASP Top 10). • Perform regular security reviews, including penetration testing and dependency audits and fix vulnerabilities. Testing and Quality Assurance: • Write and maintain unit tests, integration tests, and end-to-end tests using JUnit, Mockito, or TestNG. • Collaborate with QA engineers to ensure comprehensive test coverage. • Integrate automated testing into CI/CD pipelines. Cloud and DevOps Integration: • Deploy and monitor services on cloud platforms like AWS, Azure, or Google Cloud. • Use containerization tools like Docker and orchestration platforms like Kubernetes. • Implement CI/CD pipelines using Jenkins, GitHub Actions, or GitLab CI. Team Collaboration and Leadership: • Collaborate with frontend developers to ensure seamless API integration. • Act as a technical point of contact for cross-functional teams. Monitoring and Incident Management: • Set up monitoring and logging tools like Prometheus, Grafana, ELK Stack, or Splunk. • Manage incidents and perform root cause analysis to resolve production issues. • Implement strategies for high availability and disaster recovery.