Portrait of Saiprasaad Kalyanaraman

Full-Stack Software Engineer · New York, USA

Saiprasaad Kalyanaraman

I build software the AI-driven way, taking web and mobile applications from idea to production, with AI speeding up the work and powering the features people use.

saiprasaad1999@gmail.com Resume (PDF) GitHubLinkedInHackerRank

About

I'm a full-stack software engineer with a Master's in Computer Science and almost 3 years of experience building scalable web and mobile applications.

At Afficiency, an insurtech startup, I build with React, Angular, Flask, Spring Boot, MySQL and Redis, and I'm exploring AI-powered tools and microservices that make systems faster and workflows simpler.

I've won a hackathon, judged another, and I keep learning. I like blending technology and creativity to solve real problems and build experiences people enjoy using.

Experience
almost 3 years full-time, plus internships
Currently
Full Stack Developer, Afficiency
Education
Master of Computer Science, Illinois Tech
Based in
New York, USA

Experience

  1. Full Stack Developer

    Afficiency · New York, USA

    · 2 yrs 1 mo · Full-time

    • 10,000+ users on web and mobile
    • 3 major life-insurance carriers
    • 100+ high-priority production issues resolved
    • Designed and developed responsive user interfaces in React, building a scalable front-end architecture that supports 10,000+ users across web and mobile platforms.
    • Implemented and maintained microservices in Flask and Spring Boot, using Redis for caching and MySQL for relational data to improve scalability and performance.
    • Delivered enterprise applications for three major life-insurance carriers and resolved 100+ high-priority production issues through HubSpot, improving UI/UX and back-end workflows.
    • Used GitLab for version control, CI/CD and code review, streamlining the deployment pipeline and keeping releases reliable.
    • React
    • Flask
    • Spring Boot
    • Redis
    • MySQL
    • Microservices
    • GitLab
    • CI/CD
    • HubSpot
  2. Student Consultant, Software Engineering

    Open Avenues Career Pathways · Chicago, USA

    · 3 mos · Internship

    • Designed and developed the Campus Cooks mobile app in Flutter with Koodos Labs, letting students prepare recipes from the ingredients they select in a single tap.
    • Integrated a Firebase back end for real-time data storage and user authentication.
    • Designed interfaces in Figma that follow modern design principles.
    • Flutter
    • Firebase
    • Figma
    • Dart
    • UI/UX design
  3. Software Engineer Intern

    Hexaware Technologies · Chicago, USA

    · 3 mos · Internship

    • Built responsive single-page applications with the modular architecture of Angular.
    • Combined Hibernate ORM with Spring Boot services for efficient data access and manipulation.
    • Angular
    • Spring Boot
    • Hibernate
    • TypeScript
    • Java
  4. Software Engineer

    Ernst & Young · Chennai, India

    · 11 mos · Full-time

    • 8 internal microservices connected through REST APIs
    • Built scalable microservice applications in Spring Boot and integrated multiple databases, including MySQL and PostgreSQL.
    • Deployed REST APIs across 8 internal microservices so data flowed cleanly between services.
    • Used Git with the team to manage changes and resolve conflicts during development.
    • Designed optimized MySQL schemas and wrote SQL for complex data structures.
    • Spring Boot
    • Java
    • MySQL
    • PostgreSQL
    • REST APIs
    • Microservices
    • Git
    • SQL

Projects

Monitorly

Session replay platform · 2026 · In production

Session replay you can drop into any app: record every session, replay it like a video and get alerted when users hit errors or friction.

~100k sessions recorded so far3 lines to add it to any app<10s from a click to a replayable session6 friction signals, like rage clicks and OTP retries

A self-hosted, rrweb-powered session replay and analytics platform, built end to end, from the SDK to the dashboard. A three-line SDK records what users do, a Flask and Redis pipeline stores it without slowing the page, and a React dashboard replays each session like a video, live or after the fact. It has recorded around 100,000 sessions so far, and when something goes wrong, a Microsoft Teams alert opens the replay at that exact moment.

