Nava is a consultancy and public benefit corporation working to make government services simple and effective. The Software Engineer will work on small teams to build scalable applications for government, focusing on JavaScript and Node.js to modernize legacy systems and improve user experiences.
Responsibilities:
- Work with fellow Nava engineers to design, review, and build well-crafted software
- Collaborate with government partners and other contractors to architect, implement, and deploy new systems and improvements to existing systems
- Work in an agile manner to efficiently ship new features that meet user needs
- Create tools and processes to automate our development, testing, and production workflows
- Write and review technical documentation, perform code reviews
- Participate in an on-call rotation to support production systems and investigate issues when they occur
- Take part in hiring activities (e.g., submitting referrals, conducting interviews, and attending interview debriefs), as needed
Requirements:
- JavaScript, Node.js, NPM
- At least 4 years of experience of full-stack engineering contributing development initiatives, in a fast paced, dynamic environment in a self directed manner, that required minimal supervision
- Meaningful experience working on web-based systems, both front-end and back-end
- Experience working on large-scale applications and systems
- An adaptive, empathetic, collaborative and positive mindset
- Ability to think holistically around engineering issues
- Knowledge of engineering fundamentals and architecture
- Expertise developing well-crafted software
- Excellent written and verbal communication skills, technical and otherwise
- Experience with modern web development frameworks
- Experience designing and implementing application architectures and code that is highly scalable, available, and performant
- Self-directed, requiring minimal supervision
- Ability to work with others on a team
- Previous experience as a software engineer
- Aptitude for giving and receiving feedback
- Experience with testing, specifically automated testing
- Knowing code quality tools such as Linter
- Experience with system design such as designing systems that will be sustainable with high usage, designing a front end and back end that talk to each other
- Containerization
- API Testing - Postman or Insomnia
- Relational DB experience