Polyglot Software Development
We’ve been doing Software Development and Architecture work for a while at Snowpal, and currently have several B2B and B2C products in production. In this podcast, we’ll share our experiences on a regular basis to help you & your teams build great software. The topics covered in this podcast will include Product Management, Project Management, Architecture, Development, Deployment, Security, Release Management, Sales, Marketing, Advertising, and just about everything else an ambitious, fast growing startup based out of the US is likely to be involved in. So, join us. Let’s become better!
Episodes

Friday Jan 19, 2024
Friday Jan 19, 2024
In this podcast, Prasanna Veeraswamy discusses his travels to 200 countries and the cultural differences he encountered. The conversation explores the hypothetical scenario of introducing technology to individuals from different countries and the potential impact on happiness. The shared experiences and commonalities between people in Africa are also discussed. The conversation concludes with a discussion on the impact of technology on people's beliefs and the continuation of the topic in the next podcast.
Takeaways
Traveling to different countries provides valuable insights into different cultures and perspectives.
Shared experiences and connections with others can bring a sense of calm and happiness.
Despite cultural differences, there are often commonalities that bind people together.
The impact of technology on people's beliefs and values is a complex topic that requires further exploration.
Chapters
00:00 Introduction and Background
01:17 Hypothetical Scenario
04:51 Discussion on Happiness
08:04 Shared Experiences
11:30 Sadness and Commonalities in Africa
13:11 Design Patterns and Commonalities
15:42 Technology and People18:51Relaxation and Travel
19:30 Impact of Technology
Snowpal Products
Backends as Services on AWS Marketplace
Mobile Apps on App Store and Play Store
Web App
Education Platform for Learners and Course Creators

Friday Jan 19, 2024
Friday Jan 19, 2024
In this podcast episode, Krish and Prasanna continue their conversation about Prasanna's travels. They focus on Africa, discussing its diversity and unique characteristics. They also explore the impact of technology, specifically YouTube consumption, in different regions. The episode concludes with a thought-provoking question about happiness in different cultural contexts.
Takeaways
Africa is a diverse continent with distinct regions and cultures.
Africa has a raw and primitive feel, with limited technological advancements compared to other continents.
YouTube consumption varies significantly across different regions, with Africa having the lowest consumption rates.
Cultural context plays a significant role in determining happiness levels.
Chapters
00:00 Introduction and Background
01:04 Continuing the Conversation
03:00 Africa: A Continent of Diversity
06:25 Africa's Unique Characteristics
08:05 Technology and YouTube Consumption
09:34 Happiness in Different Cultural Contexts
10:47 Conclusion
Snowpal Products
Backends as Services on AWS Marketplace
Mobile Apps on App Store and Play Store
Web App
Education Platform for Learners and Course Creators

