Software Engineer
Job Summary
We are looking for an experienced Software Engineer to design, develop, and maintain scalable applications and services using C# and .NET.
The candidate should have solid experience with microservice architecture, REST APIs, software development, and CI/CD pipelines. Experience with cloud-based application deployment and container technologies is an advantage, but candidates with strong microservice and CI/CD experience are also encouraged to apply.
Key Responsibilities
Software Development
- Design, develop, test, and maintain applications using C# and .NET / .NET Core.
- Develop scalable, maintainable, and reusable backend services.
- Develop and maintain RESTful APIs and service integrations.
- Participate in code reviews, testing, troubleshooting, and performance optimization.
Microservice Architecture
- Design and develop applications based on microservice architecture.
- Develop independently deployable services with well-defined interfaces.
- Implement service-to-service communication and integration.
- Apply appropriate patterns for scalability, reliability, fault tolerance, and distributed systems.
- Work with databases, caching, messaging, and asynchronous processing where appropriate.
CI/CD & DevOps
- Develop and maintain CI/CD pipelines for automated build, testing, packaging, and deployment.
- Integrate automated unit and integration testing into development pipelines.
- Manage application versioning and release processes.
- Work with development and infrastructure teams to improve deployment automation and reliability.
Container & Cloud Deployment
- Develop applications suitable for containerized and cloud environments.
- Work with Docker and container-based deployment where applicable.
- Experience with AWS, ECS, EKS/Kubernetes, or other cloud platforms is an advantage.
- Collaborate with Cloud Engineers on application deployment, configuration, networking, and operational requirements.
Monitoring & Production Support
- Implement application logging, health checks, metrics, and tracing.
- Troubleshoot application and microservice issues in development and production environments.
- Participate in incident investigation and root-cause analysis.
- Work with monitoring and observability platforms such as CloudWatch, Prometheus, Grafana, OpenTelemetry, or ELK/OpenSearch.
Required Qualifications & Experience
- Degree or diploma in Computer Science, Software Engineering, Information Technology, or related discipline.
- 3+ years of professional experience in C# / .NET development.
- Strong understanding of object-oriented programming and software engineering principles.
- Hands-on experience with microservice architecture and RESTful APIs.
- Experience developing and maintaining CI/CD pipelines.
- Experience with relational databases such as SQL Server, PostgreSQL, or MySQL.
- Experience with Git and modern software development practices.
- Good understanding of software testing and debugging.
Preferred Skills
- Experience with .NET Core / modern .NET.
- Experience with Docker and containerized applications.
- Experience with messaging technologies such as RabbitMQ, Kafka, SQS, or SNS.
- Experience with Redis or other distributed caching technologies.
- Experience with Prometheus, Grafana, OpenTelemetry, CloudWatch, or ELK/OpenSearch.
- Understanding of API Gateway, load balancing, service discovery, and asynchronous communication.
- Experience with automated unit, integration, and API testing.
Key Competencies
- Strong C# and software engineering skills.
- Practical understanding of microservice and distributed-system architecture.
- Strong troubleshooting and problem-solving ability.
- Experience working with CI/CD and automated software delivery.
- Ability to understand application deployment and operational requirements.
- Good communication and collaboration skills.
- Ability to work independently and take ownership of assigned services.