An experienced Software Engineer seeking out to build secure and highly performing systems.I enjoy being challenged and engaging with projects that require me to work outside my comfort and knowledge set, as continuing to learn new languages and development techniques are important to me.
I get involved in the whole lifecycle of Software Development including designing, development, testing and deployment.
Most of my work experience so far has been on building Java based Web applications, using technologies like Spring, Hibernate, RabbitMQ, PostgreSQL, Docker, Javascript and Angular. I have also got quite involved in CI/CD process of Software Development using technologies like Docker for containerization, Git as a version control system, Teamcity for deployment pipelines and Shell scrips for custom deployment scripts.
I pay great attention to building secure systems by following best coding practises and by constantly learning and researching about authentication techniques, authorization systems and cryptography. In today's distributed world, building secure, highly concurrent software is a must, so I always pay attention to concurrency issues, trying to mitigate those issues by using different techniques like synchronization, atomic objects, immutability, stateless objects, locks, and language specific features, for e.x Threads in Java or Gorutines in Go.