Blog
People Management in the Age of AI
The dominant story in tech right now is that flatter orgs, smaller teams, fewer people in the middle, and more "leverage" per leader are the path forward. AI is the engine being used to justify it: agents will do the wor…
Coding on a Phone: What I Learned Building Software on Mobile in the Last Three Weeks
Over the past few weeks—largely out of a sense of FOMO—I’ve been forcing myself to do something I’ve fantasized about for a long time: building software primarily on my phone. Not just reviewing code or fixing typos, but…
Autopilot, Copilot, and Software Developers
import DeveloperTimeline from '@/components/DeveloperTimeline'; Language models (LLMs) are rapidly becoming essential developer tools—but the metaphors we use to describe them matter. One I often hear is: "LLMs are the a…
Degrees are merely proof of the money you've spent on a course...
I’ve wanted to be a pilot for as long as I can remember. Growing up, planes always held a kind of magic. Somewhere along the way, I even tried out for the Indian Air Force. I passed the pilot aptitude test but didn’t mak…
The AI Remote Has Arrived: Let Go of the Knob
Image generated using ChatGPT Growing up, I always found it both frustrating and amusing to watch my dad “glitch” in real-time as we moved from a 9-channel TV with a manual knob to a 999-channel remote-controlled set. It…
Developer Tooling in the age of LLM
Recently, I had the pleasure of sharing some insights @AI-Engineer's-World-Fair about the work our team at GitHub Next is doing in the space of developer tooling in the age of AI. I truly believe that language models are…
Developer Agents & The Future of Software Development
In a panel discussion at the GithubUniverse , we delved into the evolving dynamics between developers and AI agents, highlighting key insights for the future of software development. - 🔍 Transparency Matters: Developers…
Team Values
Lately, I have found myself frequently revisiting some ideas/heuristics/guidelines/norms or values(for the lack of a better word) to govern my interactions with the team members. Since these have been useful for me I dec…
J.A.R.V.I.S. for Developers
Our work on Towards J.A.R.V.I.S. for Software Engineering: Lessons Learned in Implementing a Natural Language Chat Interface was accepted in NL4SE 2018. This work was done in collaboration with Phase Change staff members…
Screens, Windows, Distractions, Focus, and Work"
This post is about my ongoing journey to remedy my "increasing window" and "decreasing productivity" problem. --- tl;dr : Actively minimizing distractions fosters a productive work environment. I like most programmers on…
'Mini-Servers' for 'Micro-Services'
When we moved from being primarily focused on innovation to also developing a demo platform, our developers began to work with very different frameworks and libraries. As our interactions with more libraries and framewor…
A few Billion Lines of code Later: Using Static Analysis to Find Bugs in the Real World
In this article authors document their experience of commercializing a static-analysis based bug finding tool. In particular, authors outline typical pitfalls that future tool-smiths will find useful to transition an awe…
API Mapping using Text Mining
Our work on inferring likely method mappings across APIs was accepted in SCAM 2015. Abstract Developers often release different versions of their applications to support various platform/programming-language application…
Tricorder: Building a Program Analysis Ecosystem
In this paper, authors provide an overview of the program analysis platform "Tricorder" that is being currently used in Google for program analysis. They also present a set of guiding principles that went into creating t…
When, How, and Why Developers (Do Not) Test in Their IDEs
In this paper, authors attempt to address the pressing issues: "How much should we test? And when should we stop testing?" in part, by analyzing the development activities of 416 developers spanning several countries hav…
Hello World!
The customary hello world! post. Java public class Blog{ public static void main (String[] args) { System.out.println("Hello World!"); } }