[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fxdEYLT_5_kWHjN8DAZ5J6bxat2fFiEMA_AJENby-jGQ":3,"$fW70P-VLa0Ea5FX_f39jauNfonVMfnd0UnJYABgtNskE":27,"$fQEttpEimxF5c0-QDnkYAY_02eI8wmtK0yS96PMX_m7s":56},[4,12,19],{"id":5,"year":6,"title":7,"company":8,"description":9,"type":10,"sortOrder":11},5,"May 2025 – Present","Software Engineer","TransPerfect, Chennai","Full-stack work on a high-traffic enterprise product: C# \u002F ASP.NET Core and Node services with REST APIs over MongoDB, and React front ends consuming them. Practise test-first development, taking coverage from 40% to 85% with Jest and Playwright. Cut initial page load by roughly 40% through profiling, code-splitting, and lazy loading, and search from ~850ms to under 200ms with Elasticsearch and Redis caching. Built an internal MCP server that exposes Azure DevOps to AI developer tooling. Deploy through Azure DevOps CI\u002FCD and take part in code review and architecture discussions.","work",1,{"id":13,"year":14,"title":15,"company":16,"description":17,"type":10,"sortOrder":18},6,"Aug 2023 – May 2025","Full Stack Engineer","Codingmart Technologies, Coimbatore","Migrated a legacy Java EE application (JSP, Servlets, JSTL, JDBC) to Spring Boot and React, owning both back end and front end. Rebuilt services on Spring Boot, Spring Security, and Spring Data JPA\u002FHibernate, exposing REST and JAX-RS endpoints, and tuned SQL Server queries, stored procedures, and triggers. Also delivered .NET\u002FC# and MERN work, and built a 30+ component Material UI library shared across three client applications.",2,{"id":20,"year":21,"title":22,"company":23,"description":24,"type":25,"sortOrder":26},7,"May 2020 – May 2024","B.E. Computer Science and Engineering","Sri Krishna College of Technology, Coimbatore","","education",3,{"info":28,"highlights":42},{"id":11,"firstName":29,"lastName":30,"title":31,"bio":32,"currentRole":33,"focus":34,"city":35,"phone":36,"email":37,"cvUrl":38,"profileImageUrl":39,"contactEmail":37,"linkedinUrl":40,"githubUrl":41},"Dhamodhara","Kannan","Full Stack Engineer, .NET & Node, React & TypeScript","Full-stack engineer with 2+ years building product software across .NET and Node on the back end and React with TypeScript on the front. I take features from requirements through schema and API design, UI, tests, and production support — and I have been building agentic AI tooling alongside the product work.","Software Engineer at TransPerfect, Chennai","Most useful on API-heavy products where the service and the interface are the same problem: ASP.NET Core and Node services, React front ends, and the testing and CI work that keeps them shippable.","Chennai, India","+91 9361490359","dhamodhara.kannan.a@gmail.com","\u002Fassets\u002Fresume\u002FDK_resume_fullstack.pdf","\u002Fimg\u002Fblog\u002Fedited_pp.jpg","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fdhamodharakannan","https:\u002F\u002Fgithub.com\u002Fdkdhamo",[43,46,49,52],{"id":11,"value":44,"label":45,"sortOrder":11},"40% → 85%","Test coverage on a high-traffic enterprise product, via Jest and Playwright suites",{"id":18,"value":47,"label":48,"sortOrder":18},"850ms → \u003C200ms","Search response time, using Elasticsearch with Redis caching",{"id":26,"value":50,"label":51,"sortOrder":26},"~40% faster","Initial page load, after profiling then code-splitting and lazy loading",{"id":53,"value":54,"label":55,"sortOrder":53},4,"30+ components","Shared Material UI design system adopted across three client applications",[57,61,64,67,70,73,76,79,84,88,92,95,98,101,104,107,111,114,117,120,123,127,130,133,136,139,142,145,149,152,155],{"id":58,"name":59,"category":60,"sortOrder":11},11,"C# \u002F .NET","Backend",{"id":62,"name":63,"category":60,"sortOrder":18},12,"ASP.NET Core",{"id":65,"name":66,"category":60,"sortOrder":26},13,"Node.js",{"id":68,"name":69,"category":60,"sortOrder":53},14,"Java \u002F Spring Boot",{"id":71,"name":72,"category":60,"sortOrder":5},15,"REST API design",{"id":74,"name":75,"category":60,"sortOrder":13},16,"Spring Data JPA \u002F Hibernate",{"id":77,"name":78,"category":60,"sortOrder":20},17,"Entity Framework Core",{"id":80,"name":81,"category":82,"sortOrder":83},18,"React","Frontend",8,{"id":85,"name":86,"category":82,"sortOrder":87},19,"TypeScript",9,{"id":89,"name":90,"category":82,"sortOrder":91},20,"Next.js",10,{"id":93,"name":94,"category":82,"sortOrder":58},21,"Angular",{"id":96,"name":97,"category":82,"sortOrder":62},22,"Redux Toolkit",{"id":99,"name":100,"category":82,"sortOrder":65},23,"React Query",{"id":102,"name":103,"category":82,"sortOrder":68},24,"Material UI",{"id":105,"name":106,"category":82,"sortOrder":71},25,"Accessibility (a11y)",{"id":108,"name":109,"category":110,"sortOrder":74},26,"SQL Server (T-SQL)","Data",{"id":112,"name":113,"category":110,"sortOrder":77},27,"MongoDB",{"id":115,"name":116,"category":110,"sortOrder":80},28,"Elasticsearch",{"id":118,"name":119,"category":110,"sortOrder":85},29,"Redis",{"id":121,"name":122,"category":110,"sortOrder":89},30,"Pinecone",{"id":124,"name":125,"category":126,"sortOrder":93},31,"Docker","Platform & Practices",{"id":128,"name":129,"category":126,"sortOrder":96},32,"Azure DevOps CI\u002FCD",{"id":131,"name":132,"category":126,"sortOrder":99},33,"AWS (EC2, S3)",{"id":134,"name":135,"category":126,"sortOrder":102},34,"Grafana",{"id":137,"name":138,"category":126,"sortOrder":105},35,"TDD",{"id":140,"name":141,"category":126,"sortOrder":108},36,"Jest \u002F Playwright",{"id":143,"name":144,"category":126,"sortOrder":112},37,"Agile \u002F Scrum",{"id":146,"name":147,"category":148,"sortOrder":115},38,"Model Context Protocol","AI Engineering",{"id":150,"name":151,"category":148,"sortOrder":118},39,"Agentic AI \u002F tool calling",{"id":153,"name":154,"category":148,"sortOrder":121},40,"RAG & embeddings",{"id":156,"name":157,"category":148,"sortOrder":124},41,"LLM APIs"]