The Senior Full Stack Engineer is an experienced individual contributor who owns the design and implementation of features end-to-end across the full stack. This is a deep technical role built around producing high-quality, well-designed software, with a strong emphasis on sole ownership from outline design through to delivery. The Senior Full Stack Engineer works closely with Technical Leads to ensure their designs and implementation align with department-wide engineering standards and practices, but they own the day-to-day decisions on their own work. Tech stack: Java and Angular based, running on AWS with MySQL databases. Familiarity with similar modern technologies and languages (equivalent back-end frameworks, front-end frameworks, cloud platforms, and relational databases) is valued alongside direct experience with this stack. This is a role for someone who wants to go deep on the craft of software engineering. This role will have limited people or delivery management responsibility. KEY RESPONSIBILITIES DESIGN & IMPLEMENTATION - Produce outline designs for features and technical work, covering both front-end and back-end considerations, and see them through to implementation. - Take full ownership of technical work from design through to delivery, including testing and deployment. - Take on complex or ambiguous full-stack work, making sound design trade-offs across the stack (UI, API, data, infrastructure). - Apply strong code generation practices: understanding where and how generated code (scaffolding, boilerplate, AI-assisted code generation from schemas/specs) fits appropriately into the codebase, and ensuring generated code is reviewed and maintained to the same standard as hand-written code. FULL STACK ENGINEERING - Work confidently across the stack: Java-based back-end services, Angular front-end applications, AWS infrastructure, and MySQL databases. - Write high-quality, well-tested, well-documented code across all layers of the stack. - Consider performance, security, and maintainability across the full path from database to UI. TESTING & QUALITY - Build and maintain automated code testing across the stack (unit, integration, and end-to-end as appropriate). - Performance and load testing knowledge is advantageous, and welcomed where it can be applied to harden critical paths. WORKING WITH TECHNICAL LEADS - Partner with Technical Leads to ensure designs and implementation follow good practice and align with department engineering standards (branching model, code review, testing strategy, documentation). - Seek review and input from Technical Leads on designs, particularly where decisions have cross-team or long-lasting impact. - Raise technical risks and trade-offs early and clearly, proposing options rather than just flagging problems. CODE REVIEW - Participate fully in the code review process, both giving and receiving reviews. - Provide thorough, constructive reviews that uphold department standards. PEER MENTORSHIP - Offer informal technical guidance and support to peers where appropriate: sharing knowledge and helping unblock others. - Lead by example in code quality, testing, and documentation practices. DELIVERY CONTRIBUTION - Provide accurate technical input into estimation and backlog refinement for their own work. - Communicate progress, blockers, and risks proactively. WAYS OF WORKING - Own your work end-to-end. From outline design through to implementation, testing, and delivery. You are accountable for the full lifecycle of what you build. - Full stack means full stack. Be genuinely comfortable moving between Angular front end, Java services, AWS infrastructure, and MySQL data layers. - Lean on Technical Leads, don't defer to them. They're a sounding board for good practice and harder design decisions, not a gate you need permission from for everyday work. - Use code generation deliberately. Understand when generated or AI-assisted code speeds you up safely, and when it introduces risk that needs closer review. - Test what you build. Automated testing isn't an afterthought: it's part of what "done" means, and performance under load is worth thinking about for anything on a critical path. - Raise issues early. A technical risk surfaced early is manageable; the same risk surfaced late is a crisis.