Full Stack Developer & Tech Enthusiast
We all hold onto favorite snippets—a refined function, a perfect workflow, or elegant logic—that optimize our daily runtime and bring meaningful structure to the complexity of our lives.
Any professional working in any field will have their own set of tools in their toolbox that they prefer to take with them on their journey. These tools are often chosen based on their efficiency, reliability, and how well they fit the individual's workflow.
In the world of software development, a tech stack refers to the combination of programming languages, frameworks, libraries, and tools that a developer uses to build applications. Having a favorite tech stack is like having a trusted set of tools that they can rely on to build amazing applications. My favorite tech stack includes a combination of programming languages, frameworks, and tools that I find efficient and enjoyable to work with.
Being a MERN fullstack developer it is evident that I have a strong preference for Typescript for backend development. I really enjoy working with Typescript because of its static typing, which helps catch errors early in the development process and improves code maintainability.
As a Fullstack developer, I always strived to gain the expertise in developing MVP's quickly and efficiently for clients in order to validate their ideas and get feedback from users. while quick prototyping it is important to have a techstack which makes removes of hassle of setting up pipelines and other configurations as well as cost effective.
I came across AWS Amplify Gen2 which is a Backend as a Service (BaaS) platform and powerful tool for building and deploying fullstack applications quickly and efficiently. It provides a seamless integration with AWS services, allowing developers to focus on building their applications without worrying about infrastructure management. With Amplify Gen2, I can easily set up backend services, manage authentication, and deploy my applications with ease. It also offers a great developer experience with its CLI and UI tools, making it a great choice for building MVPs and prototypes quickly.
AWS Amplify Gen2 is a Typescript-first platform, which means that it provides strong support for Typescript and allows developers to write their backend code in Typescript. It also provides constructs and libraries that helps in integrating with AWS services and building serverless applications.
You can find more about building backend using AWS Amplify Gen2 here: Building Backend with AWS Amplify Gen2
For frontend development, I have a strong preference for React. To be particularly specific, I enjoy working with Next.js, which is a popular React framework for building server-side rendered applications.
AWS Amplify Gen2 also provides great support for frontend development with React and Next.js. It offers a seamless integration with these frameworks, allowing developers to easily connect their frontend applications to backend services and APIs. Amplify Gen2 provides libraries and tools that make it easy to manage authentication, data storage, and other backend functionalities from the frontend. This makes it a great choice for building fullstack applications with React and Next.js.
Not only React and Next.js, AWS Amplify Gen2 also supports frameworks like Angular, Vue, React Native, Android and iOS, making it a versatile choice for frontend development.
For any Software Development project, having a robust CI/CD pipeline is crucial for ensuring that code changes are tested and deployed efficiently. It decides the speed at which you can iterate and deliver new features to users.
I use the CI/CD pipelines provided by AWS Amplify Gen2 for my Projects. It uses AWS CodePipeline and AWS CodeBuild under the hood to provide a seamless CI/CD experience. With Amplify Gen2, I can easily set up automated build and deployment pipelines for my applications, allowing me to quickly iterate and deliver new features to users. It also provides great integration with Git repositories, making it easy to trigger builds and deployments based on code changes.
I also use GitHub Actions for some of my projects, especially when I want to have more control over the CI/CD process or when I want to integrate with other tools and services.
Testing is an essential part of the software development process, and having a reliable testing framework is crucial for ensuring the quality of your applications. For my projects, I use a combination of Jest and React Testing Library for unit and integration testing, and Playwright for end-to-end testing.
I also use playwright for end-to-end testing, which allows me to test the entire application flow from the user's perspective. It provides a powerful and easy-to-use API for writing end-to-end tests, and it supports multiple browsers and platforms. It can also be used for scraping any modern web application irrespective of whether it is a Client Side Rendered (CSR) or Server Side Rendered (SSR) application.
I can't talk more about this topic. As Amplify Gen2 provides great support for Logging and Metrics of the applications. But recently, I am introduced to Posthog, which is an open-source product analytics platform that provides powerful tools for tracking user behavior and gaining insights into how users interact with your applications. It offers features like event tracking, user segmentation, and funnel analysis, which can help you understand user behavior and optimize your applications accordingly. Posthog also provides great integration with various frontend and backend frameworks, making it easy to set up and use in your projects.
Conclusions
This is it for today folks, I will be sharing more about a bootstrap template I use for my projects in the next blog post. Stay tuned!