Adventures in Software Engineering

Join us as we share the projects, technologies, and team dynamics that shaped our internship experience

--

Authors: Ameen Ashadhullah M (CDP Intern) and Himanshu Singh (CDP Intern)

Himanshu Singh (left) and Ameen Ashadhullah M (right)

Hello, readers! We are Himanshu and Ameen, Software Engineering Interns at Guidewire Software. We explored diverse projects and technologies over our 3-month internship on the dynamic Cloud Data Platform team, gaining invaluable experience and insights into cloud-based data solutions.

Join us as we share our adventures from the world of software engineering, where everyday challenges turned into exciting learning opportunities. We’re excited to recount the projects, technologies, and team dynamics that shaped our internship experience. Whether it’s exploring AWS services or embracing agile methodologies, we look forward to sharing our collective journey with you.

Now, let’s dive into the details of our internship at Guidewire Software!

Learning and Development

Throughout our internship, we embarked on a structured learning journey that equipped us with essential skills and knowledge in cloud data platform technologies. Here are some of the key tools and technologies we had the opportunity to work with:

  • PostgreSQL/MySQL and logical replication
  • REST API development
  • Git for version control
  • AWS services such as Lambda, EC2, S3, Athena, Quicksight, IAM, and DynamoDB
  • Frameworks like SpringBoot, Django, and Jutro (React based framework)
  • TeamCity for continuous integration and deployment (CI/CD) (Foundation)

At Guidewire, we had ample time to thoroughly learn and understand these technologies and concepts, ensuring we were not rushed and could absorb the material effectively. This structured learning plan provided us with a solid foundation to understand these tools and concepts, empowering us to contribute effectively to our respective projects. We gained hands-on experience with tasks ranging from database management with PostgreSQL to building REST APIs and leveraging various AWS services.

Collaborating with our team and leveraging their expertise was instrumental in overcoming challenges and deepening our understanding of these technologies. Our internship not only enhanced our technical skills but also emphasized the importance of continuous learning and adaptation in a dynamic industry like cloud computing. This foundational knowledge has been invaluable in our project experiences and professional growth.

Project Experience

In our roles within the Cloud Data Platform team, we had the opportunity to contribute to significant projects that showcase the diverse capabilities of our team. One of the pivotal projects we engaged with is the Data Integrity Service (DIS), a cornerstone of Guidewire’s Cloud Data Platform. The DIS is responsible for continuously monitoring data pipelines, ensuring data integrity, providing insights and alerts, and facilitating root cause analysis for data loss incidents. This service plays a pivotal role in maintaining the reliability and accuracy of data within the platform.

Automated DIS Operational Insights Dashboard

As part of our internship experience, we created an automated DIS Operational Insights Dashboard to provide crucial insights for the internal team, particularly Product Management. This project involved a comprehensive understanding of DIS architecture, the codebase, and AWS services utilized within the platform.

Technical Steps:

Understanding Data Storage:
The Data Integrity Service leverages a combination of data lake and data warehouse principles to maximize the efficiency and flexibility of a lake house architecture. In this context, we learned and applied the following concepts:

  • Cloud Storage: We utilize Amazon S3 as our primary cloud storage solution.
  • File Format: Data is stored in the Parquet file format, known for its efficient compression and encoding capabilities.
  • Table Formats: We use Hive and Iceberg table formats, each serving specific use cases within our data management strategy.
  • Query Engine: AWS Athena is employed as our query engine, enabling efficient data retrieval from hive/iceberg tables.
  • Analytics Jobs: Various analytics jobs, such as data loss analysis, are executed via AWS Lambda functions.
  • Data Consumption: Insights are consumed through AWS QuickSight and APIs, facilitating both visual and programmatic access to data.

Querying with Athena: Leveraging the AWS Athena query engine, we retrieved data efficiently from hive/iceberg tables to extract meaningful insights.

Dashboard Creation with Quicksight: Using AWS Quicksight, we created analysis and dashboard visualizations based on the queried dataset.