Friday Jan 19, 2024
Friday Jan 19, 2024
In this podcast episode, Krish and Prasanna discuss the challenges and strategies for building relationships and effective communication in remote work environments. They explore the cultural differences that can impact communication styles and offer insights on how to bridge those gaps. They also discuss the importance of creating off-sites and team building activities to foster connections among remote team members. Additionally, they address the fear of being judged and provide suggestions for individuals to take initiative in building relationships. Overall, the conversation emphasizes the value of understanding and adapting to different cultures in order to create successful remote work environments. The conversation explores the complexity of cultures and the adjustments required when working with teams in different parts of the world. It emphasizes the importance of work-life harmony and the need for companies to invest in their employees. The blurring of personal and professional relationships is discussed, along with the cultural differences in weddings and drinking culture.
Krish and Prasanna discuss various topics related to cultural differences and their experiences in different countries. They explore the concept of leadership in different cultures, highlighting the importance of personal attention and mentorship in countries like China. They also express their interest in Africa and its unique qualities, such as its raw and elemental nature. The conversation concludes with a discussion on the value of diversity and the potential future topic of social group travel.
Takeaways
Cultures are complex and require understanding and adjustments when working with teams from different parts of the world.
Work-life harmony is more important than work-life balance, as it allows for flexibility and integration of personal and professional lives.
Companies should invest in their employees and create a positive work environment to retain talent.
Cultural differences can be seen in various aspects of life, including weddings and drinking culture.
Chapters
00:00 Introduction and Background
01:41 Cultural Differences in Communication
06:12 Finding a Middle Ground for Remote Work
09:06 Creating Offsites and Team Building Activities
11:44 Overcoming Social Barriers in Remote Work
16:23 Balancing Transactional and Relational Work Relationships
17:46 Individual Initiatives for Building Relationships
20:43 Addressing the Fear of Being Judged
22:13 Creating a Live Call Environment
26:26 Navigating Cultural Differences
34:44 Cultural Complexity
36:01 Adjustments in Different Parts of the World
39:01 Work-Life Balance and Cultural Differences
46:24 Retaining Employees in a Changing Workforce
48:20 Blurring the Line Between Personal and Professional Relationships
49:45 Forming Personal Relationships at Work
51:11 Work-Life Harmony
56:01 The Evolution of Work-Life Balance
59:32 The Importance of Work-Life Harmony
01:03:31 The Blending of Personal and Professional Lives
01:06:37 Cultural Differences in Weddings
01:08:30 Cultural Differences in Drinking Culture
01:09:13 Cultural Differences in Leadership
01:11:27 Interest in Africa
01:13:40 Uniqueness of Africa
01:16:03 Appreciation for Diversity
01:18:23 Future Topics: Social Group Travel
Snowpal Products
Backends as Services on AWS Marketplace
Mobile Apps on App Store and Play Store
Web App
Education Platform for Learners and Course Creators

Thursday Jan 18, 2024
(Part 3/N) Terraform: Create Image Resource
Thursday Jan 18, 2024
Thursday Jan 18, 2024
In this podcast, Krish continues the Terraform series by bringing another resource under Terraform's management without using the import block. He demonstrates how to create and modify a Docker container image using Terraform. He also explores the process of destroying resources and discuss some limitations and considerations.
Takeaways
You can bring existing resources under Terraform's management without using the import block.
Terraform allows you to modify the configuration of resources and apply the changes.
Destroying resources in Terraform can sometimes result in errors, but they can usually be resolved.
The next episode will focus on using Terraform with AWS and explore other cloud providers.
Chapters
00:00 Introduction and Recap
06:12 Bringing a Resource Under Terraform's Management
15:24 Modifying Configuration and Destroying Resources
17:08 Summary and Next Steps
Snowpal Products
Backends as Services on AWS Marketplace
Mobile Apps on App Store and Play Store
Web App
Education Platform for Learners and Course Creators

