Job Title: Senior Software Engineer
Required Qualifications: Have at least a Bachelor degree in Computer Science, Software Engineering, or a related field.
Job Description:
Apollo Queensland Pty Ltd, a leading software development company based in Queensland, Australia, is seeking a highly skilled Senior Software Engineer to join our dynamic team. Our company specializes in developing commercial public systems and providing comprehensive customer maintenance services, addressing various client issues.
The successful candidate will have demonstrated at least 5 years of experience in full-stack software development with a strong emphasis on cloud services and DevOps practices. This role demands a highly skilled individual who can solve complex bugs and architect robust back-end infrastructure that supports and enhances the front-end functionalities of our products.
Required Experience:
• Minimum of 5 years of experience in software development, particularly in developing and maintaining complex database systems.
• Proven experience in using MySQL and SQL databases.
• Strong background in developing enterprise-level software solutions.
• Experience in troubleshooting and optimizing high-traffic systems.
• Experience with electronic information systems and integrating software with hardware components.
• Experience in developing and maintaining supply chain management systems and customer relationship management systems.
Required Skills:
- Proficiency in Java and Spring frameworks.
- Experience with Oracle, MySQL, and SQL Server databases.
- Strong understanding of database performance optimization and troubleshooting.
- Expertise in data synchronization and consistency.
- Experience with EIP (Enterprise Information Portal) systems or similar.
- Ability to handle high data volumes and ensure system scalability and reliability.
- Excellent problem-solving skills and ability to address unexpected issues.
- Ability to understand and communicate in Chinese is highly preferred, but not compulsory.
- Familiarity with Spring Boot, Spring MVC, Hibernate, and MyBatis frameworks.
- Strong analytical and critical thinking skills.
- Excellent teamwork and communication skills.
- Experience with cloud platforms such as AWS, Azure, or Google Cloud.
- Knowledge of cybersecurity best practices and experience in implementing security measures.
- Experience with agile development methodologies and tools like JIRA or Trello.
- Proficiency in DevOps practices and tools such as Docker, Kubernetes, and Jenkins.
Proposed tasks:
Develop, Maintain, and Optimize Software Systems:
- Develop, maintain, and optimize the company's software systems, including supply chain management and customer service platform modules.
- Write and maintain program code to meet system requirements, system designs, and technical specifications in accordance with quality accredited standards.
- Maintain and enhance the quality of the entire codebase, adhering to industry best practices and coding standards.
System Analysis and Evaluation:
- Research, consult, analyze, and evaluate system program needs to determine the best technological solutions for business challenges.
- Identify technology limitations and deficiencies in existing systems and associated processes, procedures, and methods.
Testing and Debugging:
- Test, debug, diagnose, and correct errors and faults in applications programming languages within established testing protocols, guidelines, and quality standards to ensure programs and applications, including technical security controls, perform to specification.
- Solve complex bugs and issues across the full stack, with a focus on creating robust and scalable back-end solutions that support dynamic front-end functionalities.
Data Management and Performance Optimization:
- Improve and maintain database performance, ensuring efficient query execution and data consistency.
- Design and implement data synchronization solutions to ensure data integrity across multiple platforms.
Documentation and Operational Procedures:
- Write, update, and maintain technical program documentation, end-user documentation, and operational procedures to ensure clear guidelines and processes.
- Provide advice, guidance, and expertise in developing proposals and strategies for software design activities such as financial evaluation and costings for recommending software purchases and upgrades.
Security and Risk Management:
- Implement security measures and manage user access control to protect sensitive data.
- Perform forensic analysis to identify anomalies or threats and implement encryption and decryption techniques to safeguard data.
- Identify and mitigate risks that may affect the performance and security throughout the lifecycle of the product.
Collaboration and Knowledge Sharing:
- Collaborate with team members to solve technical challenges and share knowledge.
- Conduct regular code reviews and provide mentorship to junior developers, fostering a culture of continuous learning and improvement.
- Collaborate closely with UI/UX designers and front-end developers to ensure seamless integration and consistent performance across all layers of the application.
System and Software Deployment:
- Manage testing and automation of software and application deployments to ensure smooth and efficient rollouts.
- Develop continuous improvement and continuous delivery strategies across system design and software development.
- Implement and manage cloud-based environments, ensuring high availability, security, and scalability.
- Automate workflows and processes using modern DevOps tools and practices, enhancing the efficiency and reliability of deployment and operations.
Project Involvement:
- Support the development of agricultural product trading database software.
- Assist in developing a database for a new energy company’s ordering, logistics, and customer relationship management.
- Design, develop, test, and implement critical infrastructure, features, and user interfaces across the full stack of our applications.
- Take on coding tasks as required by the team or specific project tickets, demonstrating flexibility and a collaborative approach.
Operational Metrics and Improvement:
- Collect and analyze operational metrics to monitor system performance and identify areas for improvement.
- Develop and implement tools required to support software management, performance monitoring, and security.
- Stay updated with the latest trends and technologies across full-stack development to continuously improve the product.