How it works

  1. A three-line SDK wraps rrweb and records the page, console logs, network calls and device details, with sensitive fields masked
  2. A Web Worker sends batches every 10 seconds to a Flask ingest service, which queues them on a Redis stream and returns at once
  3. A Python worker saves the recordings to Azure Blob Storage, indexes them in PostgreSQL and rolls up stats for each session
  4. Errors and friction signals page the team in Microsoft Teams, with a link that opens the replay at that moment
  5. The React dashboard replays sessions like a video, or follows one live as it happens

Features

  • Drop-in SDK. Three lines add recording to any web app. It captures page snapshots, console logs, network requests and device details without blocking the page.
  • Replay like a video. Play, pause, skip inactivity, change speed from 0.25x to 8x and jump to any moment. Seeking starts from the nearest full snapshot, so jumps land exactly.
  • Watch sessions live. A live strip lists the sessions happening right now, and live mode follows one as it happens, smoothed so it plays at a natural pace.
  • DevTools beside the video. A timeline of pages visited, plus network and UI event panels that scroll with playback. Clicking any row jumps the replay to that moment.
  • Alerts in Teams. Errors and friction such as rage clicks, OTP retries and blocked form submits post to Microsoft Teams with a link to the exact second. Friction alerts are deduplicated, so a retry never pages twice.
  • Privacy built in. Sensitive fields such as Social Security numbers, bank details and dates of birth are masked in the recording, and passwords always are.
  • Fast by design. The ingest service only queues each batch and returns, and a separate worker does the slow storage work, so recording never slows the app.
  • Session health scores. Analytics APIs score every session from its console errors and failed requests, and roll up trends, devices, pages and locations.
  • rrweb
  • JavaScript
  • React
  • Material UI
  • TanStack Query
  • Python
  • Flask
  • Redis

Repo Vision

Data & ML web app · 2024

Forecasts GitHub activity for popular open-source repositories with three different models.

5 repositories tracked3 forecasting models3 microservices7 activity series

A dashboard that pulls a year of issues, pull requests, commits, branches, releases and contributions for five well-known repositories, then forecasts what comes next with an LSTM, Prophet and SARIMAX so the three models can be compared side by side.

How it works

  1. Pick a repository in the React dashboard
  2. The Flask service collects a year of activity from the GitHub API
  3. pandas groups it by day, week and month
  4. The forecasting service trains an LSTM and fits Prophet and SARIMAX
  5. Charts are saved to Google Cloud Storage and shown in the dashboard

Features

  • Three models, side by side. An LSTM built with TensorFlow and Keras, Prophet, and a SARIMAX model from statsmodels each forecast the same history.
  • Seven activity series. Issues created and closed, pull requests, commits, branches, releases and contributions.
  • Peak-activity insights. For each model it reports the weekday with the most issues created and closed, and the month with the most issues closed.
  • Cross-repository charts. Highcharts views compare issues, stars and forks across all five repositories, with monthly and weekly issue counts.
  • Well-known repositories. Elasticsearch, Pymilvus, Angular Google Maps, OpenAI Python and the OpenAI Cookbook.
  • Containerized services. The React app, the Flask API and the forecasting service each ship with a Dockerfile for Google Cloud Run.
  • Python
  • Flask
  • React
  • TensorFlow
  • Time-series forecasting
  • Google Cloud
  • Docker
  • Elasticsearch

AI-Powered Log Summarizer

AI tool

Summarizes application logs with an LLM and posts the summary to Microsoft Teams.

Turns noisy application logs into short summaries with a language model and sends them to Microsoft Teams, so anomalies surface in real time and incidents get a faster response.

How it works

  1. Application logs reach a Python and Flask service
  2. An LLM served through Ollama summarizes them and flags anomalies
  3. The summary is posted to Microsoft Teams

Features

  • Real-time summaries. Condenses log activity into a few readable lines instead of pages of raw output.
  • Anomaly detection. Calls out unusual patterns so they are noticed as they happen.
  • Local LLM through Ollama. The model runs through Ollama and is called from the Flask service.
  • Alerts in Teams. Summaries arrive in Microsoft Teams, where the team already works.
  • Python
  • Flask
  • Ollama
  • LLMs
  • Teams API
  • Generative AI

YouTube Translator

AI web app · 2024

