Skip to content

Instantly share code, notes, and snippets.

View prasann's full-sized avatar
💬
Living by the code

Prasanna V Nagarajan prasann

💬
Living by the code
View GitHub Profile
{
"$schema": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json",
"basics": {
"name": "Prasanna V Nagarajan",
"label": "Principal Software Engineer - Scaling AI/ML solutions at Microsoft",
"image": "https://avatars.githubusercontent.com/u/380340?s=400&u=a1f7859d9d68248b6c367365610866b1bcaabdb4&v=4",
"email": "[email protected]",
"phone": "+91-9940202502",
"url": "https://prasanna.dev",
"summary": "Principal Software Engineer at Microsoft with 16+ years of experience in building and scaling enterprise software solutions. Currently leading AI/ML initiatives in Industry Solutions Engineering, focusing on Generative AI applications and data platforms. Proven track record of leading engineering teams, developing distributed systems, and creating scalable solutions across multiple clients. Passionate contributor to open-source projects with expertise spanning full-stack development, cloud-native applications, and technical leadership.",
{
"basics": {
"name": "Thomas Edison",
"label": "Inventor and Businessman",
"picture": "https://example.com/photo.jpg",
"email": "[email protected]",
"phone": "(123) 456-7890",
"website": "https://thomasedison.com",
"summary": "Prolific inventor and businessman known for developing many devices that greatly influenced life around the world, including the phonograph, the motion picture camera, and the electric light bulb.",
"location": {
@prasann
prasann / demo-app.json
Last active May 24, 2025 10:51
Bicep to deploy an app to Az function
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.32.4.45862",
"templateHash": "1911219512878221344"
}
},
@prasann
prasann / rate-limiting-dalle-apim.md
Last active June 25, 2024 08:56
APIM policy to rate limit DallE endpoints based on the number of images based requested
@prasann
prasann / leave-updater.gs
Last active November 13, 2021 15:28
Updates the calendar with a day long event when someone applies leave in leave planner
const leaveTag = "label-to-which-the-emails-are-marked";
const calendarId = "new-calendar-id";
const nameRegEx = /Leave plan for (?<name>.*) is as below/;
const leaveTypeRegEx = /Leave Type:\s*(?<type>(.)*)?/;
const startDateRegEx = /Start Date:\s*(?<leave>(?:.*)202.)(?:,\s)*(?:(Half-Day:\s*(.*)))?/;
const endDateRegEx = /End Date:\s*(?<leave>(?:.*)202.)(?:,\s)*(?:(Half-Day:\s*(.*)))?/;
function applyRegEx(regEx, key, messageBody){
const matches = regEx.exec(messageBody);
return matches?.groups && matches.groups[key] ? matches.groups[key] : undefined;
@prasann
prasann / error_handler.ts
Created May 25, 2020 19:44
Centralized error handler - Express application
import logger from './logger';
export class AppError extends Error {
statusCode: number;
message: string;
constructor(statusCode, message) {
super(message);
this.statusCode = statusCode;
this.message = message;
@prasann
prasann / webpack.config.js
Created June 11, 2018 11:09
A sample webpack config to have multiple html generated using HTMLWebpackPlugin
const templateFileMapper = [{template: "temp1.hbs", file: "temp1.html"},
{template: "temp2.hbs", file: "temp2.html"},
{template: "temp3.hbs", file: "temp3.html"}];
const htmlPlugins = () => {
return templateFileMapper.map(entry => {
return new HtmlWebpackPlugin({
template: entry.template,
filename: entry.file,
});
.panel--1UaEBftHJ4F {
margin-top: 10px;
font-size: 150%;
}
<OrderSection>
<SearchTile
orderId={this.props.orderId} />
</OrderSection>
@prasann
prasann / migration.clj
Last active January 31, 2018 20:33
Clojure utility to run database migration with flyway
(ns app.migration
(:require [environ.core :refer [env]])
(:import org.flywaydb.core.Flyway
org.flywaydb.core.internal.info.MigrationInfoDumper))
;; Build DB String from the Environment Variables
(def db-url (str "jdbc:postgresql://"
(env :pg-db-host) ":"
(env :pg-db-port) "/" (env :pg-db-name)))