Senior Software Engineer

Bonterra
$100,000 - $125,000

About The Position

Join a mission-driven engineering team that’s passionate about helping nonprofits drive real-world impact. As a Senior Software Engineer, you’ll have the opportunity to build meaningful software, leverage cutting-edge tools including AI, and work alongside a collaborative team that values creativity, autonomy, and continuous growth.

Requirements

  • 5+ years of full-stack software development experience, including work on production systems.
  • Strong experience with Go for backend development, including building RESTful APIs and microservices.
  • Proficiency with Angular (preferably Angular 15+) and TypeScript for frontend development.
  • Solid understanding of microservices architecture, including service discovery, inter-service communication, and distributed system patterns.
  • Experience with REST API design and OpenAPI/Swagger specifications.
  • Experience with MySQL in production environments, including schema design and query optimization.
  • Hands-on experience with containerization (Docker) and orchestration (Kubernetes/Helm).
  • Familiarity with CI/CD pipelines and modern deployment practices in Kubernetes environments.
  • Experience with comprehensive testing frameworks (unit, integration, and e2e testing).
  • Comfortable working in AWS or similar cloud environments.
  • Strong problem-solving skills and ability to evaluate tradeoffs and make thoughtful implementation decisions that affect multiple services in a distributed system context.
  • Enthusiastic about learning and leveraging AI tools to improve development efficiency and product capabilities.

Nice To Haves

  • Bachelor’s degree in Computer Science or equivalent experience.
  • Experience working in large-scale microservices environments (50+ services).
  • Track record of driving technical initiatives or improvements across teams.
  • Experience mentoring junior and mid-level engineers and helping them grow their skills.
  • Experience with system design and making technical decisions in complex distributed environments.
  • Ability to evaluate and introduce new technologies, patterns, and tools to improve the development stack.
  • Familiarity with Ginkgo testing framework for Go or Jest/Cypress for Angular applications.
  • Experience with code generation tools and build automation (Mage or similar tools).
  • Knowledge of Helm chart development and Kubernetes deployment strategies.
  • Understanding of JWT-based authentication and role-based authorization systems.
  • Familiarity with nonprofit or social good technology challenges is a bonus.

Responsibilities

  • Design, build, and maintain reliable microservices within a large-scale distributed architecture using Go for backend APIs and Angular for frontend applications.
  • Develop and maintain RESTful APIs with OpenAPI/Swagger specifications, ensuring robust service-to-service communication and integration.
  • Build scalable Angular UI applications and contribute to shared component libraries that support high-quality, consistent user experiences across the platform.
  • Work within a microservices ecosystem where each service is independently deployable, using Kubernetes/Helm for orchestration and deployment.
  • Implement comprehensive testing strategies using Ginkgo for Go services (unit, integration, smoke tests) and Jest/Cypress for Angular applications.
  • Take ownership of complex technical challenges across the full stack, making architectural decisions that span multiple microservices, and contribute to the full software lifecycle — from sprint planning and ticket refinement to implementation, peer reviews, and demos.
  • Drive technical initiatives and influence technical direction across the platform, evaluating tradeoffs and introducing improvements that benefit multiple teams.
  • Use AI as a force multiplier. Experiment with LLMs, agentic tools, and AI-integrated features to accelerate development, streamline workflows, and create smarter user experiences.
  • Embrace change as a catalyst for continuous improvement and team efficiency.
  • Work closely with product managers, designers, QA engineers, and other developers to build intuitive features that meet user needs and align with our mission.
  • Lead and mentor junior and mid-level engineers through thoughtful code reviews, knowledge sharing, and technical guidance. Model best practices and contribute to a collaborative, inclusive engineering culture.
© 2024 Teal Labs, Inc
Privacy PolicyTerms of Service