Paste a YouTube link, pick Spanish or German, and get the video back with a translated voice-over.

6 pipeline steps2 target languages

A Streamlit app that dubs a YouTube video into another language. It chains speech recognition, machine translation and text-to-speech, then puts the new voice back into the original video and plays it in the browser.

How it works

  1. Download the video with pytube
  2. Extract the audio track with MoviePy
  3. Transcribe the speech with OpenAI Whisper
  4. Translate the transcript with the OpenAI API
  5. Generate the new voice with gTTS
  6. Merge the translated audio into the video

Features

  • One-click dubbing. A single Translate button runs the whole pipeline and plays the finished video on the page.
  • Whisper transcription. Runs OpenAI's open-source Whisper model to turn the speech into text.
  • LLM translation. Translates the transcript with the OpenAI API (gpt-3.5-turbo-instruct).
  • Progress at every step. Shows each stage as it runs: downloading, extracting audio, translating, generating speech and rendering.
  • Python
  • Streamlit
  • Whisper
  • OpenAI APIs
  • gTTS
  • MoviePy
  • NLP
  • Generative AI

JSON Explorer

Developer tool · 2025 · Live · updated September 2026

See JSON as an interactive graph or a fast tree, then compare, repair and convert it, all in the browser.

3 views: graph, tree and compare4 formats it converts to, from TypeScript to CSV4 path styles, from JSONPath to jq130 automated tests

A browser workbench for making sense of large JSON documents. It draws a document as an interactive graph or a virtualized tree, explains any value with its path, a table view and smart previews, and compares two documents by structure instead of by text. It also repairs, formats, converts and shares JSON, works offline and can be embedded in other pages. Parsing, diffing and converting all happen in the browser.

How it works

  1. Paste, open, drop or fetch JSON into the Monaco editor
  2. The native JSON parser reads it, and jsonc-parser turns any error into a plain message with its line and column
  3. The document becomes a graph model with a tidy-tree layout and a flat list of tree rows
  4. React Flow draws the graph, paging wide arrays 50 items at a time, and a virtualized list draws the tree
  5. Selecting a value opens its path, a table view, previews and conversions

Features

  • Graph view. A tidy layout that never overlaps, left to right or top down, with a minimap, arrow-key navigation, PNG and SVG export, and a walkthrough that plays through the graph node by node.
  • Tree view. A virtualized tree that stays smooth with hundreds of thousands of rows, with previews of collapsed values and full keyboard support.
  • Made for big files. Branches collapse automatically, wide arrays load in blocks of 50, and search reaches into collapsed parts and reveals the matches.
  • Details for any value. Its path as JSONPath, JavaScript, jq or JSON Pointer, a table view for arrays of records, and previews for links, dates, colors and images.
  • Exact big numbers. Integers too large for JavaScript, such as 64-bit IDs, are flagged in the views and shown and copied exactly as written.
  • Repair and lossless formatting. Errors with line and column, one-click repair of comments, trailing commas, single quotes and missing brackets, and format, minify and sort that never change a number.
  • Structural compare. Next to a Monaco diff, it lists added, removed and changed values by path, ignoring key order and aligning arrays so one inserted item counts as one change.
  • Convert. Generates TypeScript interfaces, a JSON Schema, YAML or CSV from the whole document or any value, with a live preview.
  • Share, embed and offline. Share links pack the document into the URL, an embed mode takes JSON by postMessage or URL, and it works offline as an installable PWA.
  • React
  • React Flow
  • Monaco Editor
  • Material UI
  • JavaScript
  • Jest
  • PWA
  • Netlify

Campus Cooks

Mobile app · 2024

Snap a photo of your ingredients and get recipes you can make with them.

10 recipes per photo2 food APIs

A Flutter app built with Koodos Labs during the Open Avenues internship. Students photograph the ingredients they have; the app recognizes them with the LogMeal food-recognition API and suggests recipes from Spoonacular that use as many of them as possible, with nutrition facts for each.

How it works

  1. Take a photo with the in-app camera
  2. LogMeal segments the image and names each ingredient
  3. Spoonacular finds recipes that use the most of them
  4. Each recipe card shows its nutrition and cooking time

