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 Feb 23, 2024
Evolution of Software Development (feat. Jason Crum)
Friday Feb 23, 2024
Friday Feb 23, 2024
In this episode, Krish and Jason discuss the evolution of software development and the changes they have witnessed over the years. They reflect on their first lines of code and compare the differences between then and now. They also explore the pace of change in technology and the challenges it presents for developers. The conversation touches on the importance of being a lifelong learner and staying up to date with new languages and frameworks. They also discuss the benefits and drawbacks of specializing in a specific language or framework and the role of opinions and design patterns in different languages. Krish and Jason go on to discuss the evolution of software development and the challenges and opportunities it presents. They explore the importance of flexibility in programming languages and the need for developers to have an open mind and adapt to new frameworks and technologies. They also delve into the difference between a developer and an engineering mindset, emphasizing the value of problem-solving skills and self-learning. The conversation touches on attention spans and generational shifts, highlighting the impact of smartphones and social media on society. Finally, they discuss the importance of finding fulfillment in one's work and making productive use of time.
Takeaways
Software development has evolved significantly over the years, with new languages, frameworks, and techniques constantly emerging.
Being a lifelong learner and staying up to date with new technologies is crucial for success in the field.
Specializing in a specific language or framework can provide job security, but it may limit career opportunities in the long run.
Opinions and design patterns vary across different languages, and developers should be open to learning and adapting to new approaches. Developers should be open-minded and adaptable to new frameworks and technologies.
Problem-solving skills and self-learning are essential for success in software development.
The rise of smartphones and social media has negatively impacted attention spans and the ability to focus.
Finding fulfillment in one's work and making productive use of time are important for personal and professional growth.
Chapters
00:00 Introduction and Background
01:19 The Evolution of Software Development
13:59 The Pace of Change in Technology
24:53 Specializing in a Language or Framework
29:12 Opinions and Design Patterns in Different Languages
31:25 The Importance of Flexibility in Programming Languages
36:25 Developer vs Engineering Mindset
41:56 Attention Spans and Generational Shifts
57:24 The Detrimental Effects of Smartphones and Social Media
01:02:07 Finding Fulfillment in Software Development
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
Tuesday Feb 20, 2024
Software Supply Chain Security and a Decoupled Architecture (feat. Tracy Ragan)
Tuesday Feb 20, 2024
Tuesday Feb 20, 2024
Tracy Ragan discusses software supply chain management and the importance of generating and consuming Software Bill of Materials (SBOMs) in decoupled architectures. She explains the challenges of managing libraries and dependencies in microservices and the need for aggregated SBOMs. Tracy emphasizes the importance of rapid response to vulnerabilities and the value of SBOMs in facilitating this response. She also discusses the requirements and industries for SBOMs and the role of SBOMs in analyzing and securing open source and commercial software.
Tracy introduces DeployHub as a DevSecOps evidence store that helps teams gain confidence in the use and consumption of open source software and enables rapid response to vulnerabilities.
Takeaways
Software supply chain management involves generating and consuming SBOMs to track libraries and dependencies in decoupled architectures.
In decoupled architectures, it is important to generate SBOMs for each microservice and aggregate them to understand the overall software supply chain.
SBOMs should be generated for every build and provide visibility into the vulnerabilities and dependencies of each component.
The quality of SBOMs is determined by their ability to facilitate rapid response to vulnerabilities and enable collaboration among teams.
While SBOMs are not currently required in all industries, their importance is increasing, especially in sectors like government and fintech. Understanding the impact of vulnerabilities is crucial for effective response and prioritization.
Rapid response to vulnerabilities is essential to minimize the potential impact on production environments.
Centralized data and information are necessary for effective vulnerability management.
Fixing vulnerabilities in open source software can be challenging due to the lack of accountability and maintenance.
Controlling open source consumption and managing the software supply chain are complex tasks.
DeployHub provides a DevSecOps evidence store that helps teams gain confidence in the use of open source software and enables rapid response to vulnerabilities.
Chapters
00:00 Introduction to Software Supply Chain Management
03:22 Understanding Architecture in the Context of SBOMs
06:12 Configuration Management in Monolithic Applications
07:39 Challenges of Decoupled Architecture in Microservices
09:20 The Need for SBOMs in Decoupled Architectures
11:15 Generating Aggregated SBOMs for Microservices
13:24 Generating SBOMs for Each Microservice
15:23 Generating SBOMs for Every Build
17:15 Managing Libraries and Dependencies in Decoupled Architectures
19:31 The Importance of Consuming SBOM Data
22:30 Generating SBOMs with Tools
24:28 The Format and Consumption of SBOMs
27:55 The Importance of Consuming and Analyzing SBOM Data
29:43 Requirements and Industries for SBOMs
33:29 SBOMs for Open Source and Commercial Software
36:01 The Role of SBOMs in Rapidly Responding to Vulnerabilities
39:05 The Value of SBOMs in Rapid Response Systems
43:13 Defining the Quality of SBOMs
44:06 Understanding the Impact of Vulnerabilities
46:03 The Importance of Rapid Response
48:35 The Need for Centralized Data and Information
50:27 Challenges in Fixing Vulnerabilities
52:14 The Accountability of Open Source Software
53:41 The Difficulty of Controlling Open Source Consumption
55:16 Introduction to DeployHub
57:43 Managing the Software Supply Chain
Tracy Ragan's Links:
Linkedln Profile
DeployHub
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
Monday Feb 05, 2024
Software Reusability: Build once, build it well and make it customizable
Monday Feb 05, 2024
Monday Feb 05, 2024
In this podcast episode, Krish compares the Instacart and Wegmans apps to identify commonalities and similarities. He discusses the reusability and integration of backend systems, highlighting the benefits of leveraging existing solutions rather than reinventing the wheel. Krish also explains Snowpal's business model, which focuses on selling software and licenses to other companies. He showcases the integration of multiple products within the Snowpal app and emphasizes the importance of balancing verticals and horizontals in software development.
Takeaways
Leveraging existing solutions and reusing backend systems can save time and resources in software development.
Selling software and licenses can be a successful business model, allowing companies to provide ready-made solutions to other businesses.
Integrating multiple products within an app can provide a comprehensive solution for users.
Balancing verticals (specific solutions) and horizontals (platform layers) is crucial for successful software development.
Chapters
00:00 Introduction and Context
02:02 Comparison of Instacart and Wegmans Apps
13:00 Reusability and Integration of Backend Systems
17:20 Snowpal's Business Model
21:12 Integration of Multiple Products in SnowPAL App
26:10 Reuse of SnowPAL's Web Application
28:37 Balancing Verticals and Horizontals in Software Development
29:07 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 26, 2024
Teradata (1/N): Getting Started (Create Environment, Explore Use Cases)
Friday Jan 26, 2024
Friday Jan 26, 2024
In this podcast episode, Krish explores Teradata from scratch. He starts by introducing Teradata as a complete cloud analytics and data platform, suitable for building large-scale data warehousing applications. He explains the concepts of data warehousing, data lakes, and data marts. Krish then explores Teradata's platform and products, including Teradata Vantage and ClearScape Analytics. He demonstrates how to get started with Teradata by creating an environment and exploring the JupyterLab interface. Krish creates tables, loads data, and runs queries in Teradata, providing hands-on experience and learning along the way. Krish explores the Teradata platform and its functionalities. He starts by troubleshooting a query and identifying the issue. Then, he runs basic queries to demonstrate the SQL syntax. Krish also discusses the availability of third-party plugins and explores some of them. Finally, he concludes the episode by discussing the next steps for further exploration and learning.
Takeaways
Teradata is a complete cloud analytics and data platform suitable for building large-scale data warehousing applications.
Data warehousing, data lakes, and data marts are important concepts to understand in the context of Teradata.
Teradata offers a range of products and platforms, including Teradata Vantage and ClearScape Analytics.
JupyterLab and Jupyter Notebooks can be used to interact with Teradata and perform data analysis and exploration.
Creating tables, loading data, and running queries are essential tasks in Teradata. Teradata is a powerful platform for data analysis and management.
Troubleshooting queries is an essential skill for working with Teradata.
Basic SQL syntax can be used to run queries on Teradata.
Third-party plugins can enhance the functionality of Teradata.
Chapters
00:00 Introduction to Teradata
01:16 Understanding Data Warehousing and Data Lakes
03:35 Data Marts and Teradata
04:26 Exploring Teradata's Platform and Products05:41Getting Started with Teradata
06:25 Teradata Vantage and ClearScape Analytics
07:57 Understanding JupyterLab and Jupyter Notebooks
19:14 Exploring JupyterLab Extensions
28:18 Creating Tables and Loading Data in Teradata
48:02 Running Queries in Teradata
53:49 Troubleshooting Query
55:14 Running Basic Queries
56:00 Third-Party Plugins
57:14 Exploring Plugins
58:18 Next Steps and Further Exploration
58: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
Thursday Jan 25, 2024
Fundamentals of Prospecting with a focus on B2B Sales (feat. Dr. Deva Rangarajan)
Thursday Jan 25, 2024
Thursday Jan 25, 2024
In this podcast episode, Dr. Deva Rangarajan discusses the topic of prospecting in sales. The conversation covers various aspects of prospecting, including the changes in prospecting over time, the difference between advertising and marketing, and the role of sales and marketing in outbound and inbound prospecting. The discussion also touches on the effectiveness of cold calling and cold emailing, the challenges of purchasing mailing lists, and the importance of automation in sales. The episode concludes with a recap of the main points discussed and a preview of the next episode, which will delve into a practical example of prospecting.
Takeaways
Prospecting in sales involves both outbound and inbound approaches.
The role of sales and marketing teams is crucial in both outbound and inbound prospecting.
Cold calling and cold emailing can still be effective in certain scenarios and industries.
Purchasing mailing lists may not be a reliable or recommended approach.
Automation plays a significant role in streamlining sales processes.
Open rates and response rates in email campaigns can vary, and it is important to set realistic expectations.
Chapters
00:00 Introduction
01:24 Subjectivity in Sales
06:42 Sales Prospecting 101
09:31 Changes in Prospecting
10:33 Difference Between Advertising and Marketing
12:26 Sales and Marketing for the Long Term
15:24 Inbound and Outbound Prospecting
18:43 Approaching Outbound and Inbound Differently
22:03 Role of Sales and Marketing in Outbound and Inbound
23:37 Assessing Success in Sales and Marketing
25:26 Filtering Leads in Inbound Marketing
26:52 Role of Sales and Marketing Teams
27:36 Inbound and Outbound as a Combination
29:29 Outbound Sales Campaigns
30:51 Cold Calling and Cold Emailing
32:43 Effectiveness of Cold Calling in 2024
33:31 Feasibility of Cold Calling in Certain Scenarios
34:36 Cold Calling in Specific Industries or Demographics
36:39 Cold Emailing and LinkedIn Prospecting
38:17 Challenges with Purchasing Mailing Lists
39:23 Quality and Accuracy of Mailing Lists
42:42 Considerations for Small Organizations
43:39 Importance of Automation in Sales
44:57 Open Rates and Response Rates in Email Campaigns
49:09 Recap and Practical Examples
53:49 Closing Comments
55:51 Next Steps and Example
58:14 Conclusion
Dr. Rangarajan's Links
LinkedIn Profile
Ball State Sales Center
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 25, 2024
Using diagrams to effectively communicate with Teams, Clients & Stakeholders
Thursday Jan 25, 2024
Thursday Jan 25, 2024
In this podcast, Krish discusses the importance of using diagrams to effectively communicate within teams. He shares examples of different types of diagrams, including sequence diagrams, flowcharts, and mind maps. Krish emphasizes the productivity and efficiency gained by using digital tools to create diagrams, rather than manually drawing them. He also highlights the value of diagrams in conveying complex information and facilitating understanding. Overall, the podcast emphasizes the benefits of incorporating diagrams into team communication and decision-making processes.
Takeaways
Diagrams are a powerful tool for effective communication within teams.
Using digital tools to create diagrams increases productivity and efficiency.
Different types of diagrams, such as sequence diagrams, flowcharts, and mind maps, can be used to represent different types of information.
Diagrams help convey complex information and facilitate understanding.
Chapters
00:00 Introduction to Diagrams
04:45 Using Diagrams to Communicate Within Teams
06:08 Using Sequence Diagrams
22:44 Using Flowcharts
32:09 Using Mind Maps
35:33 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
Thursday Jan 25, 2024
Thursday Jan 25, 2024
In this podcast, Krish explores the process of digital analysis and how to take the analysis forward. He discusses different approaches to analyzing product usage, including general product usage analysis, client-specific product usage analysis, feature-specific product usage analysis, ad hoc analysis, and usage pattern analysis. Krish emphasizes the importance of communicating the analysis to the product team and translating it into meaningful requirements for the engineering team.
Takeaways
Digital analysis involves analyzing product usage and user behavior.
Different approaches to analysis include general product usage analysis, client-specific product usage analysis, feature-specific product usage analysis, ad hoc analysis, and usage pattern analysis.
Communicating the analysis to the product team is crucial for making informed decisions.
Translating the analysis into meaningful requirements helps guide the engineering team.
Chapters
00:00 Introduction and Recap
03:58 Communicating Analysis to Product Team
04:59 General Product Usage Analysis
09:34 Client Specific Product Usage Analysis
14:51 Feature Specific Product Usage Analysis
20:39 Ad Hoc Analysis
25:25 Usage Pattern Analysis
31:03 Translating Analysis into Requirements
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
Tuesday Jan 23, 2024
Tuesday Jan 23, 2024
This podcast episode explores digital analytics tools, with a focus on FullStory. The host provides an overview of digital analytics and its importance in understanding user behavior and improving online marketing strategies. The features and configuration of FullStory are discussed, including the ability to analyze user activity, track frustrated sessions and rage clicks, and use UTM campaigns for tracking. The episode also touches on the use of DataDog for digital analytics and highlights the various aspects that can be analyzed, such as session length, user behavior, and conversion rates. The episode concludes with the importance of using digital analytics to improve business performance.
Takeaways
Digital analytics tools help gather, analyze, and interpret data from digital sources to understand user behavior and improve online marketing strategies.
FullStory is a digital analytics tool that provides detailed insights into customer behavior, allowing for optimization of webpages, marketing campaigns, and online initiatives.
Features of FullStory include analyzing user activity, tracking frustrated sessions and rage clicks, and using UTM campaigns for tracking.
Session length and active time are important metrics to consider for user engagement and scalability.
Frustrated sessions and rage clicks can provide insights into user experience issues and areas for improvement.
UTM campaigns and sources can be used to track and analyze the performance of digital marketing campaigns.
DataDog is another tool that can be used for digital analytics and offers features for monitoring and observability.
Digital analytics can be customized to analyze different aspects such as user behavior, page performance, and conversion rates.
Using digital analytics can help businesses improve their online presence, understand user needs, and make data-driven decisions for growth and optimization.
Chapters
00:00 Introduction and Context
01:27 Overview of Digital Analytics Tools
03:49 Exploring FullStory
07:14 Configuring FullStory
09:40 Analyzing User Activity in FullStory
13:13 Additional Features of FullStory
19:00 Importance of Session Length and Active Time
20:04 Optimizing User Experience and Scalability
21:45 Frustrated Sessions and Rage Clicks
22:33 Understanding Frustrated Sessions and Rage Clicks
23:37 UTM Campaigns and Sources
26:34 Using UTM Codes for Tracking
28:38 Customizing Analysis Parameters
29:42 Exploring DataDog for Digital Analytics
31:56 Analyzing Different Aspects of Digital Analytics
38:00 Using Digital Analytics to Improve Business
39:16 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
Monday Jan 22, 2024
Monday Jan 22, 2024
In this podcast, Krish discusses how each individual represents not only themselves but also a larger population. He emphasizes the importance of credibility, professionalism, clear communication, and commitment to deliverables. Krish also highlights the significance of reputation and how it can impact others who share similarities. He advises learning the paradigms of the organization and reacting gracefully to transitions. Krish concludes by reminding listeners that a job does not define their worth as a person.
Takeaways
Representing oneself also means representing a larger population.
Credibility is crucial in building trust and reputation.
Clear communication and professionalism are essential in the workplace.
Commitment to deliverables and meeting deadlines is important.
Helping others and reacting gracefully to transitions can have a positive impact.
A job does not define an individual's worth.
Chapters
00:00 Introduction
00:58 Representing a Larger Population
03:25 Changes in the Hiring Process
08:05 Credibility
09:58 Location and Availability
12:17 Professionalism
13:19 Communication
15:25 Commitment to Deliverables
16:48 Reputation
18:31 Learning Organizational Paradigms
19:53 Confidence
20:58 Helping Others
23:01 Reacting to Transitions
25:20 Job Does Not Define You
26:39 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
Monday Jan 22, 2024
10+ ways to improve Employee Retention
Monday Jan 22, 2024
Monday Jan 22, 2024
In this podcast episode, Krish discusses employee retention and the overall employee experience. He shares insights and tips based on his experience in software development and running a startup. The conversation covers various topics such as job descriptions, recruiter reach out, interview processes, communication and feedback, onboarding, promotions and pay raises, time off policies, equipment, happiness check, training, engagement, restructuring, and moving on. Krish emphasizes the importance of treating employees as individuals and creating a positive work environment.
Takeaways
Job descriptions should be engaging and reflect the company culture.
Recruiters should reach out to candidates in a personalized and clear manner.
The interview process should be well-defined and relevant to the role.
Regular communication and feedback are crucial for employee satisfaction.
Onboarding should be seamless and include necessary resources and support.
Treating contractors and consultants with respect and clarity is important.
Promotions, pay raises, and titles should be personalized to meet individual preferences.
Time off policies should be flexible and considerate of employees' needs.
Providing the right equipment and tools for work enhances productivity and satisfaction.
Engagement activities should be tailored to the team's preferences and promote a positive work culture.
Restructuring should be handled with empathy and transparency.
When moving on, employees should give notice and assist with the transition process.
Chapters
00:00 Introduction
01:42 Job Description
04:46 Recruiter Reach Out
08:52 Interview Process
12:23 Communication and Feedback
13:21 Onboarding Process
15:21 Treating Contractors and Consultants
17:05 Feedback
18:05 Promotions, Pay Raises, and Titles
20:24 Time Off
22:01 Equipment
25:31 Happiness Check
27:00 Training
28:30 Engagement
30:59 Restructuring
34:36 Moving On
35:36 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