Dashboard Features:

  • Provides insights into the count of validated data, data loss incidents, and data delivery rates.
  • Includes various filters for customization and drill-down capabilities, enabling detailed analysis and reporting.

Challenges Faced: We encountered various blockers during the process, such as data retention limitations and querying timeouts. Through collaborative efforts with our teammates, we devised solutions to overcome these challenges.

Cloud Formation for Deployment: Finally, we acquired skills in AWS CloudFormation to deploy the dashboard across different accounts, ensuring seamless accessibility.

Cost Analysis Dashboard

During our internship, we collaborated with multiple teams to build an automated Cost Analysis Dashboard, leveraging a range of technologies and tools:

Backend Development with Django: Developed the backend logic using the Django framework to handle data processing and business logic.

Frontend Design with Jutro UI: Implemented the frontend interface using Jutro UI to create a user-friendly dashboard experience.

Database Integration with MySQL: Integrated a MySQL database hosted on an AWS EC2 instance to store and retrieve dashboard data.

In addition to dashboard development, we successfully resolved multiple bugs across the platform, ensuring smooth functionality and optimal performance. This comprehensive experience equipped us with valuable skills in backend development, front-end design, and troubleshooting within a cloud-based environment.

Project Outcome and Impact

Through these projects, we not only expanded our technical competencies but also gained firsthand experience in tackling real-world challenges within a cloud data platform environment. Our internship provided us with opportunities to apply our skills, collaborate effectively, and contribute to impactful solutions that drive innovation within Guidewire’s Cloud Data Platform.

Agile Methodology and Collaboration

During our internship, we embraced agile methodologies by participating in daily scrum stand-up meetings and sync-up sessions. These practices facilitated effective communication within the team, enabling us to plan our work, discuss challenges, and explore different solutions collaboratively.

We worked in two-week sprints, where we developed and resolved tasks within the sprint cycle. At the end of each sprint, we conducted test automation using TeamCity CI/CD. If everything passed successfully, we created a pull request for review and, upon approval, deployed the updates using TeamCity’s automated deployment process.

Applying agile practices to our project work helped us prioritize tasks, adapt to changing requirements, and iterate on solutions efficiently. We learned the importance of regular feedback, flexibility, and teamwork in delivering impactful software solutions. This experience has equipped us with valuable skills that we can carry forward in our careers as software engineers.

Team Dynamics and Company Culture

Our internship at Guidewire Software was characterized by vibrant team dynamics and an inclusive company culture. Regular in-person meetings, coffee chats, and team-building activities fostered open communication and mutual respect among colleagues. These interactions strengthened our professional relationships and enhanced our sense of belonging within the team.

Participating in coffee chats and team games provided valuable opportunities to bond with colleagues in a relaxed setting. Guidewire’s commitment to fostering connections among employees created a positive and supportive work environment, making our internship experience truly rewarding. The emphasis on teamwork and camaraderie underscored the importance of collaboration in achieving shared goals within a dynamic workplace.

The Adventure Continues

Our internship at Guidewire Software has been an enriching journey filled with valuable experiences and learning opportunities. From diving into cloud data platform technologies to embracing agile methodologies and collaborating within a vibrant team, we’ve gained practical skills that will shape our careers.

Building automated DIS Operational Insights and Cost Analysis Dashboards allowed us to tackle real-world challenges and expand our technical competencies. Our interactions in an inclusive company culture emphasized teamwork and mutual support, fostering strong professional relationships.

As we move forward in our software engineering careers, we’re grateful for the skills, experiences, and friendships gained during this internship. Thank you for joining us on this rewarding journey through the world of software engineering at Guidewire Software!

If you want to work on our Engineering teams building cutting-edge cloud technologies that make Guidewire the cloud leader in P&C insurance, please apply at https://careers.guidewire.com.

--

--

Guidewire Engineering Team
Guidewire Engineering Blog

Guidewire Engineers regularly write about how they are building a range of technologies to fuel P&C industry innovation.