From 66fe28ee98ddd87af107c775cddd11de8798aea6 Mon Sep 17 00:00:00 2001 From: David Odohi Date: Sat, 21 Sep 2024 13:45:24 +0100 Subject: [PATCH 1/2] add ApiToolkit workshop --- frontend/src/utils/sessions.ts | 1141 ++++++++++++++++---------------- 1 file changed, 578 insertions(+), 563 deletions(-) diff --git a/frontend/src/utils/sessions.ts b/frontend/src/utils/sessions.ts index 55f8293..b2f5272 100644 --- a/frontend/src/utils/sessions.ts +++ b/frontend/src/utils/sessions.ts @@ -1,569 +1,584 @@ import { ISession } from "../components/SessionCard.tsx"; const SessionsList = (): Array => { - return [ - { - startTime: '7:30AM', - date: '7:30AM - 9:00AM EAT, Fri Oct 18th', - duration: '1h 30Min', - title: 'Registration And Gopher Merch Shop', - room: 'iHub', - description: "Registration And Gopher Merch Shop", - level: "All attendees", - name: "", - role: "", - company: "", - titleDescription: "", - day: "18th" - }, - { - startTime: '9:00AM', - date: '9:00AM - 11:00AM EAT, Fri Oct 18th', - duration: '2h', - title: 'Workshop (TBA)', - room: 'Main Conference Room, iHub', - description: "Detail coming soon", - level: "All attendees", - name: "", - role: "", - company: "", - titleDescription: "", - day: "18th" - }, - { - startTime: '11:00AM', - date: '11:00AM - 11:15AM EAT, Fri Oct 18th', - duration: '15Min', - title: 'Coffee Break', - room: 'iHub', - description: "", - level: "All attendees", - name: "", - role: "", - company: "", - titleDescription: "", - day: "18th" - }, - { - startTime: '11:15AM', - date: '11:15AM - 1:15PM EAT, Fri Oct 18th', - duration: '2h', - title: 'Workshop (TBA)', - room: 'Main Conference Room, iHub', - description: "Detail coming soon", - level: "All attendees", - name: "", - role: "", - company: "", - titleDescription: "", - day: "18th" - }, - { - startTime: '1:15PM', - date: '1:15PM - 2:00PM EAT, Fri Oct 18th', - duration: '45Min', - title: 'Lunch Break', - room: 'iHub', - description: "", - level: "All attendees", - name: "", - role: "", - company: "", - titleDescription: "", - day: "18th" - }, - { - startTime: '2:00PM', - date: '2:00PM - 2:25PM EAT, Fri Oct 18th', - duration: 'Lightening Talk 25 Min', - title: 'Unveiling the Power of Interfaces: Go’s Secret Weapon', - room: 'Main Conference Hall, iHub', - description: "Interfaces are one of the most powerful and versatile features in Go, yet their true potential is often overlooked or underutilized. In this talk, we’ll unveil the secrets behind interfaces and demonstrate how to harness their full power to write more maintainable, testable, and flexible code. \n\n" + - "What You’ll Learn \n- Understand the fundamental principles of interface design in Go\n" + - "- Learn best practices for implementing interfaces effectively", - level: "All attendees", - name: "Sammy Oina", - role: "S/W Engineer", - company: "", - titleDescription: "", - day: "18th" - }, - { - startTime: '2:25PM', - date: '2:25PM - 2:50PM EAT, Fri Oct 18th', - duration: 'Lightening Talk 25 Min', - title: 'GoFr: High-Performance Go Framework for Scalable Web Applications', - room: 'Main Conference Hall, iHub', - description: "Effortless Development with GoFr" + - "\n" + - "

- Intuitive API Minimize boilerplate code and focus on core application logic with GoFr’s clean and concise API.

\n" + - "

- Automatic Code Generation: Streamline repetitive tasks with optional code generation capabilities (e.g., RESTHandlers).

\n" + - "\n" + - "

Enhanced Observability

" + - " \n" + - "\n" + - "

Seamless Database Connectivity

" + - " \n" + - "\n" + - "

Robust Security

" + - " \n" + - "\n" + - "

Why Choose GoFr?

" + - " ", - level: "All attendees", - name: "Aryan Mehrotra", - role: "S/W Engineer", - company: "", - titleDescription: "", - coPresenterName: 'Umang Mundhra', - coPresenterRole: 'S/W Engineer', - coPresenterCompany: '', - day: "18th" - }, - { - startTime: '2:50PM', - date: '2:50PM - 3:30PM EAT, Fri Oct 18th', - duration: 'Main Talk 40 Min', - title: 'CLEAN CODE IN GO', - room: 'Main Conference Hall, iHub', - description: "In the fast-paced world of software development, engineers often encounter codebases that are overly complex and difficult to maintain. These challenges can lead to frustration, decreased productivity, and a lack of enjoyment in your work. This talk, “Clean Code in Go” aims to address these issues by introducing you to the core principles of writing clean, efficient, and maintainable Go code.
" + - "
" + - "During this session, we’ll explore:

" + - "\n" + - "1. The Pitfalls of Over-Engineering: Understand how over-engineering can lead to cumbersome and error-prone code.\n" + - "
" + - "2. Key Principles of Clean Code: Discover practical guidelines and best practices for writing clean Go code that is easy to read, understand, and maintain.\n" + - "
" + - "3. Refactoring Techniques: Learn effective refactoring techniques to improve existing codebases without introducing bugs or regressions.\n" + - "
" + - "4. Real-World Examples: See how these principles are applied in real-world scenarios, transforming messy code into clean, elegant solutions.\n" + - "

" + - "Whether you are new to GO or an experienced developer, this talk will provide you with valuable insights and actionable strategies to enhance your coding practices. By adopting these principles, you’ll be able to create codebases that are not only robust and scalable but also a pleasure to work with.", - level: "All attendees", - name: "JA Asuquo", - role: "S/W Engineer", - company: "", - titleDescription: "", - day: "18th" - }, - { - startTime: '3:30PM', - date: '3:30PM - 4:10PM EAT, Fri Oct 18th', - duration: 'Main Talk 40 Min', - title: 'Event-Driven Architecture with Go and Kafka', - room: 'Main Conference Hall, iHub', - description: "This talk will explore event-driven architectures (EDA). We’ll unpack its core concepts, understand the problems it solves, and discover why it’s become a hot topic in building decoupled systems.\n" + - "

" + - "Next, we’ll shift gears to discuss Golang, a language known for its robust concurrency features. These features make Golang a powerful tool for building event-driven applications.\n" + - "

" + - "Finally, we’ll introduce Apache Kafka, a distributed streaming platform. We’ll explore how Golang and Kafka can be leveraged to create highly scalable and responsive event-driven applications.\n" + - "\n" + - "Throughout this session, I will talk about:\n" + - "

" + - "- Event-driven architecture, its core principles, components, common use cases, and benefits
" + - "- Kafka, its architecture, features and capabilities, and its role in EDA
" + - "- Go features that make it suitable for EDA
" + - "- Integrating Go with Kafka, demonstrating the setup and configuration, with code examples
" + - "- Showcase real-life examples of Go and Kafka in action
" + - "- Best practices and resource recommendation

" + - "By the end of this talk, attendees will have a deeper understanding of why the world is paying more attention to event-driven architectures and how they are revolutionizing the speed at which organizations can scale their services, respond to user requests, and enable real-time data processing.\n" + - "

" + - "Key Takeaways: - Comprehensive understanding of Event-driven architecture and the why behind it all - Understanding how to leverage Go and Kafka to build event-driven architectures - Knowledge of best practices and use cases for Go and Kafka in building EDAs - Inspiration to leverage EDAs for building efficient and scalable solutions.", - level: "All attendees", - name: "Amarachi Iheanacho", - role: "S/W Engineer", - company: "", - titleDescription: "", - day: "18th" - }, - { - startTime: '4:10PM', - date: '4:10PM - 5:30PM EAT, Fri Oct 18th', - duration: '80Min', - title: 'Closing Remarks | Networking', - room: 'iHub', - description: "", - level: "All attendees", - name: "", - role: "", - company: "", - titleDescription: "", - day: "18th" - }, - { - startTime: '7:30AM', - date: '7:30AM - 9:00AM EAT, Sat Oct 19th', - duration: '1h 30Min', - title: 'Registration And Gopher Merch Shop', - room: 'iHub', - description: "Registration And Gopher Merch Shop", - level: "All attendees", - name: "", - role: "", - company: "", - titleDescription: "", - day: "19th" - }, - { - startTime: '9:00AM', - date: '9:00AM - 10:00AM EAT, Sat Oct 19th', - duration: '1h', - title: 'Keynote', - room: 'Main Conference Hall, iHub', - description: "Keynote", - level: "All attendees", - name: "", - role: "", - company: "", - titleDescription: "", - day: "19th" - }, - { - startTime: '10:00AM', - date: '10:00AM - 10:40AM EAT, Sat Oct 19th', - duration: 'Main Talk 40 Min', - title: 'Effective Testing Strategies for Large Data Inserts into PostgreSQL Tables', - room: 'Main Conference Hall, iHub', - description: "This talk provides an overview of Go and PostgreSQL’s roles in high-performance data handling.\n" + - "

" + - "Go developers often struggle to guarantee the functionality and performance of their code when dealing with large data inserts into PostgreSQL databases. This can lead to data loss, slow performance, and ultimately, frustrated users. This talk tackles this challenge by focusing on robust testing strategies for Go functions handling massive data insertions.\n" + - "

" + - "We’ll explore a multi-layered approach:\n" + - "

" + - "Unit testing: Isolate and rigorously test individual functions interacting with PostgreSQL using mocks or dependency injection.\n" + - "

" + - "Integration testing: Move beyond units and validate how your Go functions work seamlessly with PostgreSQL in a dedicated test environment.\n" + - "

" + - "Performance testing: Measure execution time and throughput under real-world data volumes using benchmarking tools and identify bottlenecks with profilers.\n" + - "

" + - "By the end, you’ll be equipped with the knowledge to:\n" + - "

" + - "Craft comprehensive test suites for Go functions handling large data inserts.\n" + - "

" + - "Uncover performance issues before they impact production.\n" + - "

" + - "Gain confidence in your application’s stability and scalability.\n" + - "

" + - "This talk specifically focuses on testing Go code interacting with PostgreSQL, complementing popular ORMs like Gorm. The goal is to equip developers with strategies to minimize latency and maximize throughput in data operations.\n" + - "

" + - "The session sets the stage by explaining why these technologies are preferred for managing large data volumes and highlights real-world applications.", - level: "All attendees", - name: "Ufia Irene", - role: "S/W Engineer", - coPresenterName: "Orji Cecilia", - coPresenterRole: "S/W Engineer", - company: "", - titleDescription: "", - day: "19th" - }, - { - startTime: '10:40AM', - date: '10:40AM - 11:00AM EAT, Fri Oct 19th', - duration: '20Min', - title: 'Coffee Break', - room: 'iHub', - description: "", - level: "All attendees", - name: "", - role: "", - company: "", - titleDescription: "", - day: "19th" - }, - // { - // startTime: '11:00AM', - // date: '11:00AM - 11:40AM EAT, Sat Oct 19th', - // duration: 'Main Talk 40 Min', - // title: 'Hands-On Observability: Monitoring Go Applications with OpenTelemetry and Grafana', - // room: 'Main Conference Hall, iHub', - // description: "

Workshop Agenda

\n" + - // "
" + - // "

Setting the Stage:

\n" + - // " \n" + - // "
" + - // "

Instrumenting Your Go Code:

\n" + - // " \n" + - // "
" + - // "

Visualizing Insights with Grafana:

\n" + - // " \n" + - // "
" + - // "

Logging for Contextual Observability:

\n" + - // " \n" + - // "
" + - // "

Error Handling and Alerting:

\n" + - // " \n" + - // "\n" + - // "

Q&A Session and Open Discussion:

", - // level: "All attendees", - // name: "Desmond Obisi", - // role: "S/W Engineer", - // company: "", - // titleDescription: "", - // day: "19th" - // }, - { - startTime: '11:00AM', - date: '11:00AM - 11:40AM EAT, Sat Oct 19th', - duration: 'Main Talk 40 Min', - title: 'SDK Secrets: Unlocking API Magic', - room: 'Main Conference Hall, iHub', - description: "In this exploration of SDK development with Go, we will cover the “hows” and “whys” that every developer should know when building an SDK for their APIs. We will explore the foundational principles and best practices for building efficient, user-friendly, and robust SDKs. We will cover seamless API integrations for improved programmatic functionality. We will cover the basics, core design principles and implementation strategies you can leverage to ensure a successful SDK for your APIs. The session will wrap up with a live demo of an SDK, during which attendees will see firsthand the functionality and usefulness of this powerful tool, turning theoretical knowledge into practical skills. This session will benefit seasoned developers and developers starting with their Golang careers.", - level: "All attendees", - name: "Ehi Enabs", - role: "S/W Engineer", - company: "", - titleDescription: "", - day: "19th" - }, - { - startTime: '11:40AM', - date: '11:40AM - 12:05PM EAT, Sat Oct 19th', - duration: 'Lightening Talk 25 Min', - title: 'Building a Local Go Community as a Student', - room: 'Main Conference Hall, iHub', - description: "We will explore key steps such as identifying the right audience, organising engaging events, and leveraging online and offline resources to foster growth. I will also share insights on overcoming common obstacles, from balancing academic responsibilities to maintaining community engagement. Whether you’re a student looking to start your own community or an experienced developer seeking to expand your reach, this talk will offer practical advice and inspiration for growing a vibrant local tech ecosystem.\n" + - "
" + - "Join me to learn how you can make a meaningful impact in your community and turn your passion for technology into a collaborative, supportive network.", - level: "All attendees", - name: "Mudasiru Rasheed", - role: "S/W Engineer", - company: "", - titleDescription: "", - day: "19th", - twitter: 'taiwrash' - }, - { - startTime: '12:05PM', - date: '12:05PM - 12:45PM EAT, Sat Oct 19th', - duration: 'Main Talk 40 Min', - title: 'Understanding Entropy in Design Systems', - room: 'Main Conference Hall, iHub', - description: "

Taming Code Chaos: Reducing Entropy in Go Design Systems

\n" + - "
" + - "

Is your codebase spiraling out of control? High entropy can lead to unpredictable behavior, making your code difficult to maintain and scale. In this talk, we’ll dive into the concept of entropy in software design, focusing on practical strategies to bring order to your Go projects.

\n" + - "
" + - "

We’ll explore:

\n" + - " \n" + - "
" + - "

You’ll learn how to transform your Go codebase into a well-oiled machine through real-world examples and actionable insights. This talk will provide you with the tools and knowledge to keep your projects clean, organized, and scalable.

\n" + - "
" + - "

Don’t let your codebase descend into chaos. Join us and discover the secrets to taming entropy in your design systems!

\n", - level: "All attendees", - name: "Nwokoye Chigozie", - role: "S/W Engineer", - company: "", - titleDescription: "", - day: "19th" - }, - { - startTime: '12:45PM', - date: '12:45PM - 1:15PM EAT, Sat Oct 19th', - duration: 'Community 30 Min', - title: 'Community Roundtable', - room: 'Main Conference Hall, iHub', - description: "This is a great chance to connect with the Go community and event sponsors, allowing you to ask questions and learn more about Go and its growing community in Africa.", - level: "All attendees", - name: "GopherCon Africa", - role: "", - company: "", - titleDescription: "", - day: "19th" - }, - { - startTime: '1:15PM', - date: '1:15PM - 2:00PM EAT, Fri Oct 19th', - duration: '45Min', - title: 'Lunch Break', - room: 'iHub', - description: "", - level: "All attendees", - name: "", - role: "", - company: "", - titleDescription: "", - day: "19th" - }, - { - startTime: '2:00PM', - date: '2:00PM - 2:25PM EAT, Sat Oct 19th', - duration: 'Lightening Talk 25 Min', - title: 'Realizing Hexagonal Architecture in Go', - room: 'Main Conference Hall, iHub', - description: "

With the fast rate at which the software development field is changing, it truly matters that your application remains maintainable, testable, and scalable. Hexagonal Architecture, also called Ports and Adapters, shows the runway lights for developers to create applications that are flexible and decoupled.

\n" + - "
" + - "

Attend a great talk on “Realizing Hexagonal Architecture in Go”—explore how this architecture can uplift your Go projects. I will show a case and demonstrate practical steps in the realization of hexagonal architecture in Go, where one can easily morph complex dependencies into easily manageable components. You will learn to design your applications so that they resist change, you can pivot easily between different technologies, and you can easily test each part of your system in isolation.

\n" + - "
" + - "

This talk will explain how Hexagonal Architecture could loosen up your codebase, making it more adaptive, and how it will help you fulfill the demands of the modern development cycle. It doesn’t matter whether you are a well-experienced Go developer or you have just started with this language; this talk will provide you with some great insights and tricks to take your Go application to the next level.

\n" + - "
" + - "

Don’t miss your chance to level up your development skills and ensure your projects are future-proof. Let’s build better software, one hexagon at a time.

\n", - level: "All attendees", - name: "Kathurima", - role: "David", - company: "", - titleDescription: "", - day: "19th" - }, - { - startTime: '2:25PM', - date: '2:25PM - 3:05PM EAT, Sat Oct 19th', - duration: 'Main Talk 40 Min', - title: 'Mastering Intra-Service Communication in Go with gRPC', - room: 'Main Conference Hall, iHub', - description: "

When working with microservices, it’s essential to have efficient and reliable communication between services. gRPC provides a strong solution for intra-service communication in Go applications, thanks to its high performance and low latency.

\n" + - "
" + - "

This presentation will explore the ins and outs of using gRPC for intra-service communication in Go applications. We’ll begin with an introduction to gRPC, comparing it with REST and emphasizing its unique advantages. The session will cover the following key topics:

\n" + - "
" + - " \n" + - "
" + - "

Attendees will gain a thorough understanding of gRPC and practical advice for integrating it into their Go projects, enhancing performance and maintainability.

\n", - level: "All attendees", - name: "Kennedy Karoko", - role: "S/W Engineer", - company: "", - titleDescription: "", - day: "19th" - }, - { - startTime: '', - date: '2:25PM - 3:05PM EAT, Sat Oct 19th', - duration: 'Main Talk 40 Min', - title: 'Engineering Reliable gRPC APIs: The World of Instrumentation', - room: 'Boardroom I, iHub', - description: "This session will cover adding monitoring and observability features to gRPC-based APIs built with Go. Attendees will learn about the various approaches to instrumenting gRPC APIs, including adding logging and tracing, monitoring API performance, implementing circuit breakers, and adding health checks. The session will also include practical examples of how to use Go to implement these features in gRPC APIs and best practices for engineering reliable and performant gRPC APIs through instrumentation.", - level: "All attendees", - name: "Rodney Osodo", - role: "S/W Engineer", - company: "", - titleDescription: "", - day: "19th" - }, - { - startTime: '3:05PM', - date: '3:05PM - 3:45PM EAT, Sat Oct 19th', - duration: 'Main Talk 40 Min', - title: 'Testing in Go: Unlocking Confidence and Efficiency', - room: 'Main Conference Hall, iHub', - description: "

Testing is an integral part of software development, ensuring that applications are reliable, maintainable, and bug-free. In this session, we’ll explore the fundamentals and advanced techniques of testing in Go.

\n" + - "
" + - "

We’ll start with the basics, covering Go’s built-in testing tools and how to write effective unit tests. Then, we’ll delve into more advanced topics like table-driven tests, mocking dependencies, and leveraging the power of Go’s testing frameworks to handle complex scenarios. We’ll also explore tools for benchmarking and profiling your tests to ensure optimal performance. Whether you’re new to Go or a seasoned developer, you’ll walk away with practical knowledge and strategies to improve the quality of your Go applications.

\n" + - "
" + - "

Key Takeaways:

\n" + - " \n" + - "
" + - "

This talk promises to be an engaging and informative journey into the world of Go testing, equipping you with the skills and knowledge to write tests with confidence and build robust Go applications.

\n", - level: "All attendees", - name: "Kalio Princewill", - role: "S/W Engineer", - company: "", - titleDescription: "", - day: "19th" - }, - { - startTime: '3:45PM', - date: '3:45PM - 4:15PM EAT, Sat Oct 19th', - duration: 'Community 30 Min', - title: 'Panel Discussion [Podcast]: The State of Golang in Africa', - room: 'Main Conference Hall, iHub', - description: "This is a great chance to connect with the Go community and event sponsors, allowing you to ask questions and learn more about Go and its growing community in Africa.", - level: "All attendees", - name: "", - role: "", - company: "", - titleDescription: "", - day: "19th" - }, - { - startTime: '4:15PM', - date: '4:15PM - 4:30PM EAT, Sat Oct 19th', - duration: 'Closing Remarks 15 Min', - title: 'Closing Remarks and Sponsors Appreciation', - room: 'Main Conference Hall, iHub', - description: "This is a great chance to connect with the Go community and event sponsors, allowing you to ask questions and learn more about Go and its growing community in Africa.", - level: "All attendees", - name: "", - role: "", - company: "", - titleDescription: "", - day: "19th" - }, - { - startTime: '4:30PM', - date: '4:30PM - 5:00PM EAT, Sat Oct 19th', - duration: '30 Min', - title: 'Commute To GopherCon Party (TBC)', - room: 'TBC', - description: "", - level: "All attendees", - name: "", - role: "", - company: "", - titleDescription: "", - day: "19th" - }, - { - startTime: '5:00PM', - date: '5:00PM - 9:00PM EAT, Sat Oct 19th', - duration: '4 Hr', - title: 'First GopherCon Africa Party (TBC)', - room: 'TBC', - description: "", - level: "All attendees", - name: "", - role: "", - company: "", - titleDescription: "", - day: "19th" - }, - ] + return [ + { + startTime: '7:30AM', + date: '7:30AM - 9:00AM EAT, Fri Oct 18th', + duration: '1h 30Min', + title: 'Registration And Gopher Merch Shop', + room: 'iHub', + description: "Registration And Gopher Merch Shop", + level: "All attendees", + name: "", + role: "", + company: "", + titleDescription: "", + day: "18th" + }, + { + startTime: '9:00AM', + date: '9:00AM - 11:00AM EAT, Fri Oct 18th', + duration: '2h', + title: 'Workshop (TBA)', + room: 'Main Conference Room, iHub', + description: "Detail coming soon", + level: "All attendees", + name: "", + role: "", + company: "", + titleDescription: "", + day: "18th" + }, + { + startTime: '11:00AM', + date: '11:00AM - 11:15AM EAT, Fri Oct 18th', + duration: '15Min', + title: 'Coffee Break', + room: 'iHub', + description: "", + level: "All attendees", + name: "", + role: "", + company: "", + titleDescription: "", + day: "18th" + }, + { + startTime: '11:15AM', + date: '11:15AM - 1:15PM EAT, Fri Oct 18th', + duration: '2h', + title: 'Workshop: Advanced Monitoring and Observability with OpenTelemetry and APItoolkit', + room: 'Main Conference Room, iHub', + description: `

+ In this hands-on workshop, you will learn how to leverage OpenTelemetry and APItoolkit + to build robust, scalable, and insightful monitoring and observability solutions for + modern applications. The session will focus on practical techniques for instrumenting + distributed systems, collecting and analyzing telemetry data, and visualizing key + metrics and traces to gain a deeper understanding of system performance. +

+
+

+ We will explore how OpenTelemetry, the leading open-source observability framework, + integrates with APItoolkit to streamline monitoring and troubleshooting. + Participants will work through real-world scenarios, from setting up telemetry pipelines + to using APItoolkit for tracing, logging, and metric aggregation. By the end of the workshop, + you will have the skills to implement comprehensive observability strategies, + optimize performance, and proactively detect and resolve issues in your applications. +

`, + level: "All attendees", + name: "Anthony Alaribe", + role: "Founder", + company: "ApiToolkit", + titleDescription: "", + day: "18th" + }, + { + startTime: '1:15PM', + date: '1:15PM - 2:00PM EAT, Fri Oct 18th', + duration: '45Min', + title: 'Lunch Break', + room: 'iHub', + description: "", + level: "All attendees", + name: "", + role: "", + company: "", + titleDescription: "", + day: "18th" + }, + { + startTime: '2:00PM', + date: '2:00PM - 2:25PM EAT, Fri Oct 18th', + duration: 'Lightening Talk 25 Min', + title: 'Unveiling the Power of Interfaces: Go’s Secret Weapon', + room: 'Main Conference Hall, iHub', + description: "Interfaces are one of the most powerful and versatile features in Go, yet their true potential is often overlooked or underutilized. In this talk, we’ll unveil the secrets behind interfaces and demonstrate how to harness their full power to write more maintainable, testable, and flexible code. \n\n" + + "What You’ll Learn \n- Understand the fundamental principles of interface design in Go\n" + + "- Learn best practices for implementing interfaces effectively", + level: "All attendees", + name: "Sammy Oina", + role: "S/W Engineer", + company: "", + titleDescription: "", + day: "18th" + }, + { + startTime: '2:25PM', + date: '2:25PM - 2:50PM EAT, Fri Oct 18th', + duration: 'Lightening Talk 25 Min', + title: 'GoFr: High-Performance Go Framework for Scalable Web Applications', + room: 'Main Conference Hall, iHub', + description: "Effortless Development with GoFr" + + "\n" + + "

- Intuitive API Minimize boilerplate code and focus on core application logic with GoFr’s clean and concise API.

\n" + + "

- Automatic Code Generation: Streamline repetitive tasks with optional code generation capabilities (e.g., RESTHandlers).

\n" + + "\n" + + "

Enhanced Observability

" + + " \n" + + "\n" + + "

Seamless Database Connectivity

" + + " \n" + + "\n" + + "

Robust Security

" + + " \n" + + "\n" + + "

Why Choose GoFr?

" + + " ", + level: "All attendees", + name: "Aryan Mehrotra", + role: "S/W Engineer", + company: "", + titleDescription: "", + coPresenterName: 'Umang Mundhra', + coPresenterRole: 'S/W Engineer', + coPresenterCompany: '', + day: "18th" + }, + { + startTime: '2:50PM', + date: '2:50PM - 3:30PM EAT, Fri Oct 18th', + duration: 'Main Talk 40 Min', + title: 'CLEAN CODE IN GO', + room: 'Main Conference Hall, iHub', + description: "In the fast-paced world of software development, engineers often encounter codebases that are overly complex and difficult to maintain. These challenges can lead to frustration, decreased productivity, and a lack of enjoyment in your work. This talk, “Clean Code in Go” aims to address these issues by introducing you to the core principles of writing clean, efficient, and maintainable Go code.
" + + "
" + + "During this session, we’ll explore:

" + + "\n" + + "1. The Pitfalls of Over-Engineering: Understand how over-engineering can lead to cumbersome and error-prone code.\n" + + "
" + + "2. Key Principles of Clean Code: Discover practical guidelines and best practices for writing clean Go code that is easy to read, understand, and maintain.\n" + + "
" + + "3. Refactoring Techniques: Learn effective refactoring techniques to improve existing codebases without introducing bugs or regressions.\n" + + "
" + + "4. Real-World Examples: See how these principles are applied in real-world scenarios, transforming messy code into clean, elegant solutions.\n" + + "

" + + "Whether you are new to GO or an experienced developer, this talk will provide you with valuable insights and actionable strategies to enhance your coding practices. By adopting these principles, you’ll be able to create codebases that are not only robust and scalable but also a pleasure to work with.", + level: "All attendees", + name: "JA Asuquo", + role: "S/W Engineer", + company: "", + titleDescription: "", + day: "18th" + }, + { + startTime: '3:30PM', + date: '3:30PM - 4:10PM EAT, Fri Oct 18th', + duration: 'Main Talk 40 Min', + title: 'Event-Driven Architecture with Go and Kafka', + room: 'Main Conference Hall, iHub', + description: "This talk will explore event-driven architectures (EDA). We’ll unpack its core concepts, understand the problems it solves, and discover why it’s become a hot topic in building decoupled systems.\n" + + "

" + + "Next, we’ll shift gears to discuss Golang, a language known for its robust concurrency features. These features make Golang a powerful tool for building event-driven applications.\n" + + "

" + + "Finally, we’ll introduce Apache Kafka, a distributed streaming platform. We’ll explore how Golang and Kafka can be leveraged to create highly scalable and responsive event-driven applications.\n" + + "\n" + + "Throughout this session, I will talk about:\n" + + "

" + + "- Event-driven architecture, its core principles, components, common use cases, and benefits
" + + "- Kafka, its architecture, features and capabilities, and its role in EDA
" + + "- Go features that make it suitable for EDA
" + + "- Integrating Go with Kafka, demonstrating the setup and configuration, with code examples
" + + "- Showcase real-life examples of Go and Kafka in action
" + + "- Best practices and resource recommendation

" + + "By the end of this talk, attendees will have a deeper understanding of why the world is paying more attention to event-driven architectures and how they are revolutionizing the speed at which organizations can scale their services, respond to user requests, and enable real-time data processing.\n" + + "

" + + "Key Takeaways: - Comprehensive understanding of Event-driven architecture and the why behind it all - Understanding how to leverage Go and Kafka to build event-driven architectures - Knowledge of best practices and use cases for Go and Kafka in building EDAs - Inspiration to leverage EDAs for building efficient and scalable solutions.", + level: "All attendees", + name: "Amarachi Iheanacho", + role: "S/W Engineer", + company: "", + titleDescription: "", + day: "18th" + }, + { + startTime: '4:10PM', + date: '4:10PM - 5:30PM EAT, Fri Oct 18th', + duration: '80Min', + title: 'Closing Remarks | Networking', + room: 'iHub', + description: "", + level: "All attendees", + name: "", + role: "", + company: "", + titleDescription: "", + day: "18th" + }, + { + startTime: '7:30AM', + date: '7:30AM - 9:00AM EAT, Sat Oct 19th', + duration: '1h 30Min', + title: 'Registration And Gopher Merch Shop', + room: 'iHub', + description: "Registration And Gopher Merch Shop", + level: "All attendees", + name: "", + role: "", + company: "", + titleDescription: "", + day: "19th" + }, + { + startTime: '9:00AM', + date: '9:00AM - 10:00AM EAT, Sat Oct 19th', + duration: '1h', + title: 'Keynote', + room: 'Main Conference Hall, iHub', + description: "Keynote", + level: "All attendees", + name: "", + role: "", + company: "", + titleDescription: "", + day: "19th" + }, + { + startTime: '10:00AM', + date: '10:00AM - 10:40AM EAT, Sat Oct 19th', + duration: 'Main Talk 40 Min', + title: 'Effective Testing Strategies for Large Data Inserts into PostgreSQL Tables', + room: 'Main Conference Hall, iHub', + description: "This talk provides an overview of Go and PostgreSQL’s roles in high-performance data handling.\n" + + "

" + + "Go developers often struggle to guarantee the functionality and performance of their code when dealing with large data inserts into PostgreSQL databases. This can lead to data loss, slow performance, and ultimately, frustrated users. This talk tackles this challenge by focusing on robust testing strategies for Go functions handling massive data insertions.\n" + + "

" + + "We’ll explore a multi-layered approach:\n" + + "

" + + "Unit testing: Isolate and rigorously test individual functions interacting with PostgreSQL using mocks or dependency injection.\n" + + "

" + + "Integration testing: Move beyond units and validate how your Go functions work seamlessly with PostgreSQL in a dedicated test environment.\n" + + "

" + + "Performance testing: Measure execution time and throughput under real-world data volumes using benchmarking tools and identify bottlenecks with profilers.\n" + + "

" + + "By the end, you’ll be equipped with the knowledge to:\n" + + "

" + + "Craft comprehensive test suites for Go functions handling large data inserts.\n" + + "

" + + "Uncover performance issues before they impact production.\n" + + "

" + + "Gain confidence in your application’s stability and scalability.\n" + + "

" + + "This talk specifically focuses on testing Go code interacting with PostgreSQL, complementing popular ORMs like Gorm. The goal is to equip developers with strategies to minimize latency and maximize throughput in data operations.\n" + + "

" + + "The session sets the stage by explaining why these technologies are preferred for managing large data volumes and highlights real-world applications.", + level: "All attendees", + name: "Ufia Irene", + role: "S/W Engineer", + coPresenterName: "Orji Cecilia", + coPresenterRole: "S/W Engineer", + company: "", + titleDescription: "", + day: "19th" + }, + { + startTime: '10:40AM', + date: '10:40AM - 11:00AM EAT, Fri Oct 19th', + duration: '20Min', + title: 'Coffee Break', + room: 'iHub', + description: "", + level: "All attendees", + name: "", + role: "", + company: "", + titleDescription: "", + day: "19th" + }, + // { + // startTime: '11:00AM', + // date: '11:00AM - 11:40AM EAT, Sat Oct 19th', + // duration: 'Main Talk 40 Min', + // title: 'Hands-On Observability: Monitoring Go Applications with OpenTelemetry and Grafana', + // room: 'Main Conference Hall, iHub', + // description: "

Workshop Agenda

\n" + + // "
" + + // "

Setting the Stage:

\n" + + // " \n" + + // "
" + + // "

Instrumenting Your Go Code:

\n" + + // " \n" + + // "
" + + // "

Visualizing Insights with Grafana:

\n" + + // " \n" + + // "
" + + // "

Logging for Contextual Observability:

\n" + + // " \n" + + // "
" + + // "

Error Handling and Alerting:

\n" + + // " \n" + + // "\n" + + // "

Q&A Session and Open Discussion:

", + // level: "All attendees", + // name: "Desmond Obisi", + // role: "S/W Engineer", + // company: "", + // titleDescription: "", + // day: "19th" + // }, + { + startTime: '11:00AM', + date: '11:00AM - 11:40AM EAT, Sat Oct 19th', + duration: 'Main Talk 40 Min', + title: 'SDK Secrets: Unlocking API Magic', + room: 'Main Conference Hall, iHub', + description: "In this exploration of SDK development with Go, we will cover the “hows” and “whys” that every developer should know when building an SDK for their APIs. We will explore the foundational principles and best practices for building efficient, user-friendly, and robust SDKs. We will cover seamless API integrations for improved programmatic functionality. We will cover the basics, core design principles and implementation strategies you can leverage to ensure a successful SDK for your APIs. The session will wrap up with a live demo of an SDK, during which attendees will see firsthand the functionality and usefulness of this powerful tool, turning theoretical knowledge into practical skills. This session will benefit seasoned developers and developers starting with their Golang careers.", + level: "All attendees", + name: "Ehi Enabs", + role: "S/W Engineer", + company: "", + titleDescription: "", + day: "19th" + }, + { + startTime: '11:40AM', + date: '11:40AM - 12:05PM EAT, Sat Oct 19th', + duration: 'Lightening Talk 25 Min', + title: 'Building a Local Go Community as a Student', + room: 'Main Conference Hall, iHub', + description: "We will explore key steps such as identifying the right audience, organising engaging events, and leveraging online and offline resources to foster growth. I will also share insights on overcoming common obstacles, from balancing academic responsibilities to maintaining community engagement. Whether you’re a student looking to start your own community or an experienced developer seeking to expand your reach, this talk will offer practical advice and inspiration for growing a vibrant local tech ecosystem.\n" + + "
" + + "Join me to learn how you can make a meaningful impact in your community and turn your passion for technology into a collaborative, supportive network.", + level: "All attendees", + name: "Mudasiru Rasheed", + role: "S/W Engineer", + company: "", + titleDescription: "", + day: "19th", + twitter: 'taiwrash' + }, + { + startTime: '12:05PM', + date: '12:05PM - 12:45PM EAT, Sat Oct 19th', + duration: 'Main Talk 40 Min', + title: 'Understanding Entropy in Design Systems', + room: 'Main Conference Hall, iHub', + description: "

Taming Code Chaos: Reducing Entropy in Go Design Systems

\n" + + "
" + + "

Is your codebase spiraling out of control? High entropy can lead to unpredictable behavior, making your code difficult to maintain and scale. In this talk, we’ll dive into the concept of entropy in software design, focusing on practical strategies to bring order to your Go projects.

\n" + + "
" + + "

We’ll explore:

\n" + + " \n" + + "
" + + "

You’ll learn how to transform your Go codebase into a well-oiled machine through real-world examples and actionable insights. This talk will provide you with the tools and knowledge to keep your projects clean, organized, and scalable.

\n" + + "
" + + "

Don’t let your codebase descend into chaos. Join us and discover the secrets to taming entropy in your design systems!

\n", + level: "All attendees", + name: "Nwokoye Chigozie", + role: "S/W Engineer", + company: "", + titleDescription: "", + day: "19th" + }, + { + startTime: '12:45PM', + date: '12:45PM - 1:15PM EAT, Sat Oct 19th', + duration: 'Community 30 Min', + title: 'Community Roundtable', + room: 'Main Conference Hall, iHub', + description: "This is a great chance to connect with the Go community and event sponsors, allowing you to ask questions and learn more about Go and its growing community in Africa.", + level: "All attendees", + name: "GopherCon Africa", + role: "", + company: "", + titleDescription: "", + day: "19th" + }, + { + startTime: '1:15PM', + date: '1:15PM - 2:00PM EAT, Fri Oct 19th', + duration: '45Min', + title: 'Lunch Break', + room: 'iHub', + description: "", + level: "All attendees", + name: "", + role: "", + company: "", + titleDescription: "", + day: "19th" + }, + { + startTime: '2:00PM', + date: '2:00PM - 2:25PM EAT, Sat Oct 19th', + duration: 'Lightening Talk 25 Min', + title: 'Realizing Hexagonal Architecture in Go', + room: 'Main Conference Hall, iHub', + description: "

With the fast rate at which the software development field is changing, it truly matters that your application remains maintainable, testable, and scalable. Hexagonal Architecture, also called Ports and Adapters, shows the runway lights for developers to create applications that are flexible and decoupled.

\n" + + "
" + + "

Attend a great talk on “Realizing Hexagonal Architecture in Go”—explore how this architecture can uplift your Go projects. I will show a case and demonstrate practical steps in the realization of hexagonal architecture in Go, where one can easily morph complex dependencies into easily manageable components. You will learn to design your applications so that they resist change, you can pivot easily between different technologies, and you can easily test each part of your system in isolation.

\n" + + "
" + + "

This talk will explain how Hexagonal Architecture could loosen up your codebase, making it more adaptive, and how it will help you fulfill the demands of the modern development cycle. It doesn’t matter whether you are a well-experienced Go developer or you have just started with this language; this talk will provide you with some great insights and tricks to take your Go application to the next level.

\n" + + "
" + + "

Don’t miss your chance to level up your development skills and ensure your projects are future-proof. Let’s build better software, one hexagon at a time.

\n", + level: "All attendees", + name: "Kathurima", + role: "David", + company: "", + titleDescription: "", + day: "19th" + }, + { + startTime: '2:25PM', + date: '2:25PM - 3:05PM EAT, Sat Oct 19th', + duration: 'Main Talk 40 Min', + title: 'Mastering Intra-Service Communication in Go with gRPC', + room: 'Main Conference Hall, iHub', + description: "

When working with microservices, it’s essential to have efficient and reliable communication between services. gRPC provides a strong solution for intra-service communication in Go applications, thanks to its high performance and low latency.

\n" + + "
" + + "

This presentation will explore the ins and outs of using gRPC for intra-service communication in Go applications. We’ll begin with an introduction to gRPC, comparing it with REST and emphasizing its unique advantages. The session will cover the following key topics:

\n" + + "
" + + " \n" + + "
" + + "

Attendees will gain a thorough understanding of gRPC and practical advice for integrating it into their Go projects, enhancing performance and maintainability.

\n", + level: "All attendees", + name: "Kennedy Karoko", + role: "S/W Engineer", + company: "", + titleDescription: "", + day: "19th" + }, + { + startTime: '', + date: '2:25PM - 3:05PM EAT, Sat Oct 19th', + duration: 'Main Talk 40 Min', + title: 'Engineering Reliable gRPC APIs: The World of Instrumentation', + room: 'Boardroom I, iHub', + description: "This session will cover adding monitoring and observability features to gRPC-based APIs built with Go. Attendees will learn about the various approaches to instrumenting gRPC APIs, including adding logging and tracing, monitoring API performance, implementing circuit breakers, and adding health checks. The session will also include practical examples of how to use Go to implement these features in gRPC APIs and best practices for engineering reliable and performant gRPC APIs through instrumentation.", + level: "All attendees", + name: "Rodney Osodo", + role: "S/W Engineer", + company: "", + titleDescription: "", + day: "19th" + }, + { + startTime: '3:05PM', + date: '3:05PM - 3:45PM EAT, Sat Oct 19th', + duration: 'Main Talk 40 Min', + title: 'Testing in Go: Unlocking Confidence and Efficiency', + room: 'Main Conference Hall, iHub', + description: "

Testing is an integral part of software development, ensuring that applications are reliable, maintainable, and bug-free. In this session, we’ll explore the fundamentals and advanced techniques of testing in Go.

\n" + + "
" + + "

We’ll start with the basics, covering Go’s built-in testing tools and how to write effective unit tests. Then, we’ll delve into more advanced topics like table-driven tests, mocking dependencies, and leveraging the power of Go’s testing frameworks to handle complex scenarios. We’ll also explore tools for benchmarking and profiling your tests to ensure optimal performance. Whether you’re new to Go or a seasoned developer, you’ll walk away with practical knowledge and strategies to improve the quality of your Go applications.

\n" + + "
" + + "

Key Takeaways:

\n" + + " \n" + + "
" + + "

This talk promises to be an engaging and informative journey into the world of Go testing, equipping you with the skills and knowledge to write tests with confidence and build robust Go applications.

\n", + level: "All attendees", + name: "Kalio Princewill", + role: "S/W Engineer", + company: "", + titleDescription: "", + day: "19th" + }, + { + startTime: '3:45PM', + date: '3:45PM - 4:15PM EAT, Sat Oct 19th', + duration: 'Community 30 Min', + title: 'Panel Discussion [Podcast]: The State of Golang in Africa', + room: 'Main Conference Hall, iHub', + description: "This is a great chance to connect with the Go community and event sponsors, allowing you to ask questions and learn more about Go and its growing community in Africa.", + level: "All attendees", + name: "", + role: "", + company: "", + titleDescription: "", + day: "19th" + }, + { + startTime: '4:15PM', + date: '4:15PM - 4:30PM EAT, Sat Oct 19th', + duration: 'Closing Remarks 15 Min', + title: 'Closing Remarks and Sponsors Appreciation', + room: 'Main Conference Hall, iHub', + description: "This is a great chance to connect with the Go community and event sponsors, allowing you to ask questions and learn more about Go and its growing community in Africa.", + level: "All attendees", + name: "", + role: "", + company: "", + titleDescription: "", + day: "19th" + }, + { + startTime: '4:30PM', + date: '4:30PM - 5:00PM EAT, Sat Oct 19th', + duration: '30 Min', + title: 'Commute To GopherCon Party (TBC)', + room: 'TBC', + description: "", + level: "All attendees", + name: "", + role: "", + company: "", + titleDescription: "", + day: "19th" + }, + { + startTime: '5:00PM', + date: '5:00PM - 9:00PM EAT, Sat Oct 19th', + duration: '4 Hr', + title: 'First GopherCon Africa Party (TBC)', + room: 'TBC', + description: "", + level: "All attendees", + name: "", + role: "", + company: "", + titleDescription: "", + day: "19th" + }, + ] } export default SessionsList From 2be6504c81b923504262d500806408032c10ed69 Mon Sep 17 00:00:00 2001 From: David Odohi Date: Thu, 17 Oct 2024 16:13:35 +0300 Subject: [PATCH 2/2] add keynote speakers --- frontend/src/utils/sessions.ts | 54 +++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 20 deletions(-) diff --git a/frontend/src/utils/sessions.ts b/frontend/src/utils/sessions.ts index 21aa712..82ad6b3 100644 --- a/frontend/src/utils/sessions.ts +++ b/frontend/src/utils/sessions.ts @@ -18,7 +18,21 @@ const SessionsList = (): Array => { }, { startTime: '9:00AM', - date: '9:00AM - 11:00AM EAT, Fri Oct 18th', + date: '9:00AM - 09:30AM EAT, Fri Oct 18th', + duration: '30Min', + title: "Keynote: Empowering the future with Go. (Africa's Role in the Go Community)", + room: 'Main Conference Room, iHub', + description: "Keynote: Empowering the future with Go. (Africa's Role in the Go Community)", + level: "All attendees", + name: "Adesina Hassan", + role: "Senior Software Engineer", + company: "", + titleDescription: "", + day: "18th" + }, + { + startTime: '9:30AM', + date: '9:30AM - 11:30AM EAT, Fri Oct 18th', duration: 'Workshop 2h', title: 'Go for Infrastructure Test Automation', room: 'Main Conference Room, iHub', @@ -95,8 +109,8 @@ const SessionsList = (): Array => { // day: "18th" // }, { - startTime: '11:00AM', - date: '11:00AM - 11:15AM EAT, Fri Oct 18th', + startTime: '11:30AM', + date: '11:30AM - 11:45AM EAT, Fri Oct 18th', duration: '15Min', title: 'Coffee Break', room: 'iHub', @@ -109,8 +123,8 @@ const SessionsList = (): Array => { day: "18th" }, { - startTime: '11:15AM', - date: '11:15AM - 1:15PM EAT, Fri Oct 18th', + startTime: '11:45AM', + date: '11:45AM - 1:45PM EAT, Fri Oct 18th', duration: 'Workshop 2h', title: 'Workshop: Advanced Monitoring and Observability with OpenTelemetry and APItoolkit', room: 'Main Conference Room, iHub', @@ -138,8 +152,8 @@ const SessionsList = (): Array => { day: "18th" }, { - startTime: '1:15PM', - date: '1:15PM - 2:00PM EAT, Fri Oct 18th', + startTime: '1:45PM', + date: '1:45PM - 2:30PM EAT, Fri Oct 18th', duration: '45Min', title: 'Lunch Break', room: 'iHub', @@ -152,8 +166,8 @@ const SessionsList = (): Array => { day: "18th" }, { - startTime: '2:00PM', - date: '2:00PM - 2:25PM EAT, Fri Oct 18th', + startTime: '2:30PM', + date: '2:30PM - 2:55PM EAT, Fri Oct 18th', duration: 'Lightening Talk 25 Min', title: 'Unveiling the Power of Interfaces: Go’s Secret Weapon', room: 'Main Conference Hall, iHub', @@ -168,8 +182,8 @@ const SessionsList = (): Array => { day: "18th" }, { - startTime: '2:25PM', - date: '2:25PM - 2:50PM EAT, Fri Oct 18th', + startTime: '2:55PM', + date: '2:55PM - 3:20PM EAT, Fri Oct 18th', duration: 'Lightening Talk 25 Min', title: 'GoFr: High-Performance Go Framework for Scalable Web Applications', room: 'Main Conference Hall, iHub', @@ -216,8 +230,8 @@ const SessionsList = (): Array => { day: "18th" }, { - startTime: '2:50PM', - date: '2:50PM - 3:30PM EAT, Fri Oct 18th', + startTime: '3:20PM', + date: '3:20PM - 4:00PM EAT, Fri Oct 18th', duration: 'Main Talk 40 Min', title: 'CLEAN CODE IN GO', room: 'Main Conference Hall, iHub', @@ -242,8 +256,8 @@ const SessionsList = (): Array => { day: "18th" }, { - startTime: '3:30PM', - date: '3:30PM - 4:10PM EAT, Fri Oct 18th', + startTime: '4:00PM', + date: '4:00PM - 4:40PM EAT, Fri Oct 18th', duration: 'Main Talk 40 Min', title: 'Event-Driven Architecture with Go and Kafka', room: 'Main Conference Hall, iHub', @@ -272,8 +286,8 @@ const SessionsList = (): Array => { day: "18th" }, { - startTime: '4:10PM', - date: '4:10PM - 5:30PM EAT, Fri Oct 18th', + startTime: '4:40PM', + date: '4:40PM - 6:00PM EAT, Fri Oct 18th', duration: '80Min', title: 'Closing Remarks | Networking', room: 'iHub', @@ -307,9 +321,9 @@ const SessionsList = (): Array => { room: 'Main Conference Hall, iHub', description: "Keynote", level: "All attendees", - name: "", - role: "", - company: "", + name: "Anthony Alaribe", + role: "Founder", + company: "ApiToolkit", titleDescription: "", day: "19th" },