Features

  • Camera capture. A built-in camera screen that switches between the front and rear cameras.
  • Ingredient recognition. Sends the photo to LogMeal's segmentation API and lists every ingredient it finds.
  • Recipes from what you have. Asks Spoonacular for up to 10 recipes, ranked to use the most detected ingredients.
  • Nutrition at a glance. Calories, protein, fiber, sugar and ready-in time for every recipe.
  • Firebase and Figma. Firebase handles data storage and sign-in; the interface was designed in Figma.
  • Flutter
  • Dart
  • Firebase
  • LogMeal API
  • Spoonacular API
  • Figma
  • UI/UX design

Chicago Streets Harmony

Mobile app · 2024 · Built with Nagarajan Sivakumar

Find upcoming Chicago parades, or help someone experiencing homelessness get support.

A community app for Chicago. It lists upcoming parades along with the marching bands, floats and performers in each, and lets anyone report a person who needs help by sending a photo with their location so city services can respond.

How it works

  1. A Spring Boot REST API serves parade and event data
  2. The Flutter app lists upcoming parades, the next one first
  3. Tap a parade to swipe through its units
  4. Report someone in need with a photo and your GPS location

Features

  • Parade guide. Upcoming parades with dates and descriptions, with the next one highlighted at the top.
  • Swipe through units. A card deck for the marching bands, floats and performers in each parade.
  • Homeless helper. Captures a photo and the GPS location (with its street address) to alert city services.
  • Spring Boot back end. A REST API that serves the event data as JSON to the app.
  • Flutter
  • Dart
  • Spring Boot
  • Java
  • Geolocation
  • REST APIs

Asana Task Automation

Automation

Creates the day's tickets in Asana and keeps them in sync with back-end dashboards.

Automates the daily routine of creating tickets in Asana and syncs their data with the SQL behind the back-end dashboards, so the task board and the dashboards stay consistent without manual updates.

How it works

  1. A Python and Flask job creates the day's tickets through the Asana API
  2. Ticket data is synced with the dashboards' MySQL database

Features

  • Daily tickets. Recurring tickets are created automatically instead of by hand every morning.
  • Dashboard sync. Keeps the MySQL data behind the dashboards in step with Asana.
  • Asana API
  • Python
  • Flask
  • Redis
  • MySQL
  • SQL

Encryption & Decryption Module

Security

AES-CBC encryption shared by a React front end and a Flask back end.

Implements AES-CBC encryption and decryption on both sides of an app, in the React front end and in the Flask back end, so sensitive data is protected end to end.

How it works

  1. Data is encrypted with AES-CBC in the React app
  2. Only the ciphertext travels to the Flask service
  3. The Flask service decrypts it with the same scheme

Features

  • One scheme, two languages. Matching AES-CBC implementations in JavaScript and Python, so either side can read what the other wrote.
  • End-to-end protection. Sensitive fields stay encrypted between the browser and the server.
  • React
  • Flask
  • AES-CBC encryption
  • JavaScript
  • Python

Battleships

Mobile game · 2023

Multiplayer Battleships in Flutter: place five ships, then play people or one of three AI opponents.

5 ships to place3 AI opponents

A Flutter client for a multiplayer Battleships game built on a REST API for authentication and gameplay. Players sign in, start a game against another person or an AI, place five ships and trade shots turn by turn.

How it works

  1. Log in or register; the session token is saved on the device
  2. Start a game against a person or one of three AIs
  3. Place five ships on the board
  4. Take turns firing until every ship is sunk

