Frontend Software Engineer2019 - 2020Business Intelligence Platform (via Toptal Projects)
Technologies: Angular 8, Angular Material, Flex Layout, D3.js, Docker, Docker Compose, Ansible, AWS, Nginx, Bitbucket pipelines, Google Analytics, Karma, Jasmine, Angular CLI, Jira
- Worked as a part of the toptal projects team as a front-end software engineer under agile, scrum biweekly iterations.
- Designed and set up the architecture of the front-end app.
- Designed and set up a CI/CD pipeline with unit tests checking and multiple environments deployment.
- Used Bitbucket as a Git repository and Bitbucket pipelines to run unit tests and ansible scripts.
- Implemented Docker and Docker Compose for the containerized deployment of the app using Nginx as the web server.
- Automated the steps for application deployment with Ansible, starting from an empty server to fully deployed application in a docker container.
- Used AWS EC2 instances to host the docker containers with the application and elastic IP addresses assigned to them.
- Used Angular Material as a supporting library for the application design, look, and feel.
- Used Flex-Layout as a supporting library to organize content on the pages.
- Managed another developer and approved his work.
- Architected more complex features in coordination with other developers on the team.
- Used Jira for task management and delivered software daily using an agile, scrum process.
- Wrote unit tests with the help of Jasmine and Karma.
- Create a reusable interactive multiple line chart with D3.js.
- Used Google Analytics to track user data on the front-end application.
Freelance Software Engineer2017 - 2019Carnahan Group (via Toptal)
- Communicated with the client and participated in the technical design of features modeled after the client's business processes.
- Designed and implemented MongoDB collections and documents to support the business processes.
- Designed and implemented web service REST APIs to support the client's business processes (used Node.js).
- Designed and implemented a responsive UI as per client needs (used AngularJS and Angular 7).
- Designed and implemented the integration of the client's system with Sharepoint.
- Designed and implemented the integration of the client's system with a third-party custom system using OAuth2 security standards. The integration module allowed for login via passwords, client credentials, refresh tokens and authorization code.
- Designed, implemented, and maintained features on the system keeping in mind backward compatibility with old data in the system and making the transitions using migration scripts.
- Designed and implemented a scheduler as per client needs with the help of Heroku plugins.
- Designed and implemented email sending features using HTML, CSS, and EJS.
- Designed and implemented an error-logging infrastructure using Sentry web service.
- Designed and implemented PDF report generation using HTML, CSS, EJS, and HTML-PDF library.
- Wrote unit tests for an Angular 7 application.
- Used the Heroku platform for system deployment and application monitoring, scaling the system as necessary per client needs.
- Handled issues with domain registration and SSL certificates for the system.
- Worked as a part of the team using Git as a VCS.
Software Engineer2016 - 2018Decode
- Designed and implemented systems architecture on multiple back-end and front-end projects using technologies such as Node.js, Django Python, and Angular 4.
- Designed and implemented a web service for the integration of a Shopify web store and a custom-made ERP system using Django Python.
- Designed and implemented asynchronous tasks which were used to synchronize data between a Shopify web store and an ERP system using Django Python, Celery, Redis and PostgreSQL.
- Designed and implemented PostgreSQL database schemas and MongoDB collections in multiple projects.
- Designed and implemented the automatized deployment of web systems using BitBucket pipelines (on branch push).
- Written Ansible playbooks to prepare various environments (development, stage, or production) for system deployment (used DigitalOcean droplets as servers).
- Wrote Docker images and used Docker-Compose for containerized system deployment.
- Designed and implemented a cache system using Redis.
- Designed and implemented security mechanisms based on JWT tokens and optionally keeping track of sessions on the back end, depending on the project.
- Setup Nginx web servers in Docker images in combination with Gunicorn (Django) or PM2 (Node.js).
- Designed and implemented smoke tests on some of the projects using Mocha or Chai for Node.js and Karma for Angular 4.
- Handled domain registration and SSL certificates on some of the projects (they were served using Nginx).
- Used Stripe on an Angular 4 project for handling user credit card data and payments.
- Worked as a part of the team using Git as a VCS.
Freelance Software Engineer2016 - 2017Service Thinking (via Toptal)
- Designed and implemented a charting library containing 12 different charts.
Software Developer2015 - 2016Adacta
Technologies: WPF, Microsoft SQL, Microsoft Dynamics Navision, Beyond Compare, FTP
- Designed and implemented features for various clients by using C/AL for development in Microsoft Dynamics NAV.
- Designed and implemented RDLC reports with Visual Studio and Report Builder.
- Designed and implemented an integration between MS Navision and a third party system by exchanging creating and managing XML files on an FTP server.
- Used Beyond Compare as a diff tool.
- Used OpenXML for Excel file generation in a .NET app.
- Used Microsoft SQL Server as a RDBMS.
- Designed and implemented a small travel expenses module in Navision.
- Used SQL for database queries.
Freelance Software Engineer2015 - 2016Freelance Work
Technologies: MongoDB, Express.js, AngularJS, Node.js, .NET, WPF, MS SQL Server, MATLAB, Matplotlib, Python, Chart.js
- Designed and implemented web applications with MongoDB, Express.js, AngularJS, and Node.js.
- Created simulations and various calculations for a distributed intelligence (AI) algorithm with MATLAB and a GUI for tracking the status of the simulations.
- Drew logs containing server hardware statistics by using Chart.js.
- Used GitHub repositories and Git to version control applications.
- Designed and implemented desktop applications using .NET and WPF.
- Used MS Access as a RDBMS.
Software Engineer2013 - 2015Manas
- Designed and implemented web applications using Groovy on Rails as a web framework.
- Used GORM (Groovy Object Relational Mapping) for database table manipulations.
- Developed the front-end side of the app; used GSP (Groovy Server Pages).
- Made pages responsive using Bootstrap.
- Developed the front end with jQuery and AngularJS.
- Implemented Bitbucket repositories and Git for version control.
- Used MySQL as a RDBMS in a Grails application.
- Used AWS APIs to create EC2 instances, register domains, and set up a vagrant image on them.
- Added Spring Security to secure a Grails-based application.