Full Stack Software Engineer - #1602
Job Description
Key responsibilities Maintain and support the portfolio: Keep All Ears and the supporting products stable through bug fixes, security patches, infrastructure upkeep, L2 and L3 support, and monitoring. Ship full stack changes: Build and update frontend and backend features across multiple codebases and languages. Support migrations: Complete the All Ears v2 migration and retire the legacy codebase, and adapt products for planned work such as the TCI and Connectogram migrations to Teachers Workspace. Keep it maintainable: Keep runbooks, technical notes, and handover material current so the products stay maintainable and transferable. Collaborate across teams: Work with GovTech engineers, product staff, and MOE stakeholders to align on priorities and delivery. What we are looking for Experience: Minimum 4–7 years of hands-on full stack software engineering. Languages and frameworks: Proficiency with a modern JavaScript or TypeScript framework (React), backend APIs and services, and relational databases (PostgreSQL). Comfort working across more than one language and codebase. Cloud and infrastructure: Working knowledge of cloud-hosted applications, containerised deployments (Docker), and CI/CD pipelines. Observability and troubleshooting: Analyse logs and metrics using AWS tools such as ECS and CloudWatch, and OpenTelemetry for tracing, metrics, and logs. Version control and code review: Proficiency with Git and quality gates. Software lifecycle: Solid understanding of the software development lifecycle and Agile delivery on product-centric teams. Security-aware: Attention to secure coding practices and awareness of government security and compliance requirements. Nice to have: Government domain: Familiarity with government or public-sector delivery contexts. Personal attributes: Self-directed: A driven, resourceful engineer who can pick up unfamiliar codebases quickly. Pragmatic: Balances speed and quality, and makes sensible tradeoffs in a maintenance context. Comfortable with ambiguity: Navigates shifting priorities as products transition, sunset, or transfer. Collaborative: Builds good working relationships with stakeholders, teammates, and vendors. Ownership: Takes responsibility for the stability and quality of the products in their care.