Shankar Tiwari

Software Engineer

Remote / Pune, Maharashtra, India | Email | LinkedIn | GitHub

Summary

Software engineer with 10+ years building and testing web applications in Java, React, and AWS. Work has covered legacy JSP modernization, greenfield microservices, and full-stack features on research compliance products used by 200+ institutions. Contributor to Quarkus (13 PRs merged).

Experience

Software Engineer

Cayuse | Redlands, CA (Nov 2021 - Dec 2024), Remote / Pune, India (Dec 2024 - Present)

  • Embedded Analytics (Full Stack): Shipped Cayuse Insights, the analytics product for research administrators. Built a Spring Boot service that issues signed tokens for role-based access to executive and PI dashboards with tenant isolation, and the React frontend that embeds them. Owned the Sigma embedding tech spec and the Analytics-to-Insights rebrand.
  • Proposals S2S (100+ tickets, Full Stack): Delivered 100+ backend and frontend tickets for the Proposal S2S application. Backend: REST endpoints for proposal search, import/export, routing, submission history, subaward linking, and person/affiliation management, with safe concurrent-edit handling. Frontend: budget replication/escalation, NIH validations, audit history, proposal deadline calendar, permissions with conflict handling, and continuous save with version tracking. Stood up the frontend unit test framework and fixed accessibility issues (screen readers, 400% zoom).
  • Test Automation (Playwright, UI & API): Built a Playwright suite covering proposal submission flows across 150+ grants.gov forms. Parallel sharding keeps full-suite runtime under 10 minutes. A Zephyr → Jira → Playwright pipeline scaffolds tests directly from QA-authored cases, keeping automation aligned with manual coverage. Replaced manual Postman regression with a Playwright API suite covering all 53 QA cases across reports, routing, audit history, preferences, and attachment upload. Results publish to Zephyr weekly. The first run found six backend issues, including role-gated endpoints, invalid Swagger enum values, and a multi-minute report timeout. A permission-enforcement matrix tests proposal-attachment endpoints across base, read-only, admin, and unauthenticated roles, auto-refreshes expired bearer tokens via the OAuth implicit flow, and runs on every pull request and post-deploy through Bitbucket Pipelines. Flaky-test triage and visual regression checks round out the suite.
  • Human Ethics (IRB Compliance, Full Stack): Built features for Cayuse Human Ethics, an IRB protocol management system used by research institutions. Covered protocol submissions, modifications, renewals, incident reporting, and configurable branching forms for investigators, admins, and committee members.
  • COI Migration (100+ tickets, Full Stack): Migrated the legacy Conflict of Interest product from Backbone.js to a modern React + Spring Boot + Flowable stack. Across 100+ tickets: new configurable field types, soft-delete for disclosures, print-to-PDF, autofill for SFI components, role-based dashboards, and a recovery path for stuck workflow instances. Improved UI load time by 3.6s, upgraded Node.js 16 → 18, and fixed multi-tenant bugs for NYU, CUNY, Tulane, and Kettering.
  • Legacy Modernization (Iris): Full-stack work on the legacy Iris platform: bug fixes, new features, and environment compatibility. Built a responsive Bootstrap proof-of-concept from the legacy JSP UI for a sales demo to prospective clients.
  • AI-Assisted Development: Regular use of Claude Code CLI for code generation, refactoring, test authoring, and debugging across Java and React.
  • Technologies: Java 17, Spring Boot, JAX-RS, React, Redux, Playwright, Docker, AWS, SQL Server, Terraform.

Software Engineer

iMedRIS Data Corporation | Redlands, CA | Jan 2018 - Nov 2021

  • Built and tested web applications serving 200+ institutions including UCSF, TAMU, NIH, Lundquist, and DoD. Resolved 59+ tickets across IRB study management, COI meeting agendas, submission workflows, application approvals, file uploads, and PDF generation.
  • Added accessibility improvements (form labels, table headers), built CV expiration notifications, and fixed multi-tenant production issues across self-hosted and cloud environments.

Software Engineer Intern

