About me:
• Common sense Software Engineer with over a decade of experience in the industry;
• Experienced Agile team member;
• Specialised in full-stack JavaScript / TypeScript;
• Focused on design patterns(Gang of Four) and principles(SOLID, CleanCode);
• Always looking for the balance between pragmatism and purism;
• Use tools(frameworks/libraries/environments) in order to deliver secure, scalable, and reliable software within a reasonable time period;
• With extensive knowledge and experience in Authentication and Authorization in microservices architecture;
• Interested in:
- Message-oriented architectures;
- Hexagonal Architecture;
- Command Query Responsibility Segregation;
- Microservices architecture;
- Message queues.
My technical skills:
• Software design and development process:
- Object-oriented design principles;
- Synchronous and asynchronous programming (very good understanding of promises);
- Design Patterns;
- Refactoring;
- TDD, BDD.
• Programming languages:
- TypeScript;
- JavaScript, ES6, ES7;
- Go;
- HTML and CSS;
- Basics of embedded programming in Arduino C++.
• Frameworks:
- Advanced usage of Node.js;
- React.js.
• Testing:
- JavaScript testing with jest, sinon, mocha, chai, jasmine;
- Author of open source ts-sinon library for stubbing/mocking in TypeScript
- Go testing with testify and httptest;
- React.js component testing with mocha and enzyme;
- End-to-end/component testing with webdriver.io
- Knowledge about testing strategies in a microservices architecture.
• Infrastructure:
- RMDBS - MySQL, PostgreSQL, MS SQL;
- NoSQL – AWS DynamoDB, MongoDB, Elasticsearch;
- AWS - Route 53, CloudFront, API Gateway, Lambda, ECS, Cognito, S3, EC2;
- Docker and Docker Compose;
- Serverless Framework;
- ELK Stack (Elasticsearch, Logstash, Kibana);
- Continuous integration using Jenkins, GoCD;
- Continuous delivery, Blue-green deployment;
- Good knowledge of Apache Kafka;
- Web services communication protocols - REST, WebSockets, Protobufs