Tools and Services we use as a SaaS company — AWS + Python

Dheeraj Inampudi
CodeX
Published in
4 min readMar 16, 2022

--

I worked as an associate engineer, product manager, data scientist, and AWS Solution Architect in different startups, both product development and consulting, before becoming the CTO of propellor.ai.

I’ve compiled a collection of GitHub repositories, documentation, best practises, websites, and tools that have assisted us in our efforts to expand, Fastrack, and be productive. I’m still young and learning, and I’d like to share what I’ve learned with others who could benefit from these technologies and tools. Always remember the AWS quote

There is no compression algorithm for experience

The following sections make up the entire blog:

  1. Development stack
  2. Testing Tools
  3. Observability Tools
  4. best practices and standards
  5. Productivity Tools
  6. Beyond the scope

Development Stack (DevOps Setup)

It’s your job as a leader to establish the technology stack and make incremental adjustments, but not reworking. Before making any of these decisions, make sure you understand your challenge, talk to the business, understand your team’s existing competencies, time to market, and application roadmap.

The idea is to not go too big or too small. You must strike the proper balance. Take the time to read blogs, speak with experts, contact AWS for assistance, and so on.

Frontend:

> The frontend framework we use is Angular. (React may or may not be superior, but keep in mind that the framework you choose should be based on the skills your team already possesses, not on the best tool available.) Never choose a tool because some YouTube internet expert says you’re stupid for using blah… blah…

> We use Ng Ant as our design framework.

> echarts for building charts

Middleware:

As a startup, your budget and resources are limited. Each department cannot have tens of SMEs. As a result, to get things done, you should rely on as many managed services as feasible. Infrastructure companies such as Amazon Web Services, Google Cloud Platform, and Microsoft Azure manage infrastructure services for you, allowing you to focus just on business logic. We chose serverless on AWS to manage all of our workloads in our situation.

Serverless offers three main functionalities:

  1. It takes care of infrastructure availability, so you can concentrate on writing code (i.e. business logic)
  2. It handles infrastructure scalability, so you don’t have to worry about load balancing or provisioning servers for your application.
  3. It is cost-effective, as you ONLY pay for what you use.

To get started with AWS serverless, read this.

To create your application, you can utilise AWS SAM or AWS SDK. However, to get started, start with a basic lambda function and API gateway.

I can provide a more detailed infrastructure article upon request.

Backend (Data Engineering + Data Science):

Beyond the scope**

Testing tools

> We use locust for Performance testing (open-source) — python based

> locust with Selenium for HttpUser behaviour test — locust-plugins

> Thunder client VScode extension for API development and testing — This is a postman opensource alternative

> endtest tool for retention testing automation via CI/CD pipelines— paid tool

> Google Lighthouse — most underrated but really valuable — opensource

> JSON tools like JSON viewer, jsoneditoronline.org, arraythis.com

Observability Tools

Lambda Powertools Python — A suite of utilities for AWS Lambda functions to ease adopting best practices such as tracing, structured logging, custom metrics, and more.

AWS X-ray — developers analyze and debug application with service maps and traces.

cloudwatch logs — understand logging practices by using this

Grafana is a fantastic tool, but for critical information, I still recommend utilising cloudwatch metrics,insights and dashboards. Every application is different, and there is no way to fix your problem with a template dashboard. Datadog is a great tool as well, however if you’re using AWS serverless, powertools is more than enough.

Best practices and standards

  1. The 12-factor net gives the whole checklist we need to keep track of. — 12 factornet
  2. 5-pillars of AWS architecture in detail (now 6) — AWS 5-pillar
  3. API naming conventions are essential for growing the application and reducing release cluter. We follow Whitehouse standards
  4. A standard design pages and elements checklist — Design checklist
  5. Serverless design patterns and best practices available in — Serverlessland.com
  6. “Awesome list” is a must-have for every coding techniques article. Here are a few of my personal favourites:
    Awesome-python
    Awesome-javascript
    Awesome-Angular
    https://github.com/TheJambo/awesome-testing
    https://github.com/aws-samples/aws-serverless-workshops

Productivity Tools

JIRA — Sprint planning, Bug tracking and smart commits*.

Basecamp — real-time collaboration, share best practices on the message board, Minutes of the meeting, Business to-do task, etc

Notion — Developers internal conversations, feature documents, Software Specification document

Google sheets — A quick place to dump everything before it goes into basecamp or notion in a format. Also, never estimate the power of a spreadsheet

Clockify — for leave management and task hours tracking

docusaurus — building product documentation

Figma — developing UI screens and Prototype

Beyond the scope

I didn’t cover Core AWS serverless because we use over 42 different AWS services and it’s impossible to cover them all in one spot. Also, architecture practises, serverless analytics engine development, serverless SDK, are some of those articles I intend to write in the near future.

--

--

Dheeraj Inampudi
CodeX

Talks about AI & ML Engineering, Data Science, AWS and SaaS