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
3 days ago
Back to development after 3 months
3 days ago
3 days ago
In this non-technical podcast episode, the host reflects on the challenges of getting back into the routine of software development after a break. They discuss how taking time off can make tasks that were once seamless feel unfamiliar and laborious. The host shares examples of how even simple processes like recording a podcast or fixing a bug can become more difficult after a break. They emphasize the importance of staying connected to the industry and finding one's comfort zone when returning to software development.
Takeaways
Taking a break from software development can make it challenging to get back into the routine.
Tasks that were once seamless can feel unfamiliar and laborious after a break.
Staying connected to the industry and keeping up with new developments is important.
Finding one's comfort zone and understanding how long of a break can be taken without feeling uncomfortable is crucial.
Chapters
00:00 Introduction and Overview
03:17 Challenges of Getting Back into Software Development
08:11 The Laborious Process of Tasks After a Break
09:40 The Importance of Staying Connected to the Industry
13:31 Finding Your Comfort Zone in Returning to Software Development
4 days ago
4 days ago
In this conversation, Chuks Ejechi, a product leader, discusses the journey of a product from vision to execution. He explains the process of translating a business vision into a product vision and the importance of defining what, who, and why in the product vision. Chuks also highlights the challenges faced in executing ideas, such as resistance from stakeholders, shifting markets, resource limitations, and competition. He emphasizes the need to start small and iterate quickly, using minimum viable products to gather feedback and make improvements. The conversation explores the challenges of building a product from vision to execution, with a focus on the importance of identifying unique selling propositions and avoiding unnecessary features. The discussion also touches on the challenges of working with engineering teams, including the need for clear communication and coordination between front-end and back-end developers. The impact of geographical diversity on product development is also discussed, emphasizing the importance of understanding and appreciating different cultures and backgrounds. The conversation concludes with a discussion on the challenges faced by product teams and the importance of building a happy and cohesive team.
Takeaways
Translating a business vision into a product vision involves defining what, who, and why.
Challenges in executing ideas include resistance from stakeholders, shifting markets, resource limitations, and competition.
Starting small and iterating quickly with minimum viable products allows for gathering feedback and making improvements.
A minimum viable product should have an element of usefulness and relate to the original vision. Identify and focus on the unique selling propositions of your product to avoid building unnecessary features.
Clear communication and coordination between front-end and back-end developers is crucial for successful product development.
Understanding and appreciating different cultures and backgrounds is important when working with geographically diverse teams.
Building a happy and cohesive team is essential for effective product management and development.
Chapters
00:00 Introduction and Background
04:51 The Process of Translating Vision into Product
12:21 Challenges in Executing Ideas
17:02 Starting Small and Iterating Quickly
20:54 The Importance of a Meaningfully Small Product
24:10 Building a Product: From Vision to Execution
26:06 Identifying and Focusing on Unique Selling Propositions
29:12 Challenges of Working with Engineering Teams
32:36 The Impact of Geographical Diversity on Product Development
39:23 Building a Happy and Cohesive Team
Friday Jul 19, 2024
Dealing with Flutter Dependency Conflicts and Third-Party Plugin Changes
Friday Jul 19, 2024
Friday Jul 19, 2024
In this podcast episode, Krish discusses recent changes made to their mobile app built on Flutter. They highlight the challenges faced when upgrading dependencies and dealing with breaking changes. He shares their experience with dependency conflicts and the need to update dependencies incrementally. He also discuss the changes in Facebook login and the introduction of limited login. Krish provides insights into debugging and finding solutions to these challenges. He concludes by mentioning their exploration of AI technologies and the availability of their APIs on AWS Marketplace.
Takeaways
Regularly upgrading dependencies in a mobile app is important to avoid dependency issues and breaking changes.
Handling dependency conflicts can be challenging, especially when using third-party plugins and libraries.
Changes in third-party plugins, like Facebook login, can introduce new features and limitations that need to be accounted for.
Debugging and finding solutions to issues with upgrades and changes require thorough investigation and sometimes trial and error.
Exploring AI technologies and leveraging existing APIs can save time and effort in software development.
Chapters
00:00 Introduction and Apologies for the Delay
04:12 Handling Dependency Upgrades and Breaking Changes
08:38 Challenges with Facebook Login and Limited Login
13:04 Debugging and Finding Solutions to Issues
15:28 Importance of Keeping Up to Date with Software Changes
18:16 Exploring AI Technologies and APIs
29:20 Future Topics and Conclusion
Tuesday Apr 16, 2024
Tuesday Apr 16, 2024
Ajay Chankramath, Head of Platform Engineering at ThoughtWorks, discusses measuring and improving developer experience through platform engineering. Platform engineering is the abstracted set of tools, principles, and techniques that make developers' lives easier and enable DevOps. It focuses on improving developer productivity and reducing friction in the software development process. The key to successful platform engineering is adopting a product management mindset and prioritizing capabilities based on their value. Platform engineering can benefit organizations of all sizes, but the scope and implementation may vary. Internal developer platforms and managed platform engineering services are emerging as options for startups and smaller organizations. Platform engineering is the evolution of software development and delivery. It is not a passing fad or a replacement for DevOps, but rather a cultural paradigm that brings together tools, techniques, and processes. Platform engineering aims to simplify and automate the development process, improve compliance gating, and provide internal developer portals for self-service. It also involves the use of generative AI to enhance operational productivity and enable proactive issue detection. While there is no one-size-fits-all approach to platform engineering, it is important for organizations to invest in platforms that align with their specific requirements and skill sets.
Takeaways
Platform engineering aims to improve developer productivity and reduce friction in the software development process.
Adopting a product management mindset and prioritizing capabilities based on their value is crucial for successful platform engineering.
Platform engineering can benefit organizations of all sizes, but the scope and implementation may vary.
Internal developer platforms and managed platform engineering services are emerging as options for startups and smaller organizations. Platform engineering is the evolution of software development and delivery.
It is not a passing fad or a replacement for DevOps, but rather a cultural paradigm that brings together tools, techniques, and processes.
Platform engineering aims to simplify and automate the development process, improve compliance gating, and provide internal developer portals for self-service.
Generative AI can be used to enhance operational productivity and enable proactive issue detection.
There is no one-size-fits-all approach to platform engineering, and organizations should invest in platforms that align with their specific requirements and skill sets.
Chapters
00:00 Introduction to Ajay Chankramath and ThoughtWorks
03:08 Defining Platform Engineering and its Importance
07:48 The Role of Product Management in Platform Engineering
10:21 The Genesis of Platform Engineering and the Importance of Value Modeling
13:22 Platform Engineering for Organizations of All Sizes
22:16 Breaking Down Platform Engineering into Five Planes
25:41 The Importance of Observability in Platform Engineering
29:19 The Role of Orchestrators in Platform Engineering
33:26 The Impact of Platform Engineering on Developers' Daily Work
35:56 The Importance of Compliance Gating
36:47 Internal Developer Portals
38:17 Abstraction with Terraform and Other Tools
49:04 The Potential of Generative AI
55:53 Coexistence of Self-Serve Portals and Conversational UIs
01:06:25 Platform Engineering as an Evolution of Software Development
Monday Apr 01, 2024
Its 2024. Software Development has changed. Completely.
Monday Apr 01, 2024
Monday Apr 01, 2024
In this conversation, Krish discusses the need for software development to evolve. He emphasizes the importance of adapting to change and exploring new ways of doing things. Krish also highlights the role of AI in software development and the potential benefits it can bring. He encourages reevaluating problem-solving approaches and finding more efficient ways to document and create tickets. Ultimately, Krish emphasizes the need to embrace change and stay ahead in the rapidly evolving software industry.
Takeaways
Software development needs to evolve by adapting to change and exploring new approaches.
AI can play a significant role in improving software development processes and delivering solutions more efficiently.
Problem-solving approaches should be reevaluated to ensure they are still relevant and effective.
Efficient documentation and ticket creation processes can enhance productivity and collaboration.
Chapters
00:00 Introduction
01:01 Adapting to Change
03:54 Reevaluating Problem Solving
05:18 Approaching Documentation
06:40 Efficient Ticket Creation
07:08 Embracing Change
Monday Apr 01, 2024
Entrepreneurship: It's not easy. But, it's worth it.
Monday Apr 01, 2024
Monday Apr 01, 2024
In this conversation, Krish shares his thoughts on the challenges of entrepreneurship and building a software company. He emphasizes that while technical challenges are expected, non-technical challenges often prove to be more important. He discusses the evolving challenges of AI and the need to balance priorities and efficiency. Krish also highlights the importance of motivating teams and overcoming discouragement. He explains the exponential nature of startups and encourages listeners to embrace challenges and take action.
Takeaways
Entrepreneurship is not just an option for some, but becomes their only option.
Non-technical challenges are often more important than technical challenges in building a software company.
The challenges of AI are constantly evolving and require adaptation.
Balancing priorities and finding efficiency is crucial for startups.
Motivating teams and overcoming discouragement are key to success.
Learning by doing and embracing challenges leads to growth and success.
Chapters
00:00 Introduction and Resonance with Entrepreneurship
01:20 The Challenges of Building Software
04:41 The Evolving Challenges of AI
06:04 Balancing Priorities and Efficiency
07:02 Motivating Teams and Overcoming Discouragement
09:00 The Exponential Nature of Startups
10:28 Embracing Challenges and Taking Action
12:19 Learning by Doing and Spreading Wings
13:43 Conclusion and Call to Action
Tuesday Mar 19, 2024
Tuesday Mar 19, 2024
In this episode, Leigh Lawhon discusses the importance of transparency in software projects. She highlights the gap between product managers and developers, emphasizing the need for clear communication and understanding of the 'why' behind tasks. She explores the influence of culture on UX/UI design and the challenges of localization. She emphasizes the importance of visual hierarchy and understanding user personas in designing effective interfaces. It delves into the challenges of localization and the balance between personalization and localization. The potential impact of AI on the job market and the future of software development are also discussed. The conversation emphasizes the need for problem-solving skills and the value of being a generalist in the industry. It concludes with the importance of curating one's career in the age of AI.
Takeaways
Transparency is crucial for the success of software projects, bridging the gap between product managers and developers.
Understanding the 'why' behind tasks is essential for developers to align their work with the overall goals of the project.
Cultural considerations play a significant role in UX/UI design, and localization is necessary to create interfaces that resonate with different user demographics.
Visual hierarchy and clear communication are key elements of effective UX/UI design.
The balance between coolness and usability should be considered in designing interfaces, with a focus on meeting user needs and preferences. Understanding cultural differences is crucial for successful product design and development.
Balancing personalization and localization is essential to cater to diverse user needs.
Language plays a significant role in user experience and must be carefully considered in interface design.
The rise of AI may have implications for the job market, requiring professionals to adapt and develop problem-solving skills.
Chapters
00:00 Introduction and Background
00:53 The Importance of Transparency in Software Projects
03:12 Task Over Communication
05:04 The Importance of Understanding the 'Why'
06:19 The Role of Developers in Implementing Requirements
07:22 The Example of Building an API for Food Ordering
09:12 The Tension Between Flexibility and Alignment
10:11 The Influence of Culture on UX/UI Design
14:25 The Importance of Shared Vocabulary
15:24 The Role of Visuals in Bridging the Gap
20:11 The Complexity of UX/UI Design in Different Regions
22:15 The Impact of Familiarity on User Interfaces
23:15 The Challenge of Changing User Interfaces
25:08 The Role of UX/UI Design in Personalization
26:20 The Overemphasis on Coolness in UX/UI Design
28:30 The Most Important Aspects of UX/UI Design
30:45 Visual Hierarchy
31:46 Understanding User Personas
33:21 Localization and Cultural Considerations
39:48 Understanding Cultural Differences
41:02 The Importance of Cultural Understanding
43:01 Balancing Personalization and Localization
44:08 The Impact of Language on User Experience
48:49 The Challenges of Localization
53:57 The Complexity of Localization within a Country
56:07 The Potential Impact of AI on Job Market
01:00:30 The Future of Software Development
01:07:07 The Importance of Problem Solving
01:09:11 The Need for Generalists in the Industry
01:12:06 Curating Your Career in the Age of AI
01:14:00 Curating Your Career
01:19:12 Embracing Change and Learning
01:25:12 The Importance of Language and Communication
01:31:22 Dealing with Rejection and Embracing Failure
01:34:19 Finding Unity in Language
01:39:18 Summary and Closing Thoughts
Thursday Mar 14, 2024
Authorization as a Service (feat. Jake Moshenko)
Thursday Mar 14, 2024
Thursday Mar 14, 2024
Jake Moshenko, CEO of AuthZed, discusses the importance of permissioning databases and the challenges of implementing permissions at scale. He explains how AuthZed solves this problem by providing a common API for flexible and fine-grained authorization. The target market for AuthZed includes companies of all sizes that need to add complex permission workflows to their applications. Jake demonstrates how AuthZed can be integrated with backend systems, web applications, and mobile apps. He also explains the benefits of using AuthZed, such as increased security and improved product velocity. The conversation concludes with a discussion on the AuthZed schema language and how permissions and roles are defined in the system. Jake Moshenko introduces the concept of permissions and relations in the context of access control. He explains how permissions can be granted to users for specific actions on resources, and how relationships between users and objects are defined. Jake also discusses the flexibility of defining roles and the granularity of permissions. He demonstrates how permissions can be visualized and edited in a user interface, and highlights the benefits of using a startup solution for access control. The conversation concludes with a discussion on the importance of leveraging existing tools and trusting innovative startups.
Takeaways
Permissions can be granted to users for specific actions on resources, such as read, write, and admin privileges.
Relations define the relationships between users and objects, allowing users to be readers, writers, or admins of a particular object.
Roles can be used to group multiple privileges or permissions together, providing a higher level of access.
Design time actions involve configuring the access control system, while runtime actions involve making API calls to enforce permissions.
When considering building or buying a solution, it is important to focus on core competencies and leverage existing tools and services.
Chapters
00:00 Introduction and Background
01:04 The Problem of Permissions at Scale
05:25 Implementing Authorization for Different Client Types
06:46 Integration with Backend and Web Applications
10:24 Implementing Permissioning for Mobile Apps
14:25 Benefits of Using AuthZed for Permissioning
22:00 Granting Access to Resources with AuthZed API
25:11 Defining Permissions and Roles in AuthZed
30:42 Introduction to Permissions and Relations
31:11 Understanding Permissions and Roles
32:20 Decoupling Relationships and Actions
33:36 Granularity of Permissions
34:14 Grouping Privileges into Roles
36:01 Design Time and Runtime Actions
36:46 Visualizing and Editing Permissions
39:33 Trusting a Startup
53:36 Building vs. Buying Solutions
58:36 The Value of Innovation and Trust
Monday Mar 11, 2024
Practical Tips to handle Tech Layoffs
Monday Mar 11, 2024
Monday Mar 11, 2024
In this podcast, Krish discusses the impact of layoffs and how individuals can better prepare themselves for such situations. He emphasizes the importance of continuous learning and expanding one's skill set to stay competitive in the job market. Krish also advises against becoming too attached to a company and building a lifestyle around the highest pay, as these can lead to difficulties in the event of a layoff. He reminds listeners that a company is not a family and encourages them to enjoy their time off and give back to the community.
Takeaways
Continuous learning is crucial for staying competitive in the job market.
Avoid becoming too attached to a company and build a lifestyle around the lowest pay to mitigate the impact of a layoff.
Recognize that a company is not a family and maintain a healthy separation.
Take the opportunity of job loss to expand your horizons and learn new skills.
Focus on adding value to the organization to stay relevant and stand out.
While there is competition, there is also a dearth of good and smart people, so being committed and passionate can make a difference.
Enjoy your time off and use it to recharge and explore new opportunities.
Remember that a job is just a job and there are other aspects of life to prioritize.
Give back to the community and share your knowledge and experiences with others.
Chapters
00:00 Introduction
00:35 Summary of Previous Podcast
01:14 Preparing for Layoffs
04:00 Limited Attachment
05:00 Lifestyle and Financial Planning
05:45 Company is Not Your Family
06:06 Expanding Horizons
09:01 Adding Value
12:34 Competition and Dearth of Good People
13:48 Enjoying Time Off
16:16 Perspective on Job Loss
16:32 Giving Back
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 Mar 08, 2024
Stock Trading for Dummies: A high level introduction
Friday Mar 08, 2024
Friday Mar 08, 2024
For Entertainment Purposes only.
In this podcast episode, Krish Palaniappan introduces the idea of creating a series of podcasts on trading stocks, which is a departure from their usual software-related topics. He mentions that while Snowpal is not in the business of trading and does not claim to be experts in finance, they have some knowledge and experience in trading. Krish explains that the motivation behind this series is to share their learnings and provide entertainment on the topic. He also emphasizes that listeners should seek qualified sources for learning finance and trading.
Takeaways
Snowpal is planning to create a series of podcasts on trading stocks, which is a departure from their usual software-related topics.
The motivation behind the trading series is to share their learnings and provide entertainment on the topic.
Snowpal acknowledges that they are not experts in finance and trading, and listeners should seek qualified sources for learning finance.
The trading series will cover topics such as opening an account, buying stocks, basic analysis, placing trades, and understanding trading terminologies.
Chapters
00:00 Introduction and Background
00:53 Engaging in New Topics
01:35 Interest in Trading
03:11 Podcast Disclaimer
04:07 Topics to Cover
05:33 Exploring Trading Terminologies
06:02 Sharing Knowledge and Entertainment
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