Key Responsibilities
Backend Development and Architecture
- Design, develop, and maintain backend services and APIs using Go (Golang).
- Build scalable, distributed, and event-driven systems capable of handling thousands of transactions per second.
- Design service interfaces, data flows, and integration patterns that support independent deployment, horizontal scaling, and future growth.
- Apply sound software design principles, appropriate abstractions, and proven architectural patterns without introducing unnecessary complexity.
- Identify and resolve performance bottlenecks, concurrency issues, and resource constraints.
AWS Cloud Infrastructure and Dynamic Scaling
- Develop and deploy production services on AWS using appropriate computer, networking, storage, and managed service offerings.
- Implement horizontally scalable services that dynamically adjust capacity in response to changing traffic and processing demand.
- Deploy and operate containerized workloads using Kubernetes.
- Configure and optimize autoscaling, resource allocation, health checks, and service recovery.
- Apply infrastructure-as-code and automated deployment practices to ensure repeatable, consistent environments.
- Consider performance, availability, security, and cloud operating costs when making engineering decisions.
Event Processing and Data Management
- Build asynchronous, event-driven processing pipelines using Apache Kafka.
- Design reliable message producers and consumers, including appropriate handling of retries, duplicate messages, ordering, and processing failures.
- Design and optimize relational database schemas, SQL queries, indexes, transactions, and data migrations.
- Design, develop, and optimize NoSQL data models using Couchbase, ensuring efficient data access, high throughput, scalability, and performance in distributed systems.
- Understand data consistency, concurrency, transaction boundaries, and the trade-offs between relational and NoSQL storage.
- Ensure data integrity and resilience across distributed services.
Quality, Reliability, and Production Operations
- Write clean, maintainable, well-documented code supported by automated unit, integration, and appropriate end-to-end tests.
- Participate constructively in code reviews, design reviews, and technical discussions.
- Instrument services with meaningful logs, metrics, traces, dashboards, and actionable alerts.
- Troubleshoot production issues through systematic investigation and root-cause analysis.
- Design for failure, including dependency outages, traffic spikes, timeouts, partial failures, and message-processing errors.
- Participate in production support and incident response as appropriate for the team.
- Continuously improve service performance, reliability, security, and maintainability.
Engineering Collaboration and Ownership
- Translate business and product requirements into practical technical designs and deliverable work.
- Own assigned features and services from initial design through implementation, deployment, and ongoing operation.
- Communicate technical decisions, risks, dependencies, and trade-offs clearly.
- Collaborate with other engineers, product stakeholders, and infrastructure teams.
- Contribute to engineering standards and help improve development practices across the team.
Required Qualifications
- Minimum 3 years of professional software engineering experience building and operating production backend systems in an AWS or comparable cloud-native environment.
- Strong, hands-on proficiency in Go (Golang) for production backend development.
- Demonstrated experience designing, building, and operating services handling thousands of transactions per second, with the ability to explain how throughput and performance were measured.
- Practical experience implementing dynamic scaling and horizontal scaling for production workloads.
- Hands-on experience deploying and operating containerized applications using Kubernetes.
- Practical experience with Apache Kafka, including producers, consumers, topics, partitions, consumer groups, and failure handling.
- Hands-on experience with relational databases (RDBMS) and NoSQL databases, specifically Couchbase, including data modelling, querying, indexing, and performance optimization.
- Strong understanding of RESTful APIs, service integration, concurrency, and distributed systems fundamentals.
- Experience with automated testing, version control, code reviews, and CI/CD pipelines.
- Understanding of production monitoring, troubleshooting, performance optimization, and service reliability.
- Strong problem-solving skills, sound technical judgment, and the ability to work independently while collaborating effectively with a team.
Preferred Qualifications
- Experience with AWS services such as EKS, EC2, ECS, Lambda, S3, RDS, DynamoDB, SQS, or related services, as relevant to the architecture.
- Experience with Infrastructure as Code using Terraform, AWS CDK, or CloudFormation.
- Familiarity with Docker, Helm, Kubernetes autoscaling, and resource management.
- Experience with observability tools such as Prometheus, Grafana, OpenTelemetry, or CloudWatch.
- Understanding of distributed system reliability patterns, including idempotency, backpressure, circuit breakers, rate limiting, and graceful degradation.
- Experience with load testing, capacity planning, latency analysis, and performance profiling.
- Knowledge of cloud security fundamentals, including IAM, least-privilege access, secrets management, encryption, and secure API design.
- Experience optimizing cloud infrastructure for cost and operational efficiency.
Engineering Standards and Expectations
- Ownership: Take responsibility for delivering working software and maintaining its production health, not just completing assigned coding tasks.
- Technical depth: Understand why a solution works, its limitations, and how it behaves under load and failure.
- Quality by design: Treat automated testing, code review, security, and observability as standard parts of development.
- Evidence-based decisions: Use measurements, benchmarks, logs, and production data to validate assumptions and diagnose problems.
- Pragmatic architecture: Choose solutions that meet current requirements while allowing for sensible future growth; avoid both premature optimization and avoidable technical debt.
- Continuous improvement: Learn from incidents, feedback, code reviews, and new technologies, and turn those lessons into better engineering practices.
- Clear communication: Explain technical decisions and trade-offs in language appropriate for both technical and nontechnical stakeholders.
Education
- A bachelor’s degree in computer science, Software Engineering, or a related field is preferred. Equivalent professional experience and demonstrated technical ability are acceptable.
- Measures of Success
- Deliver reliable backend features that meet agreed requirements and delivery commitments.
- Build and maintain services that sustain target throughput and latency under representative workloads.
- Demonstrate effective scaling behavior as traffic and processing demand increase.
- Maintain appropriate automated test coverage and production observability.
- Diagnose and resolve issues efficiently, with lasting improvements following significant incidents.
- Produce readable, maintainable code and contribute positively to team engineering standards.
- Make sound technical decisions that balance delivery speed, reliability, maintainability, security, and cost.