Thursday Jan 18, 2024
Thursday Jan 18, 2024
In this podcast, Krish explores the various connectors available in Confluent Cloud. He starts by recapping the previous podcasts and the basics of Confluent Cloud. Krish then focuses on connectors, explaining their value and why they can reduce the need for writing code. He explores different connectors, such as the data gen source connector and the MongoDB Atlas connectors. Krish also discusses different data formats, including Avro, Protobuf, and JSON. He briefly touches on implementing custom connectors. Krish explores the topic of connectors in Confluent Cloud. He discusses the process of creating connectors and the different types of connectors available. Krish also delves into configuring connectors and defining configuration parameters. He explores the concept of custom connector configuration and the use of connector properties files. Krish then explores existing connectors, such as the HTTP source and sync connectors, and discusses the process of publishing custom connectors. He concludes by mentioning the Confluent CLI for managing connectors.
Takeaways
Connectors in Confluent Cloud provide value by reducing the need for writing code.
Different connectors are available for various data sources and destinations, such as MongoDB, Amazon S3, and Elasticsearch.
Data formats like Avro, Protobuf, and JSON can be used with connectors.
Implementing custom connectors allows for more flexibility and integration with specific systems.
Connectors enable seamless data integration and propagation between different systems. Connectors in Confluent Cloud allow for seamless integration with various systems and services.
Custom connectors can be created and published to Confluent Cloud.
Configuration parameters for connectors can be defined and managed.
The Confluent CLI provides a command-line interface for managing connectors.
Chapters
00:00 Introduction
00:35 Recap of Previous Podcasts
01:05 Focus on Connectors in Confluent Cloud
02:16 Exploring Data Gen Source Connector
03:43 Different Formats: Avro, Protobuf, JSON
08:07 Differences Between Avro and Protobuf
10:03 Exploring Other Connectors
11:14 Using MongoDB Atlas Connectors
12:08 Testing Different Formats with Connectors
13:36 Handling Avro Format with Consumer
16:58 Exploring More Connectors: Snowflake, Amazon S3, Elasticsearch
20:33 Implementing Custom Connectors
27:31 Exploring More Connectors: Salesforce, Oracle, Jira
35:16 Exploring More Connectors: SQL Server, MySQL
38:43 Implementing Custom Connectors
43:24 Exploring More Connectors: Kafka, File
46:20 Understanding Connector Implementation
49:06 Creating Custom Connectors
50:00 Summary and Conclusion
50:59 Creating Connectors
52:04 Configuring Connectors
54:00 Custom Connector Configuration
56:08 Defining Configuration Parameters
57:38 Configuration Properties
59:49 Self-Managed Connectors
01:00: 27 Connector Properties File
01:01:28 Creating Custom Connectors
01:02: 09 Publishing Custom Connectors
01:03: 37Existing Connectors
01:04: 14HTTP Source Connector
01:06:40 HTTP Sync Connector
01:08:34 Other Connectors
01:10:34 Managing Connectors
01:12:14 Confluent CLI
Snowpal Products
Backends as Services on AWS Marketplace
Mobile Apps on App Store and Play Store
Web App
Education Platform for Learners and Course Creators

Thursday Jan 18, 2024
(Part 2/2) Remote Work - An Engineer’s Perspective (feat. Jason Crum)
Thursday Jan 18, 2024
Thursday Jan 18, 2024
In this podcast, Krish and Jason discuss the cultural aspects of remote work and the importance of knowing each other in a remote setting. They explore whether it is necessary for engineers to know each other and the responsibility of individuals and organizations in fostering relationships. They also touch on the impact of engagement length on building relationships and the importance of treating software development as an art. The conversation concludes with a discussion on the challenges of working with different cultures and the need to embrace diversity and learn from different cultures.
Takeaways
Building relationships and getting to know each other is important in a remote work setting.
Both individuals and organizations have a responsibility in fostering relationships and creating a positive work culture.
Engagement length can impact the depth of relationships and the quality of deliverables.
Treating software development as an art and giving 100% effort leads to better results.
Working with different cultures requires understanding and embracing diversity.
Chapters
00:00 Introduction and Recap
00:46 The Importance of Knowing Each Other
03:48 The Individual vs. Organization Responsibility
06:12 Building Relationships in a Remote Setting
11:11 The Impact of Engagement Length
12:32 Treating Software Development as an Art
17:50 Giving 100% and Treating Software Development as an Art
22:23 Challenges of Working with Different Cultures
24:51 Embracing Diversity and Learning from Different Cultures
26:56 Closing Remarks
Snowpal Products
Backends as Services on AWS Marketplace
Mobile Apps on App Store and Play Store
Web App
Education Platform for Learners and Course Creators

