|
10 | 10 | "abstract": "Web application developers have high standards in developer experience including fast build and test times, short feedback cycles, and easy dependency management. Using Bazel to deliver an intuitive web development workflow that meets these expectations involves solving numerous challenges.\n\nThis talk shares our experience using Bazel’s NodeJS toolchain and the various Aspect.build’s rules repositories to accelerate the development and maintenance of our 40+ web applications across Aurora. We will show how we used Bazel's JSON Trace Profiling to find performance improvement opportunities that helped us reduce our application build times by 50% and test execution times by 70%. We will share how we combined Vite and iBazel to enable hot module replacement and achieve fast iteration loops, and used Gazelle and PNPM to simplify the management of NPM dependencies across our Bazel monorepo.",
|
11 | 11 | "links": {
|
12 | 12 | "registration": "https://rsvp.withgoogle.com/events/bazelcon2023",
|
13 |
| - "pdf": "https://pejman.dev/talks/bazelcon23/slides-bazelcon23-pejman.pdf", |
| 13 | + "pdf": "https://pejman.dev/talks/slides/bazelcon23/slides-bazelcon23-pejman.pdf", |
14 | 14 | "youtube": "https://youtu.be/Xs3E5SvSYg4",
|
15 | 15 | "cover": "https://raw.githubusercontent.com/ghorbanzade/talks/main/slides/bazelcon23/images/bazelcon-cover.png",
|
16 | 16 | "repository": "https://github.com/ghorbanzade/talks/tree/main/slides/bazelcon23"
|
|
27 | 27 | "abstract": "Making code changes to real-world software systems runs the risk of introducing unintended side-effects that are costly to find and fix. To mitigate this risk, engineering teams significantly invest in adopting various software testing practices. Despite best efforts, effectively and reliably identifying software regressions remains a challenge and results in long feedback cycles that hurt developer productivity. This problem is more pronounced in C++ software systems, given that their application domains often impose tight requirements on system safety and performance.\n\nThis talk shows you how continuous regression testing can help you find regressions in behavior or performance of your software during the development stage. It is a practical walk-through of how to build a regression testing framework in C++, how to use it to write effective regression tests, and how to integrate it with your CI pipeline to automate the execution of your tests as part of the CI or on a dedicated test server. It also includes recommendations on how to avoid common design pitfalls that lead to tests that are either flaky or untrustworthy or difficult to run at scale.\n\nThis talk also introduces a free and open-source software for continuous regression testing C++ applications. We will use a series of hands-on demos to showcase the end-to-end workflow of finding regressions in common C++ development scenarios including refactoring functions, upgrading dependencies, and updating the build toolchain. We also show a few less common use-cases such as profiling the size of binaries and tracking the exported symbols of a shared library, to inspire you to think how regression testing could unlock faster and safer refactoring for you and your team.",
|
28 | 28 | "links": {
|
29 | 29 | "registration": "https://cppcon2023.sched.com/event/1Qtgx/continuous-regression-testing-for-safer-and-faster-refactoring",
|
30 |
| - "html": "https://pejman.dev/talks/cppcon23/", |
31 |
| - "pdf": "https://pejman.dev/talks/cppcon23/slides-cppcon23-pejman.pdf", |
| 30 | + "html": "https://pejman.dev/talks/slides/cppcon23/", |
| 31 | + "pdf": "https://pejman.dev/talks/slides/cppcon23/slides-cppcon23-pejman.pdf", |
32 | 32 | "youtube": "https://youtu.be/c8Z3iSL9vYs",
|
33 | 33 | "cover": "https://raw.githubusercontent.com/ghorbanzade/talks/main/slides/cppcon23/images/cppcon-cover.png",
|
34 | 34 | "repository": "https://github.com/ghorbanzade/talks/tree/main/slides/cppcon23"
|
|
89 | 89 | "abstract": "Making code changes to real-world software systems runs the risk of introducing unintended side-effects that are costly to find and fix. There are methods and tools to help us mitigate the inherent risks. One of these methods is regression testing which helps us compare the behavior of a given version of our software against a previous version, using a large number of test cases. This talk outlines the benefits and challenges of continuous regression testing in the development of real-world software, reviews some of the well-known regression testing tools available in the Java ecosystem, and introduces a new tool with a novel approach to regression testing, to show the impact of continuous software testing on improving developer productivity and software development efficiency.",
|
90 | 90 | "links": {
|
91 | 91 | "registration": "https://www.meetup.com/DenverJavaUsersGroup/events/cpmtcqydcgbrb/",
|
92 |
| - "youtube": "https://www.youtube.com/watch?v=6LtgbTdUJEQ", |
| 92 | + "youtube": "https://youtu.be/6LtgbTdUJEQ", |
93 | 93 | "html": "https://touca.io/talks/djug22",
|
94 | 94 | "pdf": "https://touca.io/talks/djug22/slides-djug22-pejman.pdf"
|
95 | 95 | }
|
|
152 | 152 | "abstract": "As software engineers, we all prefer using performant libraries with user-friendly interfaces. But designing a template-free interface can be challenging for some C++ libraries, like serialization libraries, that need to support generic values but handle them differently based on their type.\n\nThis talk shows how we can leverage partial template specialization to implement a generic user-friendly API that can be extended to support custom user-defined types. As a proof of concept, I will showcase an extensible type serialization system, that is built on top of the FlatBuffers serialization library, and enables users to register custom serializers for their user-defined types to support their automatic serialization at runtime.\n\nTemplate programming is generally known to be associated with long type names and indecipherable compile-time errors. This presentation includes examples and recommendations that help C++ engineers to create more expressive and easy-to-understand implementations. Finally, the talk describes how C++20 features like Concepts can further simplify those implementations and facilitate designing elegant user-friendly programming interfaces.",
|
153 | 153 | "links": {
|
154 | 154 | "registration": "https://cppcon2021.sched.com/event/nvDM/building-an-extensible-type-serialization-system-using-partial-template-specialization",
|
155 |
| - "html": "https://pejman.dev/talks/cppcon21/", |
156 |
| - "pdf": "https://pejman.dev/talks/cppcon21/slides-cppcon23-pejman.pdf", |
| 155 | + "html": "https://pejman.dev/talks/slides/cppcon21/", |
| 156 | + "pdf": "https://pejman.dev/talks/slides/cppcon21/slides-cppcon23-pejman.pdf", |
157 | 157 | "youtube": "https://youtu.be/2dvZR2zemrM",
|
158 | 158 | "repository": "https://github.com/ghorbanzade/cppcon21"
|
159 | 159 | }
|
|
0 commit comments