Features

  • Accounts and sessions. Login and registration, with the session token kept on the device so players stay signed in.
  • Three AI opponents. Random, Perfect and One-ship modes, alongside matchmaking with other players.
  • Game list. Active and finished games with their state (your turn, opponent's turn, matchmaking, won or lost), and swipe to forfeit.
  • Clear feedback. Ships, misses, hits and wrecks are marked on the board, with messages for sunk ships and repeated shots.
  • Flutter
  • Dart
  • Flask
  • MySQL
  • REST APIs

Wordle Clone

Web game · 2024 · Live · rebuilt September 2026

Guess the word in six tries: a daily puzzle and unlimited play in a fast, accessible web game that works offline.

~45 KB gzipped, word list included8,900 words it accepts as guesses2 modes: daily and unlimited62 unit and end-to-end tests

A Wordle clone that began as a Flutter app and was rebuilt as a native web app. It has a daily puzzle everyone shares and an unlimited mode, scores duplicate letters the way the original does, and checks every guess against a dictionary of about 8,900 words. With no build step and no runtime dependencies, the whole game is about 45 KB gzipped, word list included, where the Flutter build downloaded several megabytes. It installs like an app, works offline and is built for accessibility.

How it works

  1. A fixed shuffle of 1,933 answer words picks the same daily word for everyone
  2. Type a guess on a physical or on-screen keyboard
  3. The guess is checked against the word lists, and hard mode makes sure revealed hints are used
  4. Tiles are scored with the original duplicate-letter rules and flip in turn
  5. Stats update, and the Free Dictionary API supplies a short definition of the answer

Features

  • Daily puzzle. Everyone gets the same word each day, and a new one arrives at local midnight.
  • Unlimited mode. Random words as often as you like. It skips the last 300 words played, never spoils the daily word, and lets you give up on a tough one.
  • Faithful rules and hard mode. Duplicate letters score the way the original game scores them, and hard mode makes every revealed hint count in later guesses.
  • Stats and sharing. Win rate, streaks and a guess distribution for each mode, and a spoiler-free emoji grid shared through the share sheet or the clipboard.
  • Learn the word. After each game, a short definition of the answer with a link to Wiktionary.
  • Accessible. Screen reader announcements for every guess, labelled tiles and keys, full keyboard play, reduced motion, dark and high-contrast themes, and no axe-core violations.
  • Installable and offline. A service worker caches the game, and progress, stats and settings persist and stay in sync across open tabs.
  • Tested on every push. Node unit tests cover the rules, stats and sharing, and Playwright plays the game in desktop and mobile Chromium in GitHub Actions.
  • JavaScript
  • HTML
  • CSS
  • PWA
  • Playwright
  • CI/CD
  • REST APIs
  • Flutter

Skills

Programming languages
  • C
  • Java
  • Python
  • Dart
  • Swift
Frontend
  • HTML
  • CSS
  • Bootstrap
  • React
  • Angular
  • JavaScript
  • TypeScript
Backend
  • Spring Boot
  • Node.js
  • Flask
  • PHP
Mobile
  • Flutter
  • Android Studio
Databases
  • MySQL
  • PostgreSQL
  • SQLite
  • MongoDB
  • Firebase
  • Redis
AI & machine learning
  • Generative AI
  • LLMs
  • RAG
  • NLP
  • Ollama
  • OpenAI APIs
  • Hugging Face
DevOps & tools
  • Git
  • Docker
  • AWS
  • Figma
  • Streamlit

Education

Master of Computer Science

Illinois Institute of Technology · Chicago, USA · · GPA 3.7

Activities: Senior TechNews Writer, TechNews Photographer, Library Student Advisor, ACM Member

Coursework: Software Engineering, Enterprise Web Applications, Algorithms, Computer Networks, Machine Learning, Big Data, Mobile App Development, Software Testing & Analysis, Advanced Databases, Software Project Management

Achievements

Awards

  • Best Performer of the MonthAfficiency
  • Winner, ACM Scarlet HackathonACM
  • Judge, HackMHS X HackathonHackMHS
  • Winner, LeetCode ChallengeACM
  • Star PerformerCognizant Student Club
  • Winner, Debugging ContestIEEE Computer Society SBC

Certifications

  • Azure AI FundamentalsMicrosoft
  • Oracle Cloud Infrastructure Foundations AssociateOracle
  • CS50's Introduction to Computer ScienceHarvard / edX
  • Web Development and Coding SpecializationUniversity of Michigan / Coursera
  • Introduction to Generative AIGoogle Cloud / Coursera
  • Certified in C, Java, JavaScript, React and MySQLHackerRank
  • Postman Student ExpertPostman

Contact

Reach me by email at saiprasaad1999@gmail.com, or find me here: