Let’s face it: as developers, we dedicate a third of our time to code maintenance, which includes tasks such as upgrading dependencies, addressing security vulnerabilities, and removing obsolete code. This is tedious and repetitive. Neglecting regular maintenance can lead to costly outcomes, including unexpected crashes, and it makes the codebase more difficult to understand and evolve.
However, automation of these tasks is not always straightforward. Existing tools such as security scanners and feature flag systems warn you about the issues or obsolete code, but fall short of automatically rectifying these problems. Tools that upgrade dependencies merely increase the version number, leaving engineers to handle any API compatibility issues. Automating code changes is hard, and the polyglot nature of modern development makes it harder.
In this talk, we will delve into code rewriting techniques such as pattern matching, program analysis, and AI. We will illustrate how we leveraged the complementing power of these tools to generate over 1,800 automated pull requests, eliminating or refactoring more than 500,000 lines of code. In this talk, you will also learn how to harness the power of these tools to drive down tech debt, ensuring your codebase is not only functional but also future-proof.
Software Engineer
Co-Founder
I’m a software engineer at Gitar, where I develop program analysis and refactoring tools. My current focus is on developing multi-language AST analysis and refactoring tools. My research interests broadly include source code mining and program transformations. I am also interested in developing advanced tooling for improving and speeding up the code reviews. Earlier I worked at Uber’s Programming Systems Group, and prior to that I got my Ph.D. from Oregon State University.
Gautam is a Co-Founder at Gitar where he is building the modern software development platform – tools that offer a magical developer experience supercharged by advanced code analysis and AI. Gitar’s mission is to enable efficient and reliable development at scale, empowering developers to do the best work of their careers. Previously, he was a Principal Engineer on Uber’s Developer Platform Team. He is passionate about tools to improve developer experience in large codebases. He has spoken about a wide variety of topics around Monorepos, Build systems, CI & CD at scale, etc.