add h4
This commit is contained in:
parent
fa34c8f6f7
commit
59f2b3ebad
1 changed files with 73 additions and 54 deletions
125
source/cv.md
125
source/cv.md
|
@ -3,36 +3,35 @@
|
||||||
|
|
||||||
\pagenumbering{gobble}
|
\pagenumbering{gobble}
|
||||||
|
|
||||||
"Bulevar Oslobodjenja" 150/51, 11042 Belgrade, Serbia
|
Bulevar Oslobodjenja 150, 11042 Belgrade, Republic of Serbia
|
||||||
|
|
||||||
Tel : +381 62 1436099
|
Tel : +381 62 1436099
|
||||||
|
|
||||||
E-mail: vladanovic@gmail.com
|
E-mail: vladanovic@gmail.com
|
||||||
\
|
|
||||||
|
|
||||||
## Profile
|
## Profile
|
||||||
|
|
||||||
Veteran software developer and systems engineer experienced in multiple fields
|
Experienced software developer and systems engineer in multiple fields, with
|
||||||
with a shy of 20 years professional experience. FOSS enthusiast, honorary
|
around 20 years professional experience. FOSS enthusiast, honorary member of
|
||||||
member of Macedonia's Free Software NGO and Belgrade's first hackerspace.
|
Macedonia's Free Software NGO and Belgrade's first hackerspace. Designed and
|
||||||
Designed and implemented distributed and monolith systems in the cloud, on-site
|
implemented distributed and monolith systems in the cloud, on-site and in
|
||||||
and in hybrid infrastructures. Keen on refactoring for the greater good. A long
|
hybrid infrastructures. Keen on refactoring for the greater good. A long time
|
||||||
time GNU/Linux user of many flavors, currently endeavoring to use Fedora
|
GNU/Linux user of many flavors, currently endeavoring to use Fedora
|
||||||
CoreOS, or any other [**OSTree based
|
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
|
environment. My
|
||||||
[**Linked-In**](https://www.linkedin.com/in/vladan-popovic-957ab733),
|
[**Linked-In**](https://www.linkedin.com/in/vladan-popovic-957ab733),
|
||||||
[**GitHub**](https://github.com/vladan>) and [**my selfhosted Gitea
|
[**GitHub**](https://github.com/vladan>) and [**my selfhosted forge
|
||||||
server**](https://gitea.vp.mk/vladan) may provide more info if needed.
|
server**](https://forge.vp.mk/vladan) may provide more info if needed.
|
||||||
|
|
||||||
### Skills and toolset
|
### Skills and toolset
|
||||||
|
|
||||||
Python is the language and ecosystem I have the most experience with. I've done
|
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.
|
a lot of web apps in Django, Flask, FastAPI and made heavy use of SqlAlchemy.
|
||||||
Nowadays I use AsyncIO for async programming, but used gevent a lot in the past
|
Nowadays I use AsyncIO for most Python projects, used gevent before AsyncIO was
|
||||||
as well. I'm obliged to say I've got to use most of uWSGI's features and love
|
introduced. Deployed WSGI apps on uWSGI and love it for its robustness,
|
||||||
it for its robustness, richness, large set of configuration options and
|
richness, large set of configuration options and wonderful documentation.
|
||||||
wonderful documentation.
|
|
||||||
|
|
||||||
Huge fan of PostgreSQL with some NoSQL experience in Apache CouchDB. I have
|
Huge fan of PostgreSQL with some NoSQL experience in Apache CouchDB. I have
|
||||||
fair experience with Apache Kafka, RabbitMQ, MQTT, ZMQ, gRPC for message
|
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
|
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
|
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
|
the past, but switched to Podman due to its daemon-less, free [as in
|
||||||
freedom) and its Kubernetes compatibility.
|
freedom] nature and its Kubernetes compatibility.
|
||||||
|
|
||||||
### Hobbies and Languages
|
### Hobbies
|
||||||
|
|
||||||
I spend most of my free time writing Rust, from [**lock-free
|
I spend most of my free time writing Rust, from [**lock-free
|
||||||
queues**](https://github.com/filipdulic/bus-queue) to [**web applications in
|
queues**](https://github.com/filipdulic/bus-queue) to [**web applications in
|
||||||
WebAssembly**](https://git.vp.mk/ui) (must also mention that Elm provided me
|
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
|
with one of the greatest hobby-programming experiences ever). Recently I've
|
||||||
been busy with an [**embedded application in Rust for tracking
|
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
|
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,
|
bread baker and an ordinary everyday cook. I also enjoy playing video games,
|
||||||
mostly football when in good company.
|
mostly football when in good company.
|
||||||
|
|
||||||
|
### Languages
|
||||||
|
|
||||||
Macedonian is my native language. I speak English and Serbian fluently and have
|
Macedonian is my native language. I speak English and Serbian fluently and have
|
||||||
a fair German knowledge with a C2 degree in 2001.
|
a fair German knowledge with a C2 degree in 2001.
|
||||||
|
|
||||||
|
\
|
||||||
|
|
||||||
|
\
|
||||||
|
|
||||||
|
\
|
||||||
|
|
||||||
## Work Experience
|
## 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
|
Location Based Services for tracking electric bikes. ESP32 Microcontroller
|
||||||
ESP32 Microcontroller and is written the Rust. It also contains a SIM modem
|
written in Rust that also contains a SIM modem (SIM800L + u-blox NEO-6M GPS
|
||||||
(sim800l + an ublox neo6m GPS modem is the first implementation, the second is
|
modem, or A7670E with embedded GPS module) that sends location information to a
|
||||||
on A7670E with an embedded GPS module).
|
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,
|
SRE in a dynamic multi-cloud setup consisting of close to 100.000 of nodes,
|
||||||
offering managed Postgres, Kafka, Clickhouse, Mysql, Elastic/Opensearch, etc.
|
offering managed Postgres, Kafka, Clickhouse, Mysql, Elastic/Opensearch,
|
||||||
with platform management software written in Python.
|
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
|
Consultant in Ericsson LabOps team in Linköping - Sweden. Worked on automating
|
||||||
the infrastructure procurement for the R&D department in Ericssons own private
|
the infrastructure procurement for the R&D department in Ericssons on-site
|
||||||
cloud management solution running on-site. My responsibilities included
|
private cloud. My responsibilities included implementing best practices,
|
||||||
implementing best practices by setting up automation, reviewing most of the
|
reviewing most of the code in Gerrit and maintaining a Jenkins CI/CD pipeline
|
||||||
code in Gerrit and maintaining a Jenkins CI/CD pipeline (code-test-deploy
|
(code-test-deploy). The most interesting part for me was to develop a Python
|
||||||
automation).
|
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
|
Distributed application for managing and editing documents written in
|
||||||
telecommunications provider. Based on the Hortonworks appliance (Ambari, Spark,
|
TypeScript (NodeJS) and PostgreSQL using JSON-RPC for inter-node communication.
|
||||||
Kafka, HDFS, Hive) with the code written purely in Scala.
|
|
||||||
|
|
||||||
#### TradeCore - Python Lead (2017-2018)
|
#### TradeCore - Python Lead (Jul 2017 - Nov 2018)
|
||||||
\
|
\
|
||||||
Reduced the technical debt by refactoring, planning and discovering bottlenecks
|
Reduced the technical debt by refactoring, planning and discovering bottlenecks
|
||||||
and bad/redundant implementations. Improved the development flow, enforced a
|
and bad/redundant implementations. Improved the development flow, enforced a
|
||||||
stronger code review practice and python coding standards for the main product
|
stronger code review practice and Python coding standards for the main product
|
||||||
written in Django, which also utilized PostgreSQL, ElasticSearch, Celerry, etc.
|
written in Django, which also utilized PostgreSQL, ElasticSearch, Celery, etc.
|
||||||
Introduced a solid CI/CD infrastructure by automating the Selenium tests and
|
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
|
Designed and built a scalable platform in the cloud for home security cameras
|
||||||
security cameras with Python, JSON-RPC with TinyRPC, gevent, Protobuf, FFMpeg,
|
written in Python with JSON-RPC as the synchronization protocol hosted with
|
||||||
uWSGI and Live555, hosted on AWS. Reduced a couple of clients’ development and
|
uWSGI on AWS with around a dozen service types: a server that kept a live
|
||||||
deployment overhead by dockerizing their complete infrastructures. Created a
|
connection to every camera over TCP with Protobuf, transcoding server with
|
||||||
machine-generated-content service by implementing a ranking algorithm in
|
FFMpeg, Live555 custom streaming server, a DB/RPC service to handle clients,
|
||||||
PostgreSQL and optimized critical DB queries.
|
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
|
Development and RPM packaging on OpenStack Nova. Tested, debugged and deployed
|
||||||
various OpenStack scenarios and use cases.
|
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
|
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.
|
||||||
|
|
Loading…
Add table
Reference in a new issue