OpsRamp | San Jose, CA | Sep 2017 - Dec 2017

  • Developed dashboard charts to monitor the health of network devices using D3.js.

R&D Data Analytics Intern

DreamWorks Animation | Greater Los Angeles Area | Sep 2016 - Dec 2016

  • Worked in data pipeline and internal tools to gather and visualize metrics related to production workloads and workflows.
  • Technologies: Python, JavaScript, Grafana.

Research Assistant

California State University, Fullerton | California | May 2016 - Sep 2016

  • Developed prototype of California's drought visualization using physical data sculptures and projection-mapping images.
  • Implemented visualization segments: Exploring California map data, displaying lines as streams, data exploration of reservoirs.
  • Technologies: D3.js, JSON, Python, jQuery.

Software Developer

Illuminatus Software | Pune, India | Aug 2013 - Aug 2014

  • Designed and built 4 web projects using D3.js, jQuery, Python, and Bootstrap.

Projects & Homelab

AWS Cloud Resume Challenge (Serverless & DevOps)

Medium | Built and deployed a secure, serverless portfolio website on AWS using IaC.

  • Frontend: HTML/CSS/JS resume on S3, served through CloudFront for HTTPS and global caching, with Cloudflare handling DNS and edge caching.
  • Backend: Python Lambda visitor counter backed by DynamoDB. Fronted by API Gateway (REST) with an API key, 5 req/sec rate limit, 10,000 req/month quota, and CloudWatch access logging. MOCK integration for CORS preflight, AWS_PROXY integration for GET/POST.
  • Infrastructure as Code: All backend resources (DynamoDB, Lambda, API Gateway, IAM, ACM, VPC) defined in Terraform modules. Remote state in S3 with versioning. Bootstrapped existing resources into state via terraform import so CI runs could take over from the initial manual deploy.
  • CI/CD: Two GitHub Actions pipelines. Frontend pipeline syncs to S3 and invalidates CloudFront. Backend pipeline runs terraform init -reconfigure, imports pre-existing resources, and applies changes on every push to resume-backend/**.
  • Cost guardrail: AWS Budget at $2/month triggers an SNS topic that invokes a kill-switch Lambda. The Lambda disables the CloudFront distribution within 1-2 minutes, stopping all charges. Least-privilege IAM scoped to three CloudFront actions.
  • DNS: Cloudflare for apex and subdomain routing, AWS Certificate Manager for the API Gateway custom domain (api.arlingtonhood21.work).
  • Write-ups: Two published build logs. Phase 1 on Medium, and a Phase 2 debugging post covering API Gateway CORS, state-file loss via s3 sync --delete, and four recreated API Gateways before the fifth stuck.

Kubernetes Homelab Cluster (pi-cluster)

Medium | Dev.to | Sep 2025 - Oct 2025

  • GitOps: FluxCD sync between a Git repository and the cluster. Every manifest change in Git lands on the cluster without manual kubectl apply.
  • Manifests: Kustomize overlays for Deployments, Services, ConfigMaps, PVCs, and Secrets.
  • Apps: Audiobookshelf and Renovate, running as non-root containers.
  • Security & networking: Secrets encrypted with SOPS + AGE. Services exposed publicly through Cloudflare Tunnel (e.g. audiobooks.arlingtonhood21.work), no port forwards.
  • Storage: Persistent volumes for stateful apps.

Open Source Contributions

2026

  • Quarkus: 13 PRs merged covering bug fixes, documentation, and dev tooling. [Merged PRs]

Education

California State University-Fullerton

Master's Degree, Computer Science (2015-2017)

Pune University

Bachelor's Degree, Computer Science (2008-2012)

Skills

AWS Terraform Java (Spring Boot, JAX-RS) Python React & Redux Apache Kafka PostgreSQL Playwright Docker Kubernetes CI/CD (GitHub Actions) SQL Server Micrometer GitOps Claude Code / AI-Assisted Dev

Publications

California Drought Impact: Multimodal Data Representation to Predict the Water Cycle (Dec 2024)

esc