This commit is contained in:
Vladan Popovic 2024-02-06 13:42:15 +01:00
parent fa34c8f6f7
commit 59f2b3ebad
1 changed files with 73 additions and 54 deletions

View File

@ -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.