Wednesday Jan 17, 2024
(Part 1/2) Remote Work - An Engineer’s Perspective (feat. Jason Crum)
Wednesday Jan 17, 2024
Wednesday Jan 17, 2024
In this podcast episode, Krish interviews Jason Crum, a Senior Enterprise Architect, about remote work from an engineer's perspective. They discuss various aspects of remote work, including pre-pandemic, during pandemic, and post-pandemic experiences, preferences for remote or in-office work, benefits and challenges of remote work, limitations of remote work, social interaction, pairing in remote work, implementing remote work in startups, team dynamics, and challenges of non-engineers in remote teams.
Takeaways
Remote work offers flexibility and the ability to manage time effectively.
Remote work can limit social interaction and the ability to collaborate in person.
Pairing in remote work can be challenging but can also be beneficial for certain tasks.
Implementing remote work in startups requires considering team dynamics and ensuring everyone is either remote or in-office.
Non-engineers in remote teams may face unique challenges.
Chapters
00:00 Introduction and Welcome
01:10 Favorite Food Items
04:06 Remote Work Experience
06:23 Pre-Pandemic, During Pandemic, and Post-Pandemic Remote Work
10:33 Preference for Remote or In-Office Work
13:07 Benefits and Challenges of Remote Work
15:28 Limitations of Remote Work
19:16 Social Interaction and Remote Work
20:39 Pairing in Remote Work
24:46 Implementing Remote Work in Startups
27:50 Team Dynamics in Remote Work
29:43 Challenges of Non-Engineers in Remote Teams
32:21 Closing Comments
Snowpal Products
Backends as Services on AWS Marketplace
Mobile Apps on App Store and Play Store
Web App
Education Platform for Learners and Course Creators

Wednesday Jan 17, 2024
Wednesday Jan 17, 2024
In this podcast episode, the host continues from the previous episodes in the Confluent Cloud series and focuses on consuming messages. The consumer code is reviewed, and the concept of group ID is explained. The process of initializing the consumer and subscribing to topics is demonstrated. The use of channels in Go for message consumption is explored. The host troubleshoots issues related to group ID and discusses the inconsistencies observed. The allocation of messages among multiple consumers with different group IDs is examined. The episode concludes with a summary of the learnings and an invitation to explore Snowpals' products and APIs.
Takeaways
Consuming messages in Confluent Cloud involves initializing the consumer and subscribing to topics.
The group ID determines which consumers belong to which group and affects work sharing and fault tolerance.
Messages can be consumed using channels in Go, allowing for continuous listening and processing.
Troubleshooting issues with group ID and understanding message allocation among multiple consumers is important.
Snowpal offers a range of products and APIs for software development and architecture.
Chapters
00:00 Introduction and Recap
00:31 Starting to Consume Messages
01:44 Consumer Code Overview
03:08 Consumer Group ID04:04Initializing the Consumer
04:32 Consuming Messages with Channels
05:00 Publishing Messages and Consuming
06:25 Group ID and Offset
07:07 Troubleshooting Group ID08:29Group ID and Producer
09:12 Inconsistencies and Debugging
10:24 Cluster Settings and Group ID
11:08 Cluster and Topic Configuration
12:24 Consumer Group ID and Partitions
13:22 Consumer Group ID and Message Filtering
16:29 Consumer Group ID and Work Sharing
17:49 Producer and Consumer Group ID
18:35 Multiple Consumers and Group ID
19:54 Multiple Consumers with Different Group IDs
20:50 Consuming Messages with Multiple Consumers
22:07 Parallelism and Message Distribution
23:52 Consumer Group ID and Message Allocation
26:30 Consumer Group ID and Message Allocation (Continued)
28:30 Consumer Group ID and Message Allocation (Continued)
30:03 Consumer Group ID and Message Allocation (Continued)
35:45 Conclusion
Snowpal Products
Backends as Services on AWS Marketplace
Mobile Apps on App Store and Play Store
Web App
Education Platform for Learners and Course Creators

