Company Description Siroi Solutions Sdn Bhd is a technology company focused on delivering IT solutions and services that balance cost, quality, and flexibility through a deep understanding of customers’ needs. The organization develops custom web and mobile applications, provides IT consulting, UX/UI design, integration and migration services, ERP and CRM implementation, data analytics, and cloud services. Siroi Solutions also builds innovative products that address everyday business and life challenges, with a strong emphasis on human relationships and compassion in its value system. The company aims to create a sustainable ecosystem that promotes personal and professional growth for all team members. Its clients include established organizations such as CSG International, Digistar Berhad, Zilzar Tech Sdn Bhd, and Parkson Berhad.
Role Summary
The Senior Software Developer is responsible for delivering good quality software while also
taking on broader responsibilities within the team. This includes understanding the overall
system, supporting team members, coordinating with other teams, and keeping superior
informed on matters that require attention. This role is for someone who is technically strong
and ready to take on more responsibility beyond just writing code.
Requirements
Technical Requirements (Mandatory)
- Strong hands-on experience in Java development, with a minimum of 4 years of
professional experience building and maintaining production systems.
- Proficient in Java 17 or above, including modern language features and the
standard library.
- Solid working experience with the Spring Framework / Spring Boot ecosystem,
including dependency injection, REST API development, and configuration
management.
- Good understanding of object-oriented design principles, design patterns, and clean
code practices as applied in Java.
- Experience with build and dependency management tools such as Maven or Gradle.
- Experience writing automated tests in Java using frameworks such as JUnit and
Mockito.
- Working knowledge of relational databases and data access in Java (JDBC, JPA/Hibernate), including the ability to read and optimise SQL queries.
- Familiarity with JVM fundamentals — memory management, garbage collection
behaviour, threading and concurrency — sufficient to diagnose and resolve
performance issues in production.
- Experience with version control (Git) and working within a branching and code review
workflow.
Technical Requirements (Advantageous)
- Experience with microservices architecture and inter-service communication
patterns.
- Exposure to containerisation and deployment tooling (Docker, Kubernetes, CI/CD
pipelines).
- Experience with messaging or streaming platforms (e.g. Kafka, RabbitMQ).
- Exposure to cloud platforms (AWS, Azure, or Google Cloud).
- Experience with monitoring and observability tooling for Java applications.
General Requirements
- Bachelor's degree in Computer Science, Software Engineering, Information
Technology, or a related field — or equivalent practical experience.
- Demonstrated experience mentoring or guiding junior and mid-level engineers.
- Strong communication skills, with the ability to explain technical matters clearly to
both technical and non-technical audiences.
- Ability to work independently, exercise sound judgment, and escalate appropriately
when required.
Key Responsibilities
Technical Development
- Design, develop, and maintain software solutions based on business and technical
requirements.
- Write clean, organised, and well-documented code that follows the team's coding
standards.
- Review code submitted by team members to ensure quality and consistency.
- Manage the code merging process to ensure the codebase remains stable and
conflicts are handled properly.
- Identify areas of technical debt within the system and propose practical plans to
address them over time.
- Review and maintain technical documentation to ensure it remains accurate and
up to date.
System Ownership
- Have a good understanding of the overall system, including parts not directly
developed by the engineer, so that decisions and discussions can be handled with
full context.
- Proactively identify areas of the system that are fragile or high risk and bring them
to the team's attention.
- Produce simple and clear technical designs to help the team and stakeholders
make better decisions.
Planning & Delivery
- Break down complex requirements into smaller and manageable tasks for the team
to execute.
- Flag any unclear or conflicting requirements early before development begins to
avoid rework.
- Identify and communicate scope changes as early as possible to allow for proper
planning.
- Provide effort and timeline estimates for tasks or features assigned to the team.
Team Support & Oversight
- Keep track of the team's development progress and spot potential blockers early,
before they affect delivery.
- Inform superior promptly when blockers or risks are identified, with enough context
for a decision to be made.
- Guide team members on good coding practices, design approaches, and
engineering standards.
- Provide constructive feedback to junior and mid-level engineers to support their
growth.
- Support the onboarding of new team members and help them get up to speed
effectively.
- Share knowledge through internal discussions, documentation, or simple
walkthroughs.
- Support a team culture where collaboration and knowledge sharing are part of the
daily norm.
Communication & Coordination
- Keep superior updated regularly on project status, issues, and anything significant.
- Coordinate with external teams on technical matters such as integrations,
dependencies, or shared deliverables.
- Explain technical issues in a clear and simple manner depending on the audience.
- Participate in requirement discussions and ask the right clarifying questions early
to ensure shared understanding.
- For urgent decisions or action plans, use good judgment to act while also keeping
superior in the loop to ensure alignment.
- Maintain a consistent communication habit with superior and relevant stakeholders to
ensure everyone has the right information at the right time.