During my engineer career, I used a lot of different technologies, programming languages, and frameworks. But in the end, I have chosen these three. It covers all my requirements for Web development (backend and frontend) and mobile development. So here is my technology stack that I'm currently working with it:



Databases: PostgreSQL, MySQL, MongoDB, CouchDB, Redis, SQLite, Firebase, Elasticsearch, GraphQL (the last three are not "classic" databases but is very close in some case).
Servers: Debian, Ubuntu, Nginx, Google Cloud, Amazon Web Services, Microsoft Azure, DigitalOcean, Linode.
Other: Git, HTML, CSS, Assembler, Erlang, Scrum, Kanban, Internationalization/Localization, TDD, Bash, GTK+, Qt, Apple App Store and Google Play (the full flows from testing to releasing and support).
As a Software Architect, I am responsible for designing and overseeing the development of complex software systems. My role involves developing technical strategies, assessing project requirements, and defining technical standards. I work closely with development teams to ensure that software design is aligned with business needs and architectural standards.
To ensure optimal system performance and scalability, I analyze and solve complex problems. It's my responsibility to make sure that the software architecture meets the necessary standards for security, performance, and maintainability. Additionally, I stay up-to-date with the latest trends and technologies in software development to provide the best solutions for our clients.
As a Software Architect, I play a crucial role in driving the success of our company. By designing and developing robust software systems, I ensure that our clients' needs are met with high-quality and reliable software solutions.
As a Tech & Team Lead, I was responsible for leading a team of developers and ensuring that our work was aligned with company goals and standards. My primary focus was on:
Overall, my role as a Tech & Team Lead was crucial in driving the success of our team and achieving excellent outcomes for the company.
As a Principal Software Engineer, I was responsible for the development and maintenance of mobile applications for both iOS and Android platforms. My role involved creating robust application architectures and designing APIs to support our mobile apps. I also oversaw the app publishing process, ensuring that our apps were prepared and published to the Apple App Store and Google Play with precision and efficiency.
In addition to these responsibilities, I provided critical support to other developers on the team, sharing my expertise and helping them improve their skills. As a Principal Software Engineer, staying up-to-date with the latest trends and technologies in mobile app development was essential. It allowed me to continually improve our apps, create new features, and exceed user expectations. Overall, my role as a Principal Software Engineer was pivotal in delivering exceptional mobile experiences for users while driving the success of the company.
As a Senior Software Engineer at a small startup, I had the opportunity to wear many hats and take on a range of diverse responsibilities. During my time there, I was involved in developing internal systems for courier and logistics management, as well as creating a mobile application from scratch. Additionally, I worked on the frontend and backend of an e-commerce system and developed both the order management and customer relationship management systems.
One of the most exciting experiences I had during my tenure at the company was participating in the Techstars Boston Accelerator program in 2015 as a representative of CartFresh. This opportunity allowed me to network with other tech entrepreneurs and gain valuable insights into the latest trends and innovations in the industry.
Overall, my time at the startup was a challenging but rewarding experience that allowed me to grow as a software engineer and develop my skills in a range of different areas. Working in a small, fast-paced environment gave me the opportunity to take ownership of projects and make meaningful contributions to the company's success.
During my time at the company, I was responsible for designing and implementing the architecture of various e-commerce applications. This involved working with various technologies (Python, JavaScript, MongoDB, etc). I collaborated closely with other members of the team, including designers and project managers, to ensure that our applications met the clients' requirements and were delivered on time.
In addition to development, I was also involved in testing and deployment, which gave me a deeper understanding of the entire software development lifecycle. Overall, my experience at this company was invaluable in developing my skills as a full-stack developer.
As a software developer, I gained extensive knowledge and experience working on a complex system that required seamless integration between the frontend and backend components. The system was designed to enable the creation, editing, and management of media content for advertising monitors in public places, which meant that I had to work with a range of media formats, including photos, videos, and audio.
One of the most significant challenges I faced during this project was developing a cloud-based application architecture that could handle large volumes of data and provide reliable and scalable performance.
Throughout the project, I collaborated closely with other developers, designers, and stakeholders to ensure that the system met the desired functional and performance requirements. I also had the opportunity to learn new technologies and frameworks.
Overall, working on this project was a rewarding experience that allowed me to develop new skills and knowledge in cloud-based application architecture and media content management. It also provided me with a deeper understanding of the complexities involved in developing large-scale systems and the importance of collaboration and communication in software development.