Saturday Jan 13, 2024
Saturday Jan 13, 2024
In this podcast episode, the host continues the discussion on Confluent Cloud and focuses on adding a consumer and creating a Go client. The process of building a producer and troubleshooting and debugging common issues is also covered. The host explores topics such as topic creation, error handling, and configuration. Known issues and workarounds are discussed, along with cluster settings and security protocols. The episode concludes with final debugging and error handling techniques. In this conversation, Krish explores the process of publishing messages to a Kafka topic using a Go client. He encounters some issues along the way, such as delivery failures and SSL connection problems. However, after making some code changes and switching back and forth, the publishing starts working unexpectedly. Krish also discusses the use of Go channels in the producer and the importance of reading config and initializing the producer correctly. He concludes by mentioning the next steps, which involve consuming the messages from the topic.
Takeaways
Adding a consumer and creating a Go client are important steps in working with Confluent Cloud.
Troubleshooting and debugging are essential skills when working with messaging systems like Kafka.
Understanding topic creation, error handling, and configuration is crucial for successful message production.
Being aware of known issues and their workarounds can save time and effort in troubleshooting.
Configuring cluster settings and security protocols correctly is essential for smooth operation. Publishing messages to a Kafka topic using a Go client involves initializing the producer and ensuring the correct configuration.
Go channels can be used in the producer to handle message production.
Reading the config and initializing the producer correctly is crucial for successful message publishing.
Issues such as delivery failures and SSL connection problems can be resolved by making code changes and switching back and forth.
Chapters
00:00 Introduction and Recap02:30 Adding a Consumer03:44 Creating a Go Client08:08 Building the Producer10:55 Creating a Consumer17:30 Troubleshooting and Debugging21:02 Topic Creation and Message Production25:48 Error Handling and Configuration33:27 Continued Troubleshooting46:20 Correcting Configuration Issues55:41 Known Issues and Workarounds59:12 Cluster Settings and Security Protocols01:01:07 Final Debugging and Error Handling01:02:19 Connecting to the Bootstrap Server01:03:47 Using Channels01:04:48 Replacing Code and Expecting a Broker and Topic01:05:21 Building and Running with Broker and Topic01:06:36 Using Go Channels in the Producer01:07:16 Reading Config and Initializing the Producer01:08:43 Delivery Failed and SSL Connection01:10:13 Sending Messages via Postman and Code01:11:02 Switching Code and Unexpected Working01:11:39 Messages Sent and Refreshing Stand01:12:55 Publishing to Different Topics01:13:32 Publishing Messages and Minor Changes01:14:00 Initializing the Producer and Randomizing Messages01:15:09 Failed to Deliver Message and Event Types01:17:00 Producing Messages with Go Routine01:18:13 Producing Messages and Business Functionality01:19:21 Producing Messages and Printing Output01:21:48 Subscription to the Topic01:22:37 Go Routine and Message Type01:23:56 Event Types and Handling01:30:07 Error Handling and Non-Existent Topic01:32:12 Next Steps: Consuming Messages
Snowpal Products:
Backends as Services on AWS Marketplace
Mobile Apps on App Store and Play Store
Web App
Education Platform for Learners and Course Creators

Thursday Jan 11, 2024
Thursday Jan 11, 2024
In this podcast, the host explores Confluent Cloud, a fully managed Kafka service. The host shares their experience with RabbitMQ and Kafka and explains the value of using a managed service like Confluent Cloud. They walk through the process of signing up for an account, creating a cluster, generating API keys, and creating topics. The host also discusses the use of connectors and introduces ksqlDB and Apache Flink. They explore cluster settings, message consumption, and additional features of Confluent Cloud. The podcast concludes with a summary of the topics covered.
Takeaways
Confluent Cloud is a fully managed Kafka service that provides added value through pre-built connectors and ease of use.
Creating a cluster, generating API keys, and creating topics are essential steps in getting started with Confluent Cloud.
ksqlDB and Apache Flink offer stream processing capabilities and can be integrated with Confluent Cloud.
Cluster settings, message consumption, and additional features like stream lineage and stream designer enhance the functionality of Confluent Cloud.
Using a managed service like Confluent Cloud allows developers to focus on solving customer problems rather than managing infrastructure.
Chapters
00:00 Introduction02:25 Exploring Confluent Cloud09:14 Creating a Cluster and API Keys11:00 Creating Topics13:20 Sending Messages to Topics15:12 Introduction to ksqlDB and Apache Flink17:03 Exploring Connectors25:44 Cluster Settings and Configuration28:05 Consuming Messages35:20 Stream Lineage and Stream Designer38:44 Exploring Additional Features44:21 Summary and Conclusion
Snowpal Products:
Backends as Services on AWS Marketplace
Mobile Apps on App Store and Play Store
Web App
Education Platform for Learners and Course Creators