-
Independent programmer and coach - Self employed - August 2019 to
- Working on building integration for OpenProject and Mattermost
- Coaching students on Python programming, computer science and information technology
- Programming Languages - JavaScript ES6, Python
- Frameworks and Libraries - Node.js, Express, Flask
- IDE and tools - VS Codium, Android SDK, Postman, Firebug, Docker
- Operating system - GNU/Linux (Trisquel 8.0)
-
Software Developer
Developed microservices for Cisco WebEx Teams.(later acquired by Cisco) - January 2019 to July 2019
My day-to-day activities included -- Pairing with other developers in fixing bugs, understanding code and suggest possible ways of arriving at a solution
- Understand user stories and estimate completion date
- Coding and writing integration tests for a user story
- Writing RESTFul microservices to support CRUD operations
- Any glitch in development environment setup of peers
- Unexpected code behaviour
- Reduced defects
- Better performing software
- Programming Languages - JavaScript ES6, Java 8
- Frameworks and Libraries - Spring Boot
- Database - Postgres
- IDE and tools - IntelliJ Idea, VS Code, Postman, Docker
- Operating system - Mac OS X
-
Project Engineer
Member of the India Thirty Meter Telescope (TMT) Software work package team co-ordinating the test and integration of the software delivered by the vendor, carry out quality checks, participate in meetings with the vendors and TMT Project Office.December 2017 to December 2018
Contributions -- Used IntelliJ IDE with Java on GNU/Linux platform to test and debug code for the observatory software.
- Used Jira for reviewing user stories
- Worked with automation of test suite using a shell script on GNU/Linux to generate test reports
- Fixed bugs through Git pull request for the search indexing in documentation
- Created trade-study like document for capturing the user interface tool choices
- TMT Executive Software Successfully Passes First Phase of Preliminary Design Review
- TMT Observatory Software Infrastructure Progress
- Programming Languages - Java 8, Scala, Bash shell scripting
- IDE and tools - IntelliJ Idea
- Libraries - Redis, Apache Kafka
- Agile tools - Jira, Confluence, Kanban
- Operating system - GNU/Linux (Ubuntu)
-
Teaching Assistant
Contributions -August 2017 to December 2017
- Teaching assistance, evaluation and course administration for Algorithms and Programming course for BS students
- Created a script for result notification via email for consolidated scores to students using Google APIs
- Programming Languages - C, Bash shell scripting
- IDE and tools - Vim, GDB
- Operating system - GNU/Linux (Fedora)
-
Software Engineer
Primary responsibilities -November 2012 to August 2016
- Understanding of URDs (User Requirements Document) for sub-system and eliciting functional requirements
- Creation of SRD (Software Requirement Description) for capturing functional requirements
- Depiction of operational scenarios using flow charts and outlining data dependencies between sub-systems
- Database schema and tables design
- Design and development of GUI (graphical user interface)
- Client side scripting using JavaScript and JQuery for rendering data obtained from services and to make AJAX (Asynchronous Java and XML) requests to fetch data through REST (Representational State Transfer) web services
- Providing analytics to visualise information by customising plugins such as JQPlot for depicting graphical information using bar and line chart
- Debugging of client side code using Firebug extension for Mozilla Firefox
- Coding of RESTFul web services for CRUD (create, read, update and delete) operations using Spring MVC, Java EE and testing using a REST client
- Usage of Hibernate ORM (Object Relational Mapping) and JPA (Java Persistence API) for DML (Data Manipulation Language) operations
- Unit Testing of developed modules using JUnit
- Development of reusable JavaScript modules (Modular JavaScript Design Pattern) for a given functionality using AMD (Asynchronous Module Definition) and loading using Require JS to improve web-page performance and code maintainability
- Usage of Underscore JS framework for coding of reusable HTML templates which can be rendered on the fly. This helps in avoiding typo errors due to single or double quote mismatch in JavaScript code which are hard to debug. It also provides separation of HTML template from JS thus improving code maintainability
- Programming Languages - Java 7, JavaScript
- Frameworks and libraries - Spring MVC, Hibernate ORM, Apache Maven, JUnit, jQuery
- IDE and tools - Eclipse IDE, Microsoft Visio
- Server - JBoss AS 7
- Database - Oracle 10g relational database
- Web Browser - Firefox (with Firebug)
- Operating system - Microsoft Windows 7

Relative employment durations
for those who admire graphs over text