Preferred Tech Stack

APIs#

  • .NET Core 3.1 (C#)
  • AWS Lambda
  • Serverless framework
  • AWS API Gateway
  • Hackney Lambda authorizer (for authentication)
  • FxCop for static code analysis
  • dotnet-format for linting
  • AWS Canaries for availability monitoring

Testing#

  • nUnit
  • FluentAssertions
  • Moq
  • Bogus (Faker) for faking test data
  • AutoFixture
  • WebApplicationFactory (Microsoft.AspNetCore.Mvc.Testing)
    • For bootstrapping the application (API) in memory and run end-to-end tests
  • Docker & docker-compose
    • For spinning up DB image containers and running tests against that database
    • During local development and during test run as part of CI/CD

For more guidance on testing, go to the testing section

Common#

  • Swagger documentation
    • For API design prior to implementation
    • Automated Swagger docs for each API endpoint deployed
    • See more
  • CircleCI for CI/CD
  • GitHub for version control
  • AWS for cloud hosting
  • AWS CloudWatch for monitoring
  • Terraform for Infrastructure as Code (IaC) (e.g. setting up AWS DMS)
  • AWS Parameter Store for secrets (connection string and similar)