Curriculum Vitae - Résumé
If you want to read a shorter version of my resume it can be found on this link, but make sure you read the longer version if you want to know more about more, or feel free to send me a hello message.
You can also connect with me on: LinkedIn, GitHub, Twitter, Google+
Work experience
June 2019 – Present
Senior Software Engineer, Network/System Infrastructure Specialist, System Architecture, Team Lead at Pointer Brand Protection
June 2016 – May 2019
I joined Pointer Brand Protection as a person with extensive experience in microservices as it was a new area for the company, so I can help the company move from a monolith to microservice architecture.
Development and architecture of a in-house system (IACC MarketSafe) for an advanced online brand protection solutions.
Reworking the old system into a microservice architecture, and implementing core functionality for the solution.
- Revlect, an in-house system that uses advanced algorithms to quickly identify and prioritize the most damaging counterfeit sellers, webshops, and social media accounts.
- IACC MarketSafe, a pilot program for the IACC (International AntiCounterfeiting Coalition) that helps platform track counterfeit, and help take them down for the members.
Responsibilities:
- Overall architecture and infrastructure for all projects
- Development of high performance distributed microsevices written in Golang, Node.js, PHP
- Analyzing the requirements, and designing the system, planning the network and server architecture, infrastructure and specifications
- Mentoring and coaching of team mates
- Scrum Master
- Supporting the company’s old infrastructure, and design and implementation of in-house infrastructure on our own dedicated hardware
- Building high performance core services that are required for tying all the services together, and internal communication.
- Continuous integration and optimization of the build pipeline
- Refactoring a Monolith into Microservices
- R&D into Machine Learning and image recognition
- Responsible of speccing, designing and implementation a high availability cluster.
- Implementing loadbalancers with failovers for outside access to the required services.
- Using ansible to automate software provisioning, configuration management, and application deployment
- Planing a migration from one provider to another without downtime
Technologies/Tools used: Golang, Docker Swarm, Kubernetes, Gitlab, CI/CD, Nginx, Tensorflow, Ansible, OpenCV, Machine Learning, Artificial Intelligence (AI), node.js, React, Vue.js, PHP, CSS, HTML5, JavaScript, MongoDB Cluster, MySQL (Percona), ElasticSearch Cluster, ELK, Redis, Amazon AWS, EC2, Debian, VPN, heartbeat, corosync, Proxmox, gRPC, protobuf, RabbitMQ, Microservices, Traefik, Istio, ZeroMQ, Cassandra, Kafka, OpenTracing, Zipkin
Consultant, Software Architect, Senior Software Engineer at Covantia LLC
November 2012 – June 2016
Development of high performance distributed microsevices written in Golang, that are used in various schools in LA
Development and design of an Event Processing System, used to generate actions (sending emails, creation of objects, time based actions, sending notifications) based on the events of any external software. The ability to create processing workflows using an UI, and integration with various systems.
Also working as a consultant for the company on various other projects that the company has, as a Software Architect, and as a Network and System administrator for the company needs.
Responsibilities:
- Overall architecture and infrastructure
- Analyzing the requirements, and designing the system, planning the network and server architecture and specifications.
- Continuous integration and optimization of the build pipeline.
- Scalability, running on multiple machines, for fast processing of queries (1000 – 2000 a second) for Event Processing System, ability to just add new servers to the pool for increased processing power.
- Ability to design a work-flow in a simple manner, using an UI, having the ability to make the actions dependable on others and share the data between the actions in a single workflow. Ability to assign complex rules that evaluate to boolean algebra, that can execute the actions based on the data passed in the events.
- WebRTC for audio and video communication
- RESTfull API Interface
- Different communication protocols for the service, using an API, Socket.IO, SQS, SNS/SQS
Technologies/Tools Used: Golang, Kubernetes, Docker Swarm, PWA, CI/CD, node.js, Android, PHP (CodeIgniter), CSS, HTML5, JavaScript, MongoDB Cluster, WebRTC,SNS/SQS, SQS, ElastiCache, Redis, Amazon AWS, EC2, Route 53, DynamoDB, S3, RDS, jqGrid, jQuery, LoDash, Underscore, Debian, Cassandra, Kafka, OpenTracing, Zipkin
Consultant, Solution Architect, Team/Technical Lead, Senior Software Engineer, Hardware Engineer at Sciencix
January 2014 – June 2016
In charge of research and development of a networked dissolution tester, including hardware, software, on-line cloud management software, and android application (that can control a dissolution tester) which can remotely control them, schedule tasks when to run, and running validations on the instruments based on the data we collect, and external validations, to make sure they are in proper working order. Planning and speccing the network infrastructure required for the product.
And also reverse engineering the hardware and software of older models on the market so they can be used with our platform.
Working with design concepts related to programming and development of existing resources as well as research of potential future resources. Responsible for the company’s AWS infrastructure.
Responsibilities:
- Analyzing the requirements, and building a prototype
- Building hardware, PCB, software, creating interfaces for automatic firmware updates for the hardware
- Writing software for the on-line cloud management software, in node.js and angular
- Writing a CEP (Complex Event Processing) system using Esper, for real-time notification of various conditions, like critical failures
- Implementation of encryption standards for data storage
- Planning the network and server architecture specifications
- Creating images of the server for easier deployment
Technologies/Tools used: PHP, HTML5, CSS, JavaScript, AngularJS, node.js, Android, Java, embedded C, Python (for developing command-line tools), C/C++ (building some modules for node.js), MongoDB, Redis, ATmega, PIC, ARM, Debian, Cassandra, Kafka, OpenTracing, Zipkin
Senior Software Engineer, Team/Technical Lead, Software Architect at Mars Omega LLP
December 2012 – January 2014
Development and architecture of a inhouse system for information/intelligence gathering and analysis of the data, and is used for storing and organizing the data. This is a tool for people to enter data and link the data together so we can have a view of how the data correlates to each other and also to generate relationships and see other connections between them. It also grants you the ability to work on multiple data at the same time, providing a centralized view in which you can add stuff and organize.
Technologies/Tools used: PHP (Yii), CSS, HTML5, JavaScript, jqGrid, jQuery, LoDash, Underscore, node.js, MongoDB, Redis, GIS (GeoServer), OpenLayers, Google Maps. Debian, CentOS, Ubuntu, heartbeat, KVM, iptables, Subversion
Responsibilities:
- Planing architecture, planing the server architecture, database deployment
- Building the API for the front-end
- Building a front-end interactive dashboard, that can be used, for giving you a centralized view of the whole system in one place.
- Database sharding, replication, setup and running on multiple machines over SSH tunnels, for increased security.
- Design, plan, and implementation of advanced security system that monitors your every action, making sure they don’t do what they are not supposed to do, and sending real time messages to the users
- Messaging system, that allows for people to mark messages as unread, and even use them as tasks, also provides notifications if the users to whom is sent has seen the message or not.
- Setting up the systems servers (development, production, and staging), firewalls, apache, nginx, compiling dependencies, load-balancing
- System for visual organization of data, correlation between data.
- Advanced system for data correlation and understanding, using GIS, OpenLayers, Goggle Maps, for mapping data on the whole planet, and replaying events.
Senior Software Engineer, Technical/Team Lead, Security Administrator, Network and IT Specialist at MI-C3
January 2011 – November 2012
In my time in MI-C3 I worked on many projects, the two most important ones are:
- Mi-bubble (Version 6.8), a system that is offering a customized solution for managing, deploying and tracking an organization’s assets, being movable, non-movable as well as taking into consideration the human element. This system is used by multinational companies, tracking their assets all over the globe.
- TagNGo, In charge of creating the software architecture for a GPS safety system, used by parents to track their children. This was a real time tracking system, with a max delay of 5 seconds. Building such a system and designing it had its own challenges and rewards.
Responsibilities:
- System Architecture, planning, development, integrations for Platform 6.8, MI-NCC, TagNGo
- Integration of different systems into one, integrations of various DVR, NVR providers into one centralized system. Integration of Motorola PushToTalk Radio into a web based system.
- Creating system for managing assets, tracking assets, management of door controls, gates, video/audio systems
- Creation of a web interface for video conferencing, and the ability to dial out directly from the interface to a telephone line.
- Maintaining the company and it’s subsidiaries network infrastructure
- Management of DNS, DHCP, Subversion, Mail, Firewall.
- Integration of Google Maps (paid version), OpenLayers, for mapping various devices like GPS, Doors, Gates, Assets, People
- Planed and designed a data center, including power requirements, blade servers, cables, wiring, cooling, multiple network lines, line aggregation, networking equipment, SAN
- Replication of data across multiple data-centers, SAN storage.
- Failure scenarios, and how to solve them, including SRP system
- Implementation of Esper CEP system for complex event processing, of data received by various systems and devices.
Technologies/Tools used: InterSystems Cache, InterSystems ObjectScript, InterSystems ZEN, PHP, Java, Android, JavaScript, jQuery, Underscore, LoDash, Asterisk, DNS, DHCP, VPS, Shared Hosting, VoIP, HTML5, CSS, DVR, NVR, Motorola, Hadoop, Cisco, NoSQL, MongoDB, CouchDB, Map/Reduce, SRP systems, MySQL, PostgreSQL, Amazon AWS, Route 53, WebRTC, Debian, CentOS, RedHat, Linux, Ubuntu, iptables, Google Mail Administrator, GPS Devices, LMU-2000, CalAmp, Subversion, Squid, Esper, VMware, KVM
June 2010 – December 2010
I joined dcom as a Team Lead. My main role was to build a team of young engineers which I would personally mentor into using multiple technologies and do projects together. Our projects were around the concept of e-Learning. The end result was an e-Learning system which was web based, but also included a mobile client that tracked the user sessions across devices.
Responsibilities:
- Writing Android applications both for public use and internal use
- Writing games in Android
- Teaching the new employees on the used technologies
- Managing the team, assigning tasks
Technologies/Tools used: C# .NET, ASP .NET, PHP, Java, Android, JNI
Senior Software Engineer, Technical Lead at Seavus
November 2009 – April 2010
Worked on providing services and continuous maintenance of a local telecom provider. Our team directly managed the application service including telephony systems, CMS, and collecting anonymous data for analysis and further improvement of the services we provided. The development included writing modules for the system in PHP and JavaScript. The databases which were used were based on relational SQL databases.
Responsibilities:
- Analyzing datasets from various databases, so I can build a system for collection, processing and analysis of the data
- Writing software for management and visual aid for the collected, processed and analyzed data
- Writing the plugins for WordPress
- Writing various systems based on SugarCRM CE
- Installation and maintenance of BladeServers for our government
- Writing software for integration of telephony systems like Asterisk PBX, into telephone lines, and into the web interface.
Technologies/Tools used: PHP, HTML, CSS, JavaScript, Asterisk, Subversion, Linux, Debian, CentOS, RedHat, jQuery, Underscore
Education and Training
(2010 – 2015) Master of Science and Engineering, Software Engineering EQF Level 7
at Faculty of Electrical Engineering and Information Technologies, Skopje (Macedonia)
at Faculty of Electrical Engineering, “Ss Cyril and Methodius” University, Skopje (Macedonia) | 10 Semesters
Languages
- Macedonian Native
- English Native or bilingual proficiency
- Serbian Full professional proficiency
- Japanese Elementary proficiency
- French Elementary proficiency
Achievements
- Software architect for several projects, and leading a team of people, where management and implementation was critical.
- Successfully managed a team of developers both in term of technology and human aspect, where I was in charge of the development and release cycle of the projects in question.
- Acting in a mentoring capacity for a period of years getting new software engineers up to speed, for various technologies. Experience in providing a course for software engineers in system design/architecture, and various software technologies.
Personal Projects
Consultancy
- Network infrastructure
- Software Architecture
- Software design
- Viability and prototyping of systems (both Hardware and Software)
- Server kernel optimization and hardening
- Security audit
Visas
- Netherlands (Work visa)
- Japan (Can request spousal visa)