{"podcast":{"title":"Go Time: Golang, Software Engineering","slug":"go-time-golang-software-engineering","podcast_index_feed_id":218840,"rss_url":"https://changelog.com/gotime/feed","website_url":"https://changelog.com/gotime","image_url":"https://cdn.changelog.com/uploads/covers/go-time-original.png?v=63725770357","author":"Changelog Media","episode_count":347,"summary":"Your source for wide-ranging discussions from all around the Go community. Panelists include Mat Ryer, Jon Calhoun, Natalie Pistunovich, Johnny Boursiquot, Angelica Hill, Kris Brandow, and Ian Lopshire. We discuss cloud infrastructure, distributed systems, microservices, Kubernetes, Docker... oh and also Go! Some people search for GoTime or GoTimeFM and can't find the show, so now the strings GoTime and GoTimeFM are in our description too.","last_synced_at":null,"page_url":"https://stenobird.com/podcast/go-time-golang-software-engineering"},"episode":{"title":"Migrating from PHP to Go","slug":"migrating-from-php-to-go","published_at":"2024-05-22T22:00:00+00:00","page_url":"https://stenobird.com/podcast/go-time-golang-software-engineering/migrating-from-php-to-go","show_page_url":"https://stenobird.com/podcast/go-time-golang-software-engineering","url":"https://changelog.com/gotime/316","audio_url":"https://op3.dev/e/https://cdn.changelog.com/uploads/gotime/316/go-time-316.mp3","summary":"Engineers Matthew Boyle and Chris Shepherd share their firsthand experience transitioning services from PHP to Go at Curve and Cloudflare. The discussion covers the shift from a complete rewrite mindset to a gradual, incremental migration strategy.","meta_description":"Learn the practical realities of migrating from PHP to Go, including developer experience, performance gains, and managing incremental service updates.","key_points":["Main idea: Avoid the trap of a total rewrite; instead, focus on building new features in Go while leaving legacy PHP code intact","Practical takeaway: Leverage Go's smaller runtime profile and improved developer experience to optimize high-traffic services","Failure mode: Be wary of the complexity introduced by managing secondary databases or read-replicas that may suffer from significant replication lag","Main idea: Modern LLMs can significantly accelerate the debugging process by interpreting complex compiler errors that previously required manual research","Practical takeaway: Use OpenAPI specifications and automated tools like Speakeasy to maintain consistent SDKs across different languages during a migration"],"chapters":[{"start_ms":335000,"title":"The Incremental Migration Strategy","summary":"Discussing why the team moved away from a full rewrite in favor of building new components in Go while maintaining existing PHP services."},{"start_ms":600000,"title":"Debugging in the Age of LLMs","summary":"How modern AI tools have transformed the experience of interpreting complex error messages and compiler output."},{"start_ms":855000,"title":"Risks of Distributed Data","summary":"The challenges of managing data consistency and the dangers of replication lag in secondary databases."},{"start_ms":1385000,"title":"Performance and Developer Experience","summary":"Comparing the resource footprint and debugging workflows between PHP and Go."},{"start_ms":1645000,"title":"Automating API SDKs","summary":"A deep dive into using OpenAPI specs and Speakeasy to automate the generation and maintenance of SDKs."},{"start_ms":2205000,"title":"The Role of AI in Project Structure","summary":"Exploring how AI can assist in architectural decisions and project scaffolding."},{"start_ms":3025000,"title":"Modern Framework Scaffolding","summary":"Comparing the ease of project generation in PHP frameworks like Laravel to the Go ecosystem."}],"topics":["PHP","Go","Software Migration","Microservices","API Development","Developer Experience","Cloud Computing","LLMs"],"duration_seconds":3578,"processing_state":"processed","actions":[{"name":"request_transcript","method":"POST","url":"https://stenobird.com/v1/public/podcasts/go-time-golang-software-engineering/episodes/migrating-from-php-to-go/transcription-requests","description":"Idempotently request low-priority transcript generation for this episode."},{"name":"read_markdown","method":"GET","url":"https://stenobird.com/podcast/go-time-golang-software-engineering/migrating-from-php-to-go.md","description":"Read the agent-friendly Markdown representation of this episode resource."}]}}