1<!DOCTYPE html> 2<html lang="en-US"> 3 4<head> 5 <meta name="google-site-verification" content="Sg8JpaxJ1zxccD4x__azOkPp1_37JMCA1VBwecdzd84" /> 6 <meta name="keywords" 7 content="Static Analysis, Nima, Nima Karimipour, Nima K, Computer Science, Sonar, SonarSource, SonarQube, AI Code Review, Code Verification, Gitar, Gitar.ai, Agents, Uber, Uber Technologies, NullAway, Annotator, NullAwayAnnotator, UCR RIPLE, Prof. Manu Sridharan, Java, Software Engineering"> 8 <meta charset="UTF-8"> 9 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 10 <meta name="viewport" content="width=device-width, initial-scale=1"> 11 <title>Nima Karimipour</title> 12 <link rel="preconnect" href="https://fonts.googleapis.com"> 13 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 14 <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet"> 15 <link href="css/font-awesome/css/all.min.css?ver=1.2.0" rel="stylesheet"> 16 <link href="css/bootstrap.min.css?ver=1.2.0" rel="stylesheet"> 17 <link href="css/main.css?ver=3.1.0" rel="stylesheet"> 18 <link href="https://unpkg.com/[email protected]/dist/aos.css" rel="stylesheet"> 19</head> 20 21<body id="top"> 22 23 <!-- Navigation --> 24 <nav class="navbar-fixed" id="navbar"> 25 <div class="nav-inner"> 26 <a href="#top" class="nav-logo">NK</a> 27 <div class="nav-links"> 28 <a href="#about">About</a> 29 <a href="#experience">Experience</a> 30 <a href="#publications">Publications</a> 31 <a href="#projects">Projects</a> 32 <a href="#education">Education</a> 33 <button class="theme-toggle" id="themeToggle" title="Toggle dark mode"> 34 <i class="fas fa-moon"></i> 35 </button> 36 </div> 37 </div> 38 </nav> 39 40 <!-- Hero Banner --> 41 <section class="hero-banner" id="hero"> 42 <div class="container"> 43 <div class="hero-row"> 44 <div class="hero-avatar-col"> 45 <div class="avatar-ring"> 46 <img src="images/avatar.jpg" alt="Nima Karimipour" class="hero-avatar" /> 47 </div> 48 </div> 49 <div class="hero-info-col"> 50 <h1 class="hero-name">Nima Karimipour</h1> 51 <p class="hero-title">Staff Engineer at <a href="https://www.sonarsource.com" target="_blank" rel="noopener noreferrer">Sonar</a></p> 52 <p class="hero-subtitle">working on <a href="https://gitar.ai" target="_blank" rel="noopener noreferrer">Gitar</a> · Ph.D. in CS</p> 53 <div class="hero-links"> 54 <a href="mailto:[email protected]" class="hero-btn" title="Email"> 55 <i class="fas fa-envelope"></i> 56 </a> 57 <a href="https://github.com/nimakarimipour" target="_blank" rel="noopener noreferrer" class="hero-btn" title="GitHub"> 58 <i class="fab fa-github"></i> 59 </a> 60 <a href="https://www.linkedin.com/in/nima-karimipour-846359144/" target="_blank" rel="noopener noreferrer" class="hero-btn" title="LinkedIn"> 61 <i class="fab fa-linkedin-in"></i> 62 </a> 63 <a href="https://scholar.google.com/citations?user=zPD7PukAAAAJ&hl=en" target="_blank" rel="noopener noreferrer" class="hero-btn" title="Google Scholar"> 64 <i class="fas fa-graduation-cap"></i> 65 </a> 66 <a href="files/CV.pdf" target="_blank" class="hero-btn hero-btn-outline" title="Download CV"> 67 <i class="fas fa-file-alt"></i> <span>CV</span> 68 </a> 69 </div> 70 </div> 71 </div> 72 </div> 73 </section> 74 75 <!-- About Section --> 76 <section class="section" id="about"> 77 <div class="container"> 78 <div class="section-header" data-aos="fade-up"> 79 <span class="section-tag">01</span> 80 <h2 class="section-title">About Me</h2> 81 <div class="section-line"></div> 82 </div> 83 <div class="row justify-content-center" data-aos="fade-up" data-aos-delay="100"> 84 <div class="col-lg-10"> 85 <p class="about-text"> 86 I'm a Staff Engineer at <a href="https://www.sonarsource.com">Sonar</a>, building agents on 87 <a href="https://gitar.ai">Gitar</a>, the AI-native code review platform Sonar acquired in May 2026. 88 I received my Ph.D. from the University of California, Riverside, advised by <a 89 href="https://manu.sridharan.net">Prof. Manu Sridharan</a>, where I was a member of the <a 90 href="https://riple.cs.ucr.edu/">RIPLE</a> research group. My research centers on programming
91 languages and software engineering, with a special focus on creating tools that boost the reliability 92 and security of large-scale software systems. During my Ph.D., I developed a type inference tool 93 for <a href="https://www.uber.com/blog/nullaway/">NullAway</a>, offering capabilities unmatched by other 94 tools, and created <a href="https://github.com/ucr-riple/NullAwayAnnotator">Annotator</a>, an automated 95 tool that seamlessly integrates NullAway into existing codebases. 96 </p> 97 </div> 98 </div> 99 </div> 100 </section> 101 102 <!-- Experience Section --> 103 <section class="section section-alt" id="experience"> 104 <div class="container"> 105 <div class="section-header" data-aos="fade-up"> 106 <span class="section-tag">02</span> 107 <h2 class="section-title">Experience</h2> 108 <div class="section-line"></div> 109 </div> 110 <div class="row justify-content-center"> 111 <div class="col-lg-10"> 112 <div class="exp-card" data-aos="fade-up" data-aos-delay="100"> 113 <div class="exp-card-accent"></div> 114 <div class="exp-card-content"> 115 <div class="exp-header"> 116 <div> 117 <h3 class="exp-role">Staff Engineer</h3> 118 <p class="exp-company"><a href="https://www.sonarsource.com">Sonar</a> — <a href="https://gitar.ai">Gitar</a></p> 119 </div> 120 <span class="exp-date">2026 – Present</span> 121 </div> 122 <p class="exp-desc"> 123 Continuing to build agents for software engineering automation on Gitar, now part of Sonar's 124 code verification platform. Gitar reviews code from the moment an agent starts writing it to the 125 moment it lands, generating fixes and iterating until CI passes. 126 </p> 127 <a href="https://www.sonarsource.com/blog/welcoming-gitar-to-sonar/" target="_blank" rel="noopener noreferrer" class="exp-banner"> 128 <img src="images/sonar-gitar.jpg" alt="Sonar + Gitar" loading="lazy" /> 129 </a> 130 </div> 131 </div> 132 133 <div class="exp-card" data-aos="fade-up" data-aos-delay="200"> 134 <div class="exp-card-accent"></div> 135 <div class="exp-card-content"> 136 <div class="exp-header"> 137 <div> 138 <h3 class="exp-role">Research Scientist</h3> 139 <p class="exp-company"><a href="https://gitar.ai">Gitar.ai</a></p> 140 </div> 141 <span class="exp-date">2025 – 2026</span> 142 </div> 143 <p class="exp-desc">Building agents for software engineering automation.</p> 144 <p class="exp-highlight"> 145 <i class="fas fa-star"></i> 146 Gitar was <a href="https://www.sonarsource.com/company/press-releases/sonar-acquires-gitar/">acquired by Sonar</a> in May 2026, expanding Sonar's code verification platform into AI code review. 147 </p> 148 </div> 149 </div> 150 151 <div class="exp-card" data-aos="fade-up" data-aos-delay="300"> 152 <div class="exp-card-accent"></div> 153 <div class="exp-card-content"> 154 <div class="exp-header"> 155 <div> 156 <h3 class="exp-role">Ph.D. Research Intern</h3> 157 <p class="exp-company"><a href="https://uber.com">Uber Technologies, Inc.</a> — Programming Systems Group (<a href="https://www.uber.com/fr/en/about/science/">PSG</a>)</p> 158 </div> 159 <span class="exp-date">Jun – Sep 2022</span> 160 </div> 161 <p class="exp-desc"> 162 Worked on enhancing <a href="https://github.com/ucr-riple/NullAwayAnnotator">Annotator</a> to work at 163 monorepo scale. Annotator is a tool designed to simplify and accelerate the adoption of NullAway in 164 existing codebases. By automating the search for a set of annotations that minimizes reported NullAway 165 errors, it streamlines onboarding projects to NullAway. Once executed, Annotator can bring code to a 166 state where no NullAway errors are reported, enabling immediate NullAway integration. For cases where 167 errors cannot be fully resolved with annotations alone, Annotator automatically applies suppression 168 annotations. It also considers build target boundaries and can be configured to avoid adding 169 annotations that might trigger errors in downstream dependencies. This modular approach supports 170 large-scale projects, allowing them to adopt NullAway incrementally, target by target. Used internally 171 at Uber, Annotator has successfully annotated millions of lines of code, facilitating the integration 172 of an entire Java monorepo into NullAway. 173 </p> 174 <p class="exp-highlight"> 175 <i class="fas fa-star"></i>
176 Recognized with a dedicated blog post: <a href="https://gitar.ai/blog/automating-java-codebase-annotations-for-null-safety">Automating Java Codebase Annotations for Null Safety</a> by <a href="https://gitar.ai/">Gitar</a>. 177 </p> 178 </div> 179 </div> 180 </div> 181 </div> 182 </div> 183 </section> 184 185 <!-- Publications Section --> 186 <section class="section" id="publications"> 187 <div class="container"> 188 <div class="section-header" data-aos="fade-up"> 189 <span class="section-tag">03</span> 190 <h2 class="section-title">Publications</h2> 191 <div class="section-line"></div> 192 </div> 193 <div class="row justify-content-center"> 194 <div class="col-lg-10"> 195 196 <div class="pub-card" data-aos="fade-up" data-aos-delay="100"> 197 <div class="pub-venue-badge">ISSTA 2026</div> 198 <h3 class="pub-title">LLM-Based Repair of Static Nullability Errors</h3> 199 <p class="pub-authors">Nima Karimipour, Pascal Joos, Michael Pradel, Martin Kellogg, and Manu Sridharan</p> 200 <p class="pub-venue-detail">In 35th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2026)</p> 201 <div class="pub-links"> 202 <a href="files/papers/issta2026-llm-nullability-repair.bib" class="pub-link"><i class="fas fa-quote-right"></i> BibTeX</a> 203 <a href="https://arxiv.org/abs/2507.20674" class="pub-link"><i class="fas fa-external-link-alt"></i> DOI</a> 204 <a href="https://arxiv.org/pdf/2507.20674" class="pub-link"><i class="fas fa-file-pdf"></i> PDF</a> 205 </div> 206 </div> 207 208 <div class="pub-card" data-aos="fade-up" data-aos-delay="150"> 209 <div class="pub-venue-badge">ECOOP 2025</div> 210 <h3 class="pub-title">Practical Type-Based Taint Checking and Inference</h3> 211 <p class="pub-authors">Nima Karimipour, Kanak Das, Behnaz Hassanshahi and Manu Sridharan</p> 212 <p class="pub-venue-detail">In 39th European Conference on Object-Oriented Programming (ECOOP 2025)</p> 213 <div class="pub-links"> 214 <a href="files/papers/ecoop2025-taint-inference.bib" class="pub-link"><i class="fas fa-quote-right"></i> BibTeX</a> 215 <a href="https://arxiv.org/abs/2504.18529" class="pub-link"><i class="fas fa-external-link-alt"></i> DOI</a> 216 <a href="files/papers/ecoop2025-taint-inference.pdf" class="pub-link"><i class="fas fa-file-pdf"></i> PDF</a> 217 </div> 218 </div> 219 220 <div class="pub-card" data-aos="fade-up" data-aos-delay="200"> 221 <div class="pub-venue-badge">FSE 2025</div> 222 <h3 class="pub-title">A New Approach to Evaluating Nullability Inference Tools</h3> 223 <p class="pub-authors">Nima Karimipour, Erfan Arvan, Martin Kellogg, and Manu Sridharan</p> 224 <p class="pub-venue-detail">In 33rd ACM International Conference on the Foundations of Software Engineering (FSE 2025)</p> 225 <div class="pub-links"> 226 <a href="files/papers/fse2025-nullability-comparison.bib" class="pub-link"><i class="fas fa-quote-right"></i> BibTeX</a> 227 <a href="http://dx.doi.org/10.1145/3715732" class="pub-link"><i class="fas fa-external-link-alt"></i> DOI</a> 228 <a href="files/papers/fse2025-nullability-comparison.pdf" class="pub-link"><i class="fas fa-file-pdf"></i> PDF</a> 229 </div> 230 </div> 231 232 <div class="pub-card" data-aos="fade-up" data-aos-delay="250"> 233 <div class="pub-venue-badge">FSE 2023</div> 234 <h3 class="pub-title">Practical Inference of Nullability Types</h3> 235 <p class="pub-authors">Nima Karimipour, Justin Pham, Lazaro Clapp, and Manu Sridharan</p> 236 <p class="pub-venue-detail">In 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2023)</p> 237 <div class="pub-links"> 238 <a href="https://manu.sridharan.net/pubs_bib.html#karimipour23practical" class="pub-link"><i class="fas fa-quote-right"></i> BibTeX</a> 239 <a href="http://dx.doi.org/10.1145/3611643.3616326" class="pub-link"><i class="fas fa-external-link-alt"></i> DOI</a> 240 <a href="https://manu.sridharan.net/files/FSE23Practical.pdf" class="pub-link"><i class="fas fa-file-pdf"></i> PDF</a> 241 </div> 242 <div class="pub-talk" id="presentation-embed-39014105"></div> 243
243<script src="https://slideslive.com/embed_presentation.js"></script>
243 244
244<script> 245 document.addEventListener("DOMContentLoaded", function () { 246 new SlidesLiveEmbed("presentation-embed-39014105", { 247 presentationId: "39014105", 248 autoPlay: false, 249 verticalEnabled: true, 250 }); 251 }); 252 </script>
252 253 </div> 254 255 </div> 256 </div> 257 </div> 258 </section> 259 260 <!-- Projects Section --> 261 <section class="section section-alt" id="projects"> 262 <div class="container"> 263 <div class="section-header" data-aos="fade-up"> 264 <span class="section-tag">04</span> 265 <h2 class="section-title">Open Source</h2> 266 <div class="section-line"></div> 267 </div> 268 <div class="row justify-content-center"> 269 <div class="col-lg-10"> 270 <div class="project-grid"> 271 272 <a href="https://github.com/ucr-riple/NullAwayAnnotator" target="_blank" rel="noopener noreferrer" class="project-card" data-aos="fade-up" data-aos-delay="100"> 273 <div class="project-icon"><i class="fas fa-robot"></i></div> 274 <h3 class="project-name">Annotator</h3> 275 <p class="project-desc">Automated tool that integrates NullAway into existing codebases by inferring and applying nullability annotations at scale.</p> 276 <span class="project-tag">Java</span> 277 </a> 278 279 <a href="https://github.com/uber/NullAway" target="_blank" rel="noopener noreferrer" class="project-card" data-aos="fade-up" data-aos-delay="200"> 280 <div class="project-icon"><i class="fas fa-shield-alt"></i></div> 281 <h3 class="project-name">NullAway</h3> 282 <p class="project-desc">A fast, practical null pointer checker for Java, built as an Error Prone plugin. Core contributor with type inference extensions.</p> 283 <span class="project-tag">Java</span> 284 </a> 285 286 <a href="https://github.com/ucr-riple/TaintTyper" target="_blank" rel="noopener noreferrer" class="project-card" data-aos="fade-up" data-aos-delay="300"> 287 <div class="project-icon"><i class="fas fa-fingerprint"></i></div> 288 <h3 class="project-name">TaintTyper</h3> 289 <p class="project-desc">A practical type-based taint checker and inference tool for Java, exceeding recall of state-of-the-art whole-program taint analyzers.</p> 290 <span class="project-tag">Java</span> 291 </a> 292 293 </div> 294 </div> 295 </div> 296 </div> 297 </section> 298 299 <!-- Education Section --> 300 <section class="section" id="education"> 301 <div class="container"> 302 <div class="section-header" data-aos="fade-up"> 303 <span class="section-tag">05</span> 304 <h2 class="section-title">Education</h2> 305 <div class="section-line"></div> 306 </div> 307 <div class="row justify-content-center"> 308 <div class="col-lg-10"> 309 <div class="edu-grid"> 310 311 <div class="edu-card" data-aos="fade-up" data-aos-delay="100"> 312 <div class="edu-icon"><i class="fas fa-graduation-cap"></i></div> 313 <h3 class="edu-degree">Ph.D. in Computer Science and Engineering</h3> 314 <p class="edu-school"><a href="https://www.ucr.edu/">University of California, Riverside</a></p> 315 <p class="edu-date">2020 – 2025</p> 316 <p class="edu-detail">Advisor: <a href="https://manu.sridharan.net/">Prof. Manu Sridharan</a></p> 317 </div> 318 319 <div class="edu-card" data-aos="fade-up" data-aos-delay="200"> 320 <div class="edu-icon"><i class="fas fa-university"></i></div> 321 <h3 class="edu-degree">B.Sc. in Computer Engineering</h3> 322 <p class="edu-school"><a href="https://en.sharif.edu">Sharif University of Technology</a></p> 323 <p class="edu-date">2014 – 2018</p> 324 </div> 325 326 </div> 327 </div> 328 </div> 329 </div> 330 </section> 331 332 <!-- Footer --> 333 <footer class="site-footer"> 334 <div class="container"> 335 <div class="footer-content"> 336 <div class="footer-links"> 337 <a href="mailto:[email protected]" title="Email"><i class="fas fa-envelope"></i></a> 338 <a href="https://github.com/nimakarimipour" target="_blank" rel="noopener noreferrer" title="GitHub"><i class="fab fa-github"></i></a> 339 <a href="https://www.linkedin.com/in/nima-karimipour-846359144/" target="_blank" rel="noopener noreferrer" title="LinkedIn"><i class="fab fa-linkedin-in"></i></a> 340 <a href="https://scholar.google.com/citations?user=zPD7PukAAAAJ&hl=en" target="_blank" rel="noopener noreferrer" title="Google Scholar"><i class="fas fa-graduation-cap"></i></a> 341 </div> 342 <p class="footer-text">Nima Karimipour</p> 343 </div> 344 </div> 345 </footer> 346 347
347<script src="scripts/bootstrap.bundle.min.js?ver=1.2.0"></script>
347 348
348<script src="https://unpkg.com/[email protected]/dist/aos.js"></script>
348 349
349<script src="scripts/main.js?ver=3.1.0"></script>
349 350</body> 351 352</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.