Software Enginer
SMG Trading & Contracting
The Role
The Software Engineer is responsible for designing, developing, testing, and maintaining software applications that support business operations and digital services. This role involves analyzing technical requirements, developing reliable software solutions, improving application performance, and ensuring that systems meet functional, security, and quality standards. The engineer collaborates with relevant teams to transform business needs into practical technology solutions and support continuous software improvement.
Key Responsibilities
- Designing application structures.
- Writing clean and maintainable code.
- Developing software features.
- Integrating applications with databases, APIs, and other systems.
- Evaluating technical requirements and selecting appropriate development approaches.
- Following established coding standards and software development practices.
- Reviewing existing code.
- Improving application functionality.
- Resolving technical issues.
- Ensuring software components operate efficiently across supported environments.
- Preparing test cases.
- Validating software functionality.
- Identifying defects.
- Verifying that applications meet specified requirements.
- Conducting debugging activities.
- Investigating system errors and implementing appropriate fixes to improve reliability and performance.
- Participating in code reviews.
- Documenting test results.
- Supporting user acceptance testing.
- Maintaining technical documentation.
- Ensuring software solutions follow established security guidelines and quality control procedures.
- Monitoring application performance.
- Troubleshooting production issues.
- Applying updates.
- Supporting software releases.
- Assisting with database integration, version control, deployment procedures, and system configuration.
- Improving processing efficiency.
- Maintaining application compatibility.
- Supporting data integrity.
- Identifying opportunities to automate repetitive tasks.
- Contributing to technical planning.
- Evaluating implementation options.
- Communicating development progress.
- Maintaining clear records of software changes.
Requirements & Tech Stack
- Understanding of software development principles, programming concepts, algorithms, and data structures.
- Knowledge of one or more programming languages, such as Python, Java, JavaScript, C#, C++, or similar technologies.
- Familiarity with web application development, software architecture, databases, APIs, and system integration.
- Understanding of software testing, debugging, code review, and quality assurance practices.
- Familiarity with version control systems, such as Git, and collaborative software development workflows.
- Knowledge of database management, SQL, data structures, and basic data security principles.
- Understanding of application performance, scalability, maintainability, and secure coding practices.
- Strong analytical and problem-solving abilities, with a systematic approach to troubleshooting technical issues.
- Excellent attention to detail when writing code, testing functionality, and maintaining technical documentation.
- Ability to communicate technical information clearly and collaborate effectively with cross-functional teams.
- Strong organizational skills and the ability to prioritize tasks according to project requirements.
- Ability to interpret technical specifications and translate requirements into practical software solutions.
- Willingness to learn new programming languages, development frameworks, and emerging technologies.
- Commitment to code quality, information security, continuous learning, and ongoing software improvement.
Qualifications
- Diploma or degree in Software Engineering, Computer Science, Information Technology, or a related technical field.






