From 59f2b3ebad42ec4a7830dffbb6d1637932f2eba2 Mon Sep 17 00:00:00 2001 From: Vladan Popovic Date: Tue, 6 Feb 2024 13:42:15 +0100 Subject: [PATCH] add h4 --- source/cv.md | 127 +++++++++++++++++++++++++++++---------------------- 1 file changed, 73 insertions(+), 54 deletions(-) diff --git a/source/cv.md b/source/cv.md index a7b991a..696ac36 100644 --- a/source/cv.md +++ b/source/cv.md @@ -3,36 +3,35 @@ \pagenumbering{gobble} -"Bulevar Oslobodjenja" 150/51, 11042 Belgrade, Serbia +Bulevar Oslobodjenja 150, 11042 Belgrade, Republic of Serbia -Tel : +381621436099 +Tel : +381 62 1436099 E-mail: vladanovic@gmail.com -\ + ## Profile -Veteran software developer and systems engineer experienced in multiple fields -with a shy of 20 years professional experience. FOSS enthusiast, honorary -member of Macedonia's Free Software NGO and Belgrade's first hackerspace. -Designed and implemented distributed and monolith systems in the cloud, on-site -and in hybrid infrastructures. Keen on refactoring for the greater good. A long -time GNU/Linux user of many flavors, currently endeavoring to use Fedora +Experienced software developer and systems engineer in multiple fields, with +around 20 years professional experience. FOSS enthusiast, honorary member of +Macedonia's Free Software NGO and Belgrade's first hackerspace. Designed and +implemented distributed and monolith systems in the cloud, on-site and in +hybrid infrastructures. Keen on refactoring for the greater good. A long time +GNU/Linux user of many flavors, currently endeavoring to use Fedora CoreOS, or any other [**OSTree based -distro**](https://gitea.vp.mk/vladan/workstation-ostree-config) in a production +distro**](https://forge.vp.mk/vladan/workstation-ostree-config) in a production environment. My [**Linked-In**](https://www.linkedin.com/in/vladan-popovic-957ab733), -[**GitHub**](https://github.com/vladan>) and [**my selfhosted Gitea -server**](https://gitea.vp.mk/vladan) may provide more info if needed. +[**GitHub**](https://github.com/vladan>) and [**my selfhosted forge +server**](https://forge.vp.mk/vladan) may provide more info if needed. ### Skills and toolset Python is the language and ecosystem I have the most experience with. I've done -a lot of web apps in Django, Flask, FastAPI and make heavy use of SqlAlchemy. -Nowadays I use AsyncIO for async programming, but used gevent a lot in the past -as well. I'm obliged to say I've got to use most of uWSGI's features and love -it for its robustness, richness, large set of configuration options and -wonderful documentation. +a lot of web apps in Django, Flask, FastAPI and made heavy use of SqlAlchemy. +Nowadays I use AsyncIO for most Python projects, used gevent before AsyncIO was +introduced. Deployed WSGI apps on uWSGI and love it for its robustness, +richness, large set of configuration options and wonderful documentation. Huge fan of PostgreSQL with some NoSQL experience in Apache CouchDB. I have fair experience with Apache Kafka, RabbitMQ, MQTT, ZMQ, gRPC for message @@ -41,79 +40,99 @@ sending it through the wire. Professionally I used to manage infrastructure on AWS, GCP, OpenStack and employed Ansible on multiple projects. Docker was a thing I've used a lot in -the past, but switched to Podman due to its daemon-less, free nature (as in -freedom) and its Kubernetes compatibility. +the past, but switched to Podman due to its daemon-less, free [as in +freedom] nature and its Kubernetes compatibility. -### Hobbies and Languages +### Hobbies I spend most of my free time writing Rust, from [**lock-free queues**](https://github.com/filipdulic/bus-queue) to [**web applications in WebAssembly**](https://git.vp.mk/ui) (must also mention that Elm provided me with one of the greatest hobby-programming experiences ever). Recently I've been busy with an [**embedded application in Rust for tracking -e-bikes**](https://gitea.vp.mk/e-bike-tracker) on an esp32 with a sim module. +e-bikes**](https://forge.vp.mk/e-bike-tracker) on an esp32 with a sim module. I'm an avid table tennis player, frequent hiker (~100k steps/week), pizza and bread baker and an ordinary everyday cook. I also enjoy playing video games, mostly football when in good company. +### Languages + Macedonian is my native language. I speak English and Serbian fluently and have a fair German knowledge with a C2 degree in 2001. +\ + +\ + +\ + ## Work Experience -#### Self Employed - Rust Developer / Embedded Software Engineer (current) +#### Self Employed - Rust Developer / Embedded (current) \ -Location Based Services for tracking electric bikes. The platform rests on an -ESP32 Microcontroller and is written the Rust. It also contains a SIM modem -(sim800l + an ublox neo6m GPS modem is the first implementation, the second is -on A7670E with an embedded GPS module). +Location Based Services for tracking electric bikes. ESP32 Microcontroller +written in Rust that also contains a SIM modem (SIM800L + u-blox NEO-6M GPS +modem, or A7670E with embedded GPS module) that sends location information to a +broadcast server (also written in Rust) with a streaming architecture that +receives locations from all devices (via MQTTS, or HTTPS) and streams those +locations to designated parties (mobile apps) via websockets. -#### [Aiven](https://aiven.io/) (2021-2022) - Site Reliability Engineer +#### [Aiven](https://aiven.io/) (Mar 2021 - Feb 2022) - Site Reliability Engineer \ -SRE in a dynamic multi-cloud setup consisting of tens of thousands of nodes, -offering managed Postgres, Kafka, Clickhouse, Mysql, Elastic/Opensearch, etc. -with platform management software written in Python. +SRE in a dynamic multi-cloud setup consisting of close to 100.000 of nodes, +offering managed Postgres, Kafka, Clickhouse, Mysql, Elastic/Opensearch, +Cassandra, etc. The platform management software was written entirely in +Python and hosted on AWS, GCP, Azure, OVH and other smaller cloud providers. -#### Sigma Technology (2019-2021) - Senior Python/Platform Engineer +#### Sigma Technology (Oct 2019 - Feb 2021) - Senior Python/Platform Engineer \ Consultant in Ericsson LabOps team in Linköping - Sweden. Worked on automating -the infrastructure procurement for the R&D department in Ericssons own private -cloud management solution running on-site. My responsibilities included -implementing best practices by setting up automation, reviewing most of the -code in Gerrit and maintaining a Jenkins CI/CD pipeline (code-test-deploy -automation). +the infrastructure procurement for the R&D department in Ericssons on-site +private cloud. My responsibilities included implementing best practices, +reviewing most of the code in Gerrit and maintaining a Jenkins CI/CD pipeline +(code-test-deploy). The most interesting part for me was to develop a Python +project generator based on Jinja2 that contained configuration for the whole +pipeline, i.e. tests with Tox, wheels, Sphinx documentation, Docker images and +publishing to Artifactory. -#### Seavus - Senior Engineer (2018-2019) +#### H4 - Senior software engineer (Nov 2018 - Oct 2019) \ -Responsible for maintaining a big data pipeline for Sunrise, a Swiss -telecommunications provider. Based on the Hortonworks appliance (Ambari, Spark, -Kafka, HDFS, Hive) with the code written purely in Scala. +Distributed application for managing and editing documents written in +TypeScript (NodeJS) and PostgreSQL using JSON-RPC for inter-node communication. -#### TradeCore - Python Lead (2017-2018) +#### TradeCore - Python Lead (Jul 2017 - Nov 2018) \ Reduced the technical debt by refactoring, planning and discovering bottlenecks and bad/redundant implementations. Improved the development flow, enforced a -stronger code review practice and python coding standards for the main product -written in Django, which also utilized PostgreSQL, ElasticSearch, Celerry, etc. +stronger code review practice and Python coding standards for the main product +written in Django, which also utilized PostgreSQL, ElasticSearch, Celery, etc. Introduced a solid CI/CD infrastructure by automating the Selenium tests and -frontend packaging for ~25 environments, GitLab Review Apps, etc. +frontend packaging for ~25 environments, GitLab Review Apps, etc. Lead the team +reworking the product to a microservice architecture and successfully moved +large parts of the monolith to new services. -#### Itekako - Software Engineer / Python Lead (2012-2013, 2014-2017) +#### Itekako - Software Engineer / Python Lead (Jun 2012 - Sep 2013, Sep 2014 - Jun 2017) \ -Designed a scalable cloud solution and built a complete platform for home -security cameras with Python, JSON-RPC with TinyRPC, gevent, Protobuf, FFMpeg, -uWSGI and Live555, hosted on AWS. Reduced a couple of clients’ development and -deployment overhead by dockerizing their complete infrastructures. Created a -machine-generated-content service by implementing a ranking algorithm in -PostgreSQL and optimized critical DB queries. +Designed and built a scalable platform in the cloud for home security cameras +written in Python with JSON-RPC as the synchronization protocol hosted with +uWSGI on AWS with around a dozen service types: a server that kept a live +connection to every camera over TCP with Protobuf, transcoding server with +FFMpeg, Live555 custom streaming server, a DB/RPC service to handle clients, +file syncing service with SSH key management, a couple of notification +services, back office service for managing the platform, etc. Other projects +included reducing development and deployment overhead by dockerizing a couple +of clients’ complete infrastructures, a machine-generated-content service by +implementing a ranking algorithm in PostgreSQL, etc. -#### RedHat - Software Engineer - OpenStack (2013-2014) +#### RedHat - Software Engineer - OpenStack (Oct 2013 - Sep 2014) \ Development and RPM packaging on OpenStack Nova. Tested, debugged and deployed various OpenStack scenarios and use cases. -#### Asseko - Software Developer (2010-2012) +#### Asseko - Software Developer (Dec 2010 - May 2012) \ Part of a new team working on a complete rewrite of a legacy proprietary -Banking Software to C# and MSSQL. +Banking Software to C# and MSSQL. I was part of a team writing the new software +that also made the adapters for data migration from the old to the new +platform.