Conf42 Golang 2024
2024
List of videos

Premiere - Conf42 Golang 2024
Support our mission ➤ https://www.conf42.com/support Schedule, Lineup & RSVP ➤ https://www.conf42.com/golang2024 Join Discord ➤ https://discord.gg/DnyHgrC7jC Upcoming CFPs ➤ https://www.papercall.io/events?cfps-scope=&keywords=conf42 0:00 Intro cloud 0:45 Julien Breux - https://www.conf42.com/Golang_2024_Julien_Breux_test_testcontainers_container 1:23 Mohamed Abdelrhman - https://www.conf42.com/Golang_2024_Mohamed_Abdelrhman_kubernetes 1:50 Thorsten Hans - https://www.conf42.com/Golang_2024_Thorsten_Hans_serverless_webassembly deep dive 2:26 Raghav Roy - https://www.conf42.com/Golang_2024_Raghav_Roy_coroutines 2:52 Chinmay Naik - https://www.conf42.com/Golang_2024_Chinmay_Naik_concurrency_gigabyte_realworld 3:18 Rangarajan Lakshminarayanachar - https://www.conf42.com/Golang_2024_Rangarajan_Lakshminarayanachar_strategic_playbooks_mapped_lacrosse frameworks 4:08 Anais Dotis-Georgiou - https://www.conf42.com/Golang_2024_Anais_DotisGeorgiou_leveraging_apache_flight 4:34 Alexandre Evangelista de Souza - https://www.conf42.com/Golang_2024_Alexandre_Evangelista_de_Souza_langchain 4:58 Aryan Mehrotra - https://www.conf42.com/Golang_2024_Aryan_Mehrotra_revolutionize_gofr_observable lessons learned 5:25 Dmitry Korolev - https://www.conf42.com/Golang_2024_Dmitry_Korolev_common_mistakes 5:44 Andrew Williams - https://www.conf42.com/Golang_2024_Andrew_Williams_love_building_apps 6:15 Alessio Greggi - https://www.conf42.com/Golang_2024_Alessio_Greggi_secured_project_tests performance 6:47 Kirill Parasotchenko - https://www.conf42.com/Golang_2024_Kirill_Parasotchenko_system_design_mistakes 7:15 Marco Marino - https://www.conf42.com/Golang_2024_Marco_Marino_performance_memory_optimization 7:44 Yashvardhan Kukreja - https://www.conf42.com/Golang_2024_Yashvardhan_Kukreja_profileguided_optimization 8:13 Ivan Lemeshev - https://www.conf42.com/Golang_2024_Ivan_Lemeshev_resilient_traffic_spikes security 8:46 Munawar Hafiz - https://www.conf42.com/Golang_2024_Munawar_Hafiz_bridging_security_tool 9:12 Prabesh Thapa - https://www.conf42.com/Golang_2024_Prabesh_Thapa_optimizing_performance_security tools 9:49 Sandeep Bhat - https://www.conf42.com/Golang_2024_Sandeep_Bhat_custom_load_balancer_envoy 10:15 Eugene Khabarov - https://www.conf42.com/Golang_2024_Eugene_Khabarov_build_enough_bazel 10:45 Haseeb Majid - https://www.conf42.com/Golang_2024_Haseeb_Majid_using_nix_reproducible 11:27 thank you!
Watch
How to test your code with Testcontainers in Go | Julien Breux | Conf42 Golang 2024
Read the abstract ➤ https://www.conf42.com/Golang_2024_Julien_Breux_test_testcontainers_container Other sessions at this event ➤ https://www.conf42.com/golang2024 Support our mission ➤ https://www.conf42.com/support Join Discord ➤ https://discord.gg/DnyHgrC7jC Chapters 0:00 intro 0:20 preamble 1:58 demo
Watch
Go for Kubernetes | Mohamed Abdelrhman | Conf42 Golang 2024
Read the abstract ➤ https://www.conf42.com/Golang_2024_Mohamed_Abdelrhman_kubernetes Other sessions at this event ➤ https://www.conf42.com/golang2024 Support our mission ➤ https://www.conf42.com/support Join Discord ➤ https://discord.gg/DnyHgrC7jC Chapters 0:00 intro 0:20 agenda 1:12 client-go, api, and apimachinery - demo 20:14 welcome to operatorhub.io
Watch
Go-ing Serverless with WebAssembly | Thorsten Hans | Conf42 Golang 2024
Read the abstract ➤ https://www.conf42.com/Golang_2024_Thorsten_Hans_serverless_webassembly Other sessions at this event ➤ https://www.conf42.com/golang2024 Support our mission ➤ https://www.conf42.com/support Join Discord ➤ https://discord.gg/DnyHgrC7jC Code on Github ➤ https://github.com/thorstenhans/conf42-golang-samples Chapters 0:00 intro 0:20 preamble 0:40 thornsten hans 1:04 agenda 1:45 webassembly intro 8:23 the tour of spin 9:59 demo: spin & tinygo 15:03 demo: building serverless apps with tinygo 29:19 running serverless apps 30:13 demo: running in fermyon cloud and open-source spinkube 36:55 key takeaways 38:22 thank you!
Watch
Coroutines and Go | Raghav Roy | Conf42 Golang 2024
Read the abstract ➤ https://www.conf42.com/Golang_2024_Raghav_Roy_coroutines Other sessions at this event ➤ https://www.conf42.com/golang2024 Support our mission ➤ https://www.conf42.com/support Join Discord ➤ https://discord.gg/DnyHgrC7jC Chapters 0:00 intro 0:20 preamble 0:25 whoami 0:41 what i will be covering 1:19 what are subroutines? 2:09 eager and closed 2:39 coroutines as generalised subroutines 4:25 comparing binary trees! 7:31 it's 1958 11:18 side note - the paper that coined the term "coroutines" 12:04 problems with coroutines 14:27 characteristics 15:15 classifying coroutines 15:33 control transfer mechanism - asymmetric, symmetric 16:56 first-class versus constrained coroutines 17:40 finally, stackfulness 18:36 full coroutines 18:56 cooperative multitasking 20:38 coroutines in go 21:21 coroutines, threads and generators 22:25 api for coroutines 32:54 runtime changes? 35:00 conclusions 35:51 references
Watch
Go Concurrency powering Gigabyte scale real-world data pipeline | Chinmay Naik | Conf42 Golang 2024
Read the abstract ➤ https://www.conf42.com/Golang_2024_Chinmay_Naik_concurrency_gigabyte_realworld Other sessions at this event ➤ https://www.conf42.com/golang2024 Support our mission ➤ https://www.conf42.com/support Join Discord ➤ https://discord.gg/DnyHgrC7jC Chapters 0:00 intro 0:20 preamble 0:27 about chinmay naik 1:04 mongodb to rdbms data migration 2:00 student collection (mongodb) 2:39 student table (postresql) 3:06 student - address and phone relationships 3:43 data migration - mongodb to postresql 4:45 how mongodb json data maps to sql 5:14 inserts are cool, what about updates and deletes in mongodb? 6:04 how do we migrate data? 7:07 mongo oplog (operation log) 7:37 what does oplog record look like? 8:35 when are we gerring to the golang concurrency? 8:41 sequential data pipeline 10:10 mongo oplog / two oplogs / postgresql 11:33 sequential pipeline performance 11:51 perf improvemwent - let's add worker pool 12:20 worker pool 13:21 worker pools v2.0 13:53 worker pool v2.0 performance 14:25 can you guess the problem? 15:01 worker pools v2.0 - the problem 16:08 back to drawing board? 16:18 fan-out for each database 19:18 concurrent data pipeline 21:06 performance comparison 21:27 resource utilization 22:46 concurrent data pipeline - improvement 23:42 16 databases and 128 collections per db 24:20 performance comparison 24:45 final concurrent data pipeline 25:30 key takeaways 27:38 keep learning
Watch
Graph your Game: Strategic playbooks unveiled | Rangarajan Lakshminarayanachar | Conf42 Golang 2024
Read the abstract ➤ https://www.conf42.com/Golang_2024_Rangarajan_Lakshminarayanachar_strategic_playbooks_mapped_lacrosse Other sessions at this event ➤ https://www.conf42.com/golang2024 Support our mission ➤ https://www.conf42.com/support Join Discord ➤ https://discord.gg/DnyHgrC7jC Chapters 0:00 intro 0:20 preamble 0:41 why the drawing board is important! 1:53 case 1: player focus 3:03 a graph says a million words 3:32 case 2: team focus 4:08 a graph speaks a million words 4:22 knowledge graphs 4:57 why cypherql? 6:07 10.000 feet 8:07 ground level - neo4j model 8:43 ground level golang awesomeness - connect 9:21 ground level - go in lacrosse 10:28 teaser - cosine similarity 11:30 lot more 11:49 beyond just numbers 12:34 links 12:44 retrospective - takeaways
Watch
Leveraging the Apache Flight Go Client and InfluxDB | Anais Dotis-Georgiou | Conf42 Golang 2024
Read the abstract ➤ https://www.conf42.com/Golang_2024_Anais_DotisGeorgiou_leveraging_apache_flight Other sessions at this event ➤ https://www.conf42.com/golang2024 Support our mission ➤ https://www.conf42.com/support Join Discord ➤ https://discord.gg/DnyHgrC7jC Chapters 0:00 intro 0:20 preamble 0:26 about anais 1:32 brought to you by influxdb university 2:13 a critical component of modern data pipelines 3:49 time series data types 5:05 time series databases 7:24 influxdb 3.0 9:28 agenda 9:49 what is the influxdb v3 go client library 10:05 query advantages 11:13 how the go client library works 11:37 requirements 13:20 installation 13:32 writing data to influxdb v3 with the go client library 17:52 query data with the go client library 19:45 resources + help
Watch
Langchain with Golang | Alexandre Evangelista de Souza | Conf42 Golang 2024
Read the abstract ➤ https://www.conf42.com/Golang_2024_Alexandre_Evangelista_de_Souza_langchain Other sessions at this event ➤ https://www.conf42.com/golang2024 Support our mission ➤ https://www.conf42.com/support Join Discord ➤ https://discord.gg/DnyHgrC7jC Chapters 0:00 intro 0:20 welcome to langchaingo 0:52 demo
Watch
Revolutionize Go Microservices with GoFr.dev | Aryan Mehrotra | Conf42 Golang 2024
Read the abstract ➤ https://www.conf42.com/Golang_2024_Aryan_Mehrotra_revolutionize_gofr_observable Other sessions at this event ➤ https://www.conf42.com/golang2024 Support our mission ➤ https://www.conf42.com/support Join Discord ➤ https://discord.gg/DnyHgrC7jC Chapters 0:00 intro 0:20 preamble 0:27 agenda 0:42 a little about gofr 1:10 key features 3:05 demo 11:04 conclusion 11:21 thank you
Watch
Common Mistakes in Golang and How to Avoid Them | Dmitry Korolev | Conf42 Golang 2024
Read the abstract ➤ https://www.conf42.com/Golang_2024_Dmitry_Korolev_common_mistakes Other sessions at this event ➤ https://www.conf42.com/golang2024 Support our mission ➤ https://www.conf42.com/support Join Discord ➤ https://discord.gg/DnyHgrC7jC Chapters 0:00 intro 0:20 preamble 0:33 arrays and slices 6:10 strings, runes and bytes 8:05 channels 11:53 goroutines 14:01 sync & atomic packages 18:45 defer 20:28 interfaces 22:17 vendoring peculiarities 24:01 conclusion
Watch
How Go taught me to love building apps again | Andrew Williams | Conf42 Golang 2024
Read the abstract ➤ https://www.conf42.com/Golang_2024_Andrew_Williams_love_building_apps Other sessions at this event ➤ https://www.conf42.com/golang2024 Support our mission ➤ https://www.conf42.com/support Join Discord ➤ https://discord.gg/DnyHgrC7jC Chapters 0:00 intro 0:20 preamble 0:34 about me 2:36 background: frustrations of gui development 5:07 go: a delightgul alternative 6:12 fyne: a new hope for app developers 6:41 an open source native app toolkit? 8:07 fyne toolkit stargazers 8:34 fyne runs on... 9:31 your first app in just minutes! 9:39 building our first - prerequisites 11:00 building our first app 14:28 markdown editor 18:46 testing and distribution 20:55 package 24:22 distribution 26:29 exploring further... 26:37 graphical capabilities 27:46 widgets 30:55 containers 32:42 dialogs 33:12 file and i/o 36:51 additional possibilities 37:51 3rd party components too! 38:35 so many possibilities 38:57 other fyne apps 39:22 and fysion! 39:42 and fyshos... 40:46 more about fyne 42:07 thank you
Watch
How we almost secured our project by writing more tests | Alessio Greggi | Conf42 Golang 2024
Read the abstract ➤ https://www.conf42.com/Golang_2024_Alessio_Greggi_secured_project_tests Other sessions at this event ➤ https://www.conf42.com/golang2024 Support our mission ➤ https://www.conf42.com/support Join Discord ➤ https://discord.gg/DnyHgrC7jC Chapters 0:00 intro 0:20 preamble 0:38 whoami 1:01 what is code coverage 1:34 code coverage with go 2:32 what is a seccomp profile 3:30 seccomp profile as artifact 5:20 extracting the syscalls 8:53 harpoon 13:20 the uretprobe issue 14:34 workaround 15:37 benefits of moving to libbpfgo 17:20 references / special thanks 17:41 thanks for your attention
Watch
System Design: Simple But Common Mistakes | Kirill Parasotchenko | Conf42 Golang 2024
Read the abstract ➤ https://www.conf42.com/Golang_2024_Kirill_Parasotchenko_system_design_mistakes Other sessions at this event ➤ https://www.conf42.com/golang2024 Support our mission ➤ https://www.conf42.com/support Join Discord ➤ https://discord.gg/DnyHgrC7jC Chapters 0:00 intro 0:20 preamble 0:29 issue 1. idempotent id 3:26 issue 2. external request inside transaction 6:23 issue 3. requesting service at the same time 8:12 issue 4. lack of rate limiter 9:14 issue 5. lack of memory limiter 10:39 issue 6. no retries 11:34 issue 7. there are retries but no backoff 12:27 backoff strategies 13:46 thank you
Watch
Go Performance Unleashed | Marco Marino | Conf42 Golang 2024
Read the abstract ➤ https://www.conf42.com/Golang_2024_Marco_Marino_performance_memory_optimization Other sessions at this event ➤ https://www.conf42.com/golang2024 Support our mission ➤ https://www.conf42.com/support Join Discord ➤ https://discord.gg/DnyHgrC7jC Chapters 0:00 intro 0:20 preamble 0:31 about myself 1:04 agenda 1:44 first things first... 2:11 why a new runtime scheduler is needed? 3:10 a java example 3:30 the challenge 5:14 go runtime scheduler 7:07 csp (communicating seq. processes) 8:14 another java comparison 9:10 os threads have a fixed-size stack for saving the state 9:49 go memory model 11:08 bemchmarking preconditions 11:50 how to write a benchmark 12:56 becnhmarking two functions 13:49 create and run the benchmark functions 15:07 how to read a benchmark 15:25 create and run the benchmark functions 15:59 how to read a benchmark 16:43 using benchstat to compare the results 17:56 profiling 18:35 testing again... 22:19 ... now let's analyse the faster one 23:53 be aware of compiler optimisations 24:33 best practices 25:53 some study references...
Watch
Boosting your code with Profile-Guided Optimization | Yashvardhan Kukreja | Conf42 Golang 2024
Read the abstract ➤ https://www.conf42.com/Golang_2024_Yashvardhan_Kukreja_profileguided_optimization Other sessions at this event ➤ https://www.conf42.com/golang2024 Support our mission ➤ https://www.conf42.com/support Join Discord ➤ https://discord.gg/DnyHgrC7jC Chapters 0:00 intro 0:20 preamble 0:33 whoami 0:59 let's talk about compilation 1:51 the "magic" in compiler magic 3:00 more magic? compiler optimizations! 4:56 some examples 6:09 "inlining" - another interesting optimization 7:58 but what if? 9:32 just have the right amount of inlining 10:31 but compilers don't know a lot 10:46 clearly, compilers need more info! 11:32 feedback-driven optimization (fdo) 11:56 early days of fdo - instrumentation-based 12:48 looks solid on paper, but is it really that good? 13:36 so what do we want? let's talk first principles 13:52 easy enough 14:25 profiling! 14:56 how does it work then? 16:18 enter profile-guided optimization - pgo 16:49 a very simpel server 17:39 but if you notice carefully 18:14 inlining could've been useful here 18:56 let's run and profile the program 19:38 we have all these files now 19:58 now, let's compule with pgo 21:31 let's load test the old and new binaries 22:21 let's compare the performances 23:16 demo 30:06 conclusion 30:39 slied and ssociated content 30:45 references - the real gs 31:01 let's connect 31:07 thanks for your time folks!
Watch
Make your service more resilient in case of traffic spikes | Ivan Lemeshev | Conf42 Golang 2024
Read the abstract ➤ https://www.conf42.com/Golang_2024_Ivan_Lemeshev_resilient_traffic_spikes Other sessions at this event ➤ https://www.conf42.com/golang2024 Support our mission ➤ https://www.conf42.com/support Join Discord ➤ https://discord.gg/DnyHgrC7jC Chapters 0:00 intro 0:20 preamble 1:03 ivan lemeshev 1:42 agenda 2:42 server overload 6:06 common causes of traffic bursts 9:12 example of server overload 14:43 rate limiting 16:43 common rate-limiting algorithms 16:55 fixed window counter algorithm 20:14 sliding window log algorithm 26:58 token bucket algorithm 29:08 leaky bucket algorithm 31:27 example of token bucket algorithm 35:26 comparison of results 36:54 rate limiter packages 37:33 lead shedding 39:19 example of loading shedding 42:57 comparison of results 43:20 to read: https://aws.amazon.com/builders-library/using-load-shedding-to-avoid-overload/ 43:38 thank you
Watch
Bridging the Security Tool Gap for Go | Munawar Hafiz | Conf42 Golang 2024
Read the abstract ➤ https://www.conf42.com/Golang_2024_Munawar_Hafiz_bridging_security_tool Other sessions at this event ➤ https://www.conf42.com/golang2024 Support our mission ➤ https://www.conf42.com/support Join Discord ➤ https://discord.gg/DnyHgrC7jC Chapters 0:00 intro 0:20 preamble 1:01 a security failutr in a business incident 1:20 detection tools fall short 3:22 automated fixing is the future 3:56 icr delivers fixers for java, python and go 5:30 surgical precision saves time 6:33 icr overview 8:44 icr demo 18:18 conclusion
Watch
Optimizing Performance and Security: Crafting Robust APIs | Prabesh Thapa | Conf42 Golang 2024
Read the abstract ➤ https://www.conf42.com/Golang_2024_Prabesh_Thapa_optimizing_performance_security Other sessions at this event ➤ https://www.conf42.com/golang2024 Support our mission ➤ https://www.conf42.com/support Join Discord ➤ https://discord.gg/DnyHgrC7jC Chapters 0:00 intro 0:20 preamble 0:45 whoami 0:59 things we want our api to be 1:19 secure - authentication / authorization 4:26 validate unputs 4:55 log user activity (audit trails) 5:52 use appropriate response 6:37 password management 8:16 use config file vs env vars 9:31 mask sensitive data 10:04 implement rate limiting 12:01 secure communication 12:33 patch your dependencies 13:06 fast - use optimized database queries 14:24 implement caching 15:24 pagination 16:24 break into smaller service 17:26 robust 17:36 fail early fail fast 18:31 use appropriate status code 19:52 don't just check errors, handle them gracefully 20:58 context passing 22:32 acid compliance 23:48 context passing 23:52 use structured logs 24:19 implement health checks 25:33 handle retries gracefully 27:04 expose metrics 27:53 version for maintainability 28:38 conclusion 28:58 thank you
Watch
Developing custom Load Balancer using Envoy | Sandeep Bhat | Conf42 Golang 2024
Read the abstract ➤ https://www.conf42.com/Golang_2024_Sandeep_Bhat_custom_load_balancer_envoy Other sessions at this event ➤ https://www.conf42.com/golang2024 Support our mission ➤ https://www.conf42.com/support Join Discord ➤ https://discord.gg/DnyHgrC7jC Chapters 0:00 intro 0:20 preamble 0:29 sandeep bhat 1:02 what is load balancing 3:33 cloud native options 4:20 envoy 4:56 features of envoy 5:34 key components of envoy 7:49 requirements of custom load balancer 8:45 components of envoy based load balancer 10:31 envoy - service 12:09 snippet - controller 13:54 packaging - cloud init 14:48 sample - cloud init 15:19 requirements of cusotm load balancer 15:40 components of envoy based load balancer 16:04 cost comparison 17:22 demo 19:46 thank you
Watch
When "go build" is not enough: Introduction to Bazel | Eugene Khabarov | Conf42 Golang 2024
Read the abstract ➤ https://www.conf42.com/Golang_2024_Eugene_Khabarov_build_enough_bazel Other sessions at this event ➤ https://www.conf42.com/golang2024 Support our mission ➤ https://www.conf42.com/support Join Discord ➤ https://discord.gg/DnyHgrC7jC Chapters 0:00 intro 0:20 preamble 0:30 agenda 0:39 build and dependencies - what is "go build"? 1:01 do we have all of the *.go files from the beginning? 1:25 dependencies: part I 1:33 where do we run our build? 1:45 dependencies: part II 2:04 publishing 2:32 dependencies: part III 2:45 what is the dependency, btw? 2:55 how do we control our dependencies? 3:31 what else should we consider during the build process? 4:00 the output of the build process aka artifacts 4:16 why "go build" isn't enough? 4:25 problem scope 5:07 bazel 5:54 build & cache 6:40 hermeticity & sandboxing 7:45 hello world generator 8:25 and with bazel 8:59 hellow world generator: bazelified 9:39 starlark 9:53 workspace 10:32 go/build.bazel 11:16 build & run 11:44 demo: microservices, kubernetes and tilt 13:30 labels 14:37 should we write build files manually? 15:19 what else? 15:21 bazel query 15:29 dependency graph 15:43 extensibility 16:12 more info on bazel 16:21 thank you
Watch
Using Nix to create reproducible Golang development environments | Haseeb Majid | Conf42 Golang 2024
Read the abstract ➤ https://www.conf42.com/Golang_2024_Haseeb_Majid_using_nix_reproducible Other sessions at this event ➤ https://www.conf42.com/golang2024 Support our mission ➤ https://www.conf42.com/support Join Discord ➤ https://discord.gg/DnyHgrC7jC Chapters 0:00 intro 0:20 preamble 0:48 who is this for? 2:12 what is nix? 3:52 declarative 5:21 what is the problem? 6:50 summary 8:11 golang 9:07 tools.go 10:30 creative our first dev environment 10:40 flake.nix 13:02 summary 13:31 direnv 14:07 usage 15:14 remote environments 15:44 pre-commit 17:22 summary 17:52 how does nix work? 19:46 evaluation 20:26 derivations 21:41 advantages 25:22 nix flakes 26:14 flake.nix 26:26 flake.lock 27:35 ci 27:50 gitlab ci 29:15 ci logs 29:41 why not docker? 31:06 further 31:13 slides, links, resources 31:32 reference & thanks
Watch