PageSourceSearch

https://nimakarimipour.github.io/

html nimakarimipour.github.io collected 2026-10-03 09:41:02 UTC 19,222 bytes, 352 lines download raw bytes

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> &nbsp;&middot;&nbsp; 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> &mdash; <a href="https://gitar.ai">Gitar</a></p>
119                </div>
120                <span class="exp-date">2026 &ndash; 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 &ndash; 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> &mdash; Programming Systems Group (<a href="https://www.uber.com/fr/en/about/science/">PSG</a>)</p>
158                </div>
159                <span class="exp-date">Jun &ndash; 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 &ndash; 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 &ndash; 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.