Intervjuer
Itamar Friedman, VD och medgrundare av CodiumAI – Intervju-serie

Itamar Friedman är VD och medgrundare av CodiumAI. Codium fokuserar på “kodintegritet”-sidan av kodgenerering – generering av automatiserade tester, kodförklaringar och recensioner. De har släppt forskning om att generera kodsolutioner för tävlingar i programmering som överträffar Google DeepMind.
När och hur blev du initialt intresserad av AI?
2009 arbetade jag på Mellanox (förvärvad av NVIDIA (NVDA )) och studerade elektroteknik. När jag insåg att många av de tråkiga utvecklingsprocesserna på Mellanox kunde automatiseras med maskinlärningsalgoritmer, bytte jag till optimering och maskinlärning och avslutade en masterexamen i området. 2010 arbetade jag redan på ett djupinlärningsprojekt (med 3 lager djup neurala nätverk) och lade grunden för min tid på Alibaba, där jag ledde en forskargrupp som specialiserade sig på neurala arkitektursökningar, modellträning och byggde AutoML-verktyg för utvecklare. Runt 2021 var jag inte rädd för att kalla vårt arbete “AI”, eftersom stora språkmodeller blev kraftfulla verktyg och min fantasi om vad som kunde uppnås med dem växte.
Din tidigare startup, Visualead, som fokuserade på datorseende, förvärvades av Alibaba Group. Vad var den här startupen och vad var några av dina viktigaste lärdomar från den här erfarenheten?
Visualead specialiserade sig på att skanna logotyper, QR-koder och allt däremellan, inklusive att skydda och dölja information i bilder för att möjliggöra säkra P2P-transaktioner och engagemang. På Visualead körde vi algoritmer på mobila enheter sedan 2012, inklusive modeller. Det var en utmaning och knepigt att göra det på den tiden, och vi lärde oss mycket om att bygga effektiva modeller och skyddsräcken runt dessa statistiska varelser.
Än idag tillämpar jag fortfarande lärdomarna från den tiden på nuvarande projekt jag genomför – till exempel när vi byggde den öppna lösningsgenereringsverktyget AlphaCodium introducerade vi konceptet Flow Engineering och tillämpade det för att bygga en flödesväg för att skydda LLM-modellernas utdata.
Kan du dela med dig av historien bakom lanseringen av CodiumAI?
På Alibaba såg jag förstahands hur ett fel i koden kunde leda till ett miljondollarsproblem och de utmaningar utvecklare stod inför för att hålla jämna steg med kodgenerering utan att offra kvalitet eller integritet. Det här problemet kvarstår, och idag har lågkvalitativ kod tillskrivits ett trilliondollarsproblem som fortsätter att växa.
Teamet på CodiumAI specialiserar sig på att bygga AI-utrustade verktyg i stor skala och drivs av att tackla de smärtor som utvecklare står inför. Med födelsen av nya LLM och AI-funktioner förstod vi att detta var vår chans att bygga en holistisk kodintegritetsplattform för att hjälpa upptagna team som oss själva att minska buggar och mildra andra integritetsproblem. När allt mer kod genereras av AI blev problemet med att mäta denna kod och säkerställa att den fungerar som avsett en kritisk smärtfaktor och en som vi var drivna att lösa. Att bygga AI-utrustade verktyg i stor skala, och därmed mätning, är ett väsentligt koncept för oss.
Som en grupp erfarna utvecklare förstår vi; att hantera tråkiga uppgifter som testning och kodgranskning kan vara frustrerande. Vi är starkt uppdrivna att slutligen möjliggöra för upptagna team att öka och hantera sin kodintegritet.
Kan du beskriva vilken typ av icke-trivial analys CodiumAI utför på kod, och hur detta stöder utvecklare i att förbättra kodkvaliteten?
Från och med nyligen har de befintliga verktygen som finns tillgängliga för utvecklare erbjudit liten värde – men med ankomsten av LLM (ChatGPT, Copilot etc.) börjar funktionerna att överträffa förväntningarna, och stödet som finns tillgängligt för utvecklare är inte längre trivialt.
Codiumate-kodagenten som utvecklats av CodiumAI erbjuder utvecklare unika verktyg för att förbättra sin arbetsflöde och förbättra kodgenerering. Codiumate strömlinjeformar utvecklingsprocessen genom att tillhandahålla automatiserad assistans under hela koduppgiften. Med hjälp av de befintliga kodsnuttarna som en mänsklig utvecklare markerar i sin miljö kan agenten automatiskt utarbeta en lättföljande och sammanhängande utvecklingsplan, skriva kod enligt den planen, identifiera dubblettkod som utvecklaren kan vilja använda eller ta bort, utarbeta dokumentation och föreslå tester för att säkerställa att koden fungerar korrekt innan den distribueras i en live-miljö.
Codiumate tillhandahåller utvecklare med djupgående beteendeanalys – belysande möjliga beteenden och grenar som koden under test omfattar. Detta möjliggör för utvecklaren att undersöka den genererade koden och skapa tester som (gren) täcker alla beteenden, vilket förbättrar koden mer än om utvecklaren hade tagit hänsyn till alla möjliga fall på egen hand.
Vilka specifika funktioner erbjuder PR-agenten för pull request-analys, och hur strömlinjeformar det granskningsprocessen på plattformar som GitHub och GitLab (GTLB )?
PR-agenten erbjuder en mängd olika funktioner som är utformade för att förbättra och strömlinjeforma pull request-analys- och granskningsprocessen på olika git-leverantörer.
Automatisk PR-beskrivningsgenerering genererar automatiskt omfattande och detaljerade beskrivningar för pull requests. Den här funktionen hanterar vanliga problem där utvecklare kan hoppa över detaljerade PR-beskrivningar på grund av tidsbegränsningar eller försummelse. Med automatiserade beskrivningar är varje PR utrustad med tillräcklig kontext, vilket gör det lättare för granskare att förstå ändringarna utan att behöva tolka koddifferenserna i stor utsträckning. Vi har också byggt in automatisk PR-granskning för att tillhandahålla utvecklare med en omfattande översikt av PR som låter dem upptäcka potentiella problem som buggar, säkerhetsrisker eller kodlukt proaktivt. Den här förvägskommunikationen tillåter utvecklare att göra korrigeringar innan granskningsprocessen, vilket förbättrar kvaliteten på koden som når granskarna.
Genom att utnyttja AI kan automatiserade kodförslag också föreslå förbättringar eller alternativa implementeringar direkt inom PR-gränssnittet. Dessa förslag kan vara optimeringar, efterlevnad av kodningsstandarder eller till och med arkitektoniska förbättringar, vilket hjälper till att höja kvaliteten på kodbasen gradvis.
PR-agenten stöder ett antal alternativ för anpassning av kommandona den erbjuder. Ett av de mest användbara anpassningsalternativen är användningen av anpassade etiketter för att förbättra organisationen och hanteringen av pull requests på plattformar som GitHub och GitLab. Den här funktionen bidrar till den operativa effektiviteten och tydligheten i utvecklings- och granskningsprocesserna.
Hur genererar CodiumAI meningsfulla tester, och vad gör dessa tester mer effektiva än standardenhetstester?
Vi förbättrar testgenerering genom att skanna kodrepositoryn för relevanta kodsnuttar som hör till koden under test. Genom att använda kedjetänkande-prompt för att kartlägga alla möjliga kodbeteenden, inklusive typiska vägar och kanter, använder vår metod kontextspecifik hämtning och anpassade prompt som är anpassade till olika programmeringsspråks unika syntax och semantik. Dessa anpassade prompt inkorporerar språkdomänsexpertkunskap för att säkerställa att testerna uppfyller branschstandarder. Dessutom konfigurerar CodiumAI specifika körningsmiljöer för att bättre upptäcka buggar och generera självläkande tester. Dessa funktioner gör att CodiumAI-genererade tester är mer omfattande än standardenhetstester, som ofta missar oavsiktliga beteenden på grund av utvecklares inbyggda bias och begränsningar i att förutse alla möjliga scenarier. Detta resulterar i tester som inte bara är omfattande utan också mer effektiva för att upptäcka subtila buggar och kanter.
Baserat på användarfeedback, vilka är de mest värdefulla funktionerna i CodiumAI, och hur har dessa funktioner påverkat utvecklares produktivitet?
Baserat på användarfeedback vi har fått ser vi att /fråga med kodblockssammanhang och /testgenerering-funktionerna i Codiumate-agenten är mycket efterfrågade och förbättrar utvecklares arbetsflöde.
Med /fråga med kodblockssammanhang (se dokumentation här: /fråga) kan utvecklare ställa öppna frågor om sin kod eller begära kodförbättringar eller recensioner under en kostnadsfri chatsession. Den här funktionen är särskilt fördelaktig för att få en djupare förståelse av kodbasen, eftersom modellen behåller hela sammanhanget för projektet, vilket möjliggör att hantera mycket detaljerade och specifika frågor.
/testgenerering-verktyget (se dokumentation här: /test) tillåter utvecklare att generera omfattande testsviter för sin kod med bara ett klick. Att undersöka kodbeteende, identifiera och lösa buggar i tid och snabbt expandera kodtäckning är en stor tillgång för produktivitet.
PR-agentens /granska-funktion (se dokumentation här – /granska) skannar PR-kodändringar och genererar automatiskt en PR-granskning för att upptäcka problem innan utvecklare pushar till produktion. /beskriv-funktionen (se dokumentation här – /beskriv) skannar PR-kodändringarna och genererar en beskrivning för PR – titel, typ, sammanfattning, genomgång och etiketter, vilket sparar utvecklare tid och energi som de kan använda för mer krävande eller kreativa uppgifter.
Hur identifierar CodiumAI kanter och misstänkta beteenden i koden?
Våra verktyg skannar utvecklares repository för relevanta kodsnuttar som hör till koden under test, och med hjälp av kedjetänkande-prompt kartlägger vi alla möjliga kodbeteenden och visar dem för utvecklaren. CodiumAI kan identifiera misstänkta beteenden direkt (oavsett testgenerering), genom att identifiera inkonsekvenser eller avvikelser mellan olika kodsnuttar eller kodsnuttar och tillhörande dokumentation.
CodiumAI stöder stora programmeringsspråk; kan du förklara hur det hanterar språkspecifika nyanser i kodanalys och testgenerering?
För stora programmeringsspråk går vår plattform utöver grundläggande stöd genom att implementera specialiserade tekniker. Dessa inkluderar kontextspecifik hämtning och anpassade prompt som är anpassade till varje språks unika syntax och semantik. Dessa anpassade prompt inkorporerar språkdomänsexpertkunskap för att få branschstandardresultat. Dessutom tillhandahåller vi möjligheter att etablera en körningsmiljö specifikt för dessa språk, vilket förbättrar vår verktygs förmåga att upptäcka buggar och generera självläkande tester effektivt.
För mindre vanliga språk utnyttjar vi stora språkmodeller (LLM) som förstår flera programmeringsspråk. Detta kompletteras av vår allmänna kontextinfrastruktur och adaptiva promptsystem, som tillsammans möjliggör korrekt kodanalys och testgenerering i olika programmeringsmiljöer. Genom att använda en tvåstegsapproach kan vi säkerställa omfattande stöd oavsett programmeringsspråk.
Vilka framtida förbättringar planeras för CodiumAI för att ytterligare stödja och förenkla utvecklares uppgifter?
CodiumAIs framtida utvecklingsstrategi betonar att förbättra den tillgängliga sviten av AI-verktyg för att sömlöst integreras över alla stadier av programvaruutvecklingslivscykeln. Genom att använda avancerade flödesprinciper för att strömlinjeforma och förenkla utvecklares arbetsflöde kommer våra agenter att tillhandahålla betydande värde över olika utvecklingsstadier. Dessutom är CodiumAI engagerat i att säkerställa att dessa verktyg excellerar i att hantera komplexa, realistiska kod- och textscenarier, vilket gör dem oumbärliga i dagliga programmeringsuppgifter. Denna holistiska strategi syftar till att höja vårt erbjudande till ett robust, dagligt verktyg för utvecklare, vilket förbättrar produktivitet och effektivitet i programvaruutvecklingsprocessen.
Tack för den underbara intervjun, läsare som vill lära sig mer bör besöka CodiumAI.












