Software Engineer / Developer
The posting does not state a salary. This range is our estimate from the role, the location and the stack — treat it as a guide, not an offer.
- Level
- Mid
About the role
- Design and develop scalable software solutions.
- Collaborate with cross-functional teams for project success.
- Write clean, efficient, and well-documented code.
- Participate in Agile ceremonies and code reviews.
- Monitor application performance and optimize systems.
Skills the posting asks for
- JavaScript
- TypeScript
- APIs
- Git
- PostgreSQL
Summarised from the employer’s posting, which is reproduced in full below.
The employer’s full posting
Position Overview
The Software Engineer / Developer is responsible for designing, developing, testing, deploying, and maintaining reliable software applications and systems that meet business and user requirements. The role translates functional requirements and technical specifications into scalable software solutions while maintaining high standards of performance, security, quality, and maintainability.
The position works throughout the software development lifecycle (SDLC), collaborating with Product Managers, Business Analysts, UI/UX Designers, QA Engineers, DevOps teams, and other stakeholders. Responsibilities may cover application development, backend and frontend services, APIs, databases, integrations, debugging, performance optimization, deployment support, and continuous improvement.
Key Responsibilities
Analyze business, functional, and technical requirements and translate them into practical software solutions.
Design, develop, test, and maintain software applications, services, modules, and system components.
Write clean, efficient, scalable, maintainable, and well-documented code using appropriate programming languages and development frameworks.
Participate in system architecture and technical design activities, considering scalability, performance, reliability, security, and maintainability.
Develop new features and functionality based on product requirements, user stories, technical specifications, and business priorities.
Modify and enhance existing applications to support new requirements, technologies, integrations, and business processes.
Develop and maintain frontend, backend, web, mobile, desktop, or enterprise applications according to project requirements.
Design, develop, and integrate APIs and services to enable communication between applications and external systems.
Work with relational and non-relational databases to design queries, data structures, integrations, and application data workflows.
Implement appropriate error handling, validation, logging, authentication, authorization, and security controls.
Conduct code reviews and provide constructive technical feedback to improve code quality and development standards.
Use version control systems such as Git to manage source code, branches, merges, releases, and collaborative development.
Write and maintain unit tests, integration tests, and other automated tests where appropriate.
Work closely with QA teams to investigate defects, reproduce issues, identify root causes, and implement reliable fixes.
Debug software problems and resolve performance, functionality, compatibility, and production issues efficiently.
Monitor application performance and identify opportunities for optimization, scalability, reliability, and resource efficiency.
Support software deployment, release activities, configuration management, and production implementation.
Collaborate with DevOps or infrastructure teams on CI/CD pipelines, deployment processes, environments, monitoring, and release automation where applicable.
Maintain technical documentation covering system architecture, APIs, development processes, configurations, and application functionality.
Participate in Agile ceremonies including sprint planning, daily stand-ups, backlog refinement, sprint reviews, and retrospectives where applicable.
Estimate development tasks, communicate technical dependencies, and provide realistic delivery updates.
Investigate emerging technologies, frameworks, libraries, and development practices that may improve product capabilities or engineering efficiency.
Ensure software solutions comply with relevant technical standards, coding guidelines, security requirements, and organizational policies.
Support application upgrades, patches, migrations, integrations, and technology modernization initiatives.
Monitor production systems and respond to incidents, service issues, and technical problems when required.
Analyze recurring issues and implement preventive solutions to improve system stability and reliability.
Collaborate with stakeholders to clarify requirements, assess technical feasibility, identify risks, and recommend appropriate solutions.
Participate in technical discussions and contribute to decisions regarding application architecture, development approaches, tools, and technologies.
Maintain awareness of current software engineering practices, security considerations, development frameworks, and technology trends.
Software Development & Technical Responsibilities
Translate approved requirements into technical designs, development tasks, and working software.
Develop reusable and modular software components that can be maintained and extended efficiently.
Apply appropriate software engineering principles, design patterns, coding standards, and development practices.
Build and maintain APIs, integrations, services, database connections, and application components.
Optimize application performance by analyzing code, database queries, system resources, and application behavior.
Identify technical risks and communicate potential limitations, dependencies, or implementation challenges to relevant stakeholders.
Participate in architectural discussions and recommend solutions that balance functionality, performance, security, scalability, development effort, and long-term maintenance.
Ensure technical solutions remain aligned with business requirements and the broader technology environment.
Testing, Deployment & Maintenance Responsibilities
Perform functional, unit, integration, regression, and performance testing as appropriate to the development environment.
Identify, document, troubleshoot, and resolve software defects throughout development and after release.
Work with QA and business stakeholders to support user acceptance testing and release readiness.
Prepare software builds and support deployment activities across development, testing, staging, and production environments.
Monitor released applications and investigate production issues using logs, monitoring tools, diagnostics, and other technical resources.
Apply patches, updates, bug fixes, security improvements, and feature enhancements to existing applications.
Support continuous improvement of development, testing, deployment, and maintenance processes.
Maintain accurate technical documentation to support system continuity, troubleshooting, onboarding, and future development.
Cross-Functional Collaboration
Work closely with Product Managers, Business Analysts, designers, QA engineers, DevOps specialists, database administrators, and other technical teams.
Participate in requirement discussions and provide technical input regarding feasibility, effort, dependencies, and implementation approaches.
Communicate development progress, technical issues, risks, and delivery timelines clearly to project stakeholders.
Support knowledge sharing, technical discussions, code reviews, and mentoring within the development team.
Contribute to a collaborative engineering culture focused on quality, accountability, continuous learning, and reliable software delivery.
Requirements
Bachelor's Degree in Computer Science, Software Engineering, Information Technology, Computer Engineering, or a related technical discipline.
Proven experience in software development, application development, systems development, or a related engineering role.
Strong proficiency in one or more programming languages such as Java, C#, Python, JavaScript/TypeScript, C++, PHP, Go, or similar technologies.
Experience with modern development frameworks, libraries, APIs, databases, and software development tools.
Strong understanding of software development principles, object-oriented programming, data structures, algorithms, and system design.
Experience with relational databases such as MySQL, PostgreSQL, SQL Server, or Oracle; NoSQL experience is an advantage.
Experience with Git or other version control systems and collaborative development workflows.
Understanding of software testing, debugging, code review, deployment, and application maintenance.
Familiarity with REST APIs, web services, authentication, system integrations, and distributed application concepts.
Knowledge of cloud platforms, containers, CI/CD, DevOps practices, or infrastructure technologies is an advantage.
Strong analytical and problem-solving skills with the ability to investigate complex technical issues.
Good understanding of software security, data protection, application performance, and secure coding practices.
Strong communication and teamwork skills with the ability to collaborate with both technical and non-technical stakeholders.
Ability to manage multiple development tasks, prioritize issues, meet deadlines, and adapt to changing requirements.
Strong attention to detail and commitment to producing reliable, maintainable, and high-quality software.
Experience working in Agile, Scrum, Kanban, or other structured software development environments is preferred.
- Strong willingness to learn new technologies and continuously improve technical knowledge and development practices.