notes/source/cv.md

139 lines
6.3 KiB
Markdown
Raw Normal View History

2023-07-01 00:06:43 +02:00
# Vladan Popovic
2023-07-02 23:32:51 +02:00
## Senior software and systems engineer
2023-07-03 04:43:46 +02:00
\pagenumbering{gobble}
2024-02-06 13:42:15 +01:00
Bulevar Oslobodjenja 150, 11042 Belgrade, Republic of Serbia
2019-08-03 22:06:25 +02:00
2024-02-06 13:42:15 +01:00
Tel : +381 62 1436099
2022-12-29 00:08:47 +01:00
2020-02-03 17:40:21 +01:00
E-mail: vladanovic@gmail.com
2024-02-06 13:42:15 +01:00
2019-08-03 22:06:25 +02:00
2023-07-01 00:06:43 +02:00
## Profile
2019-08-03 22:06:25 +02:00
2024-02-06 13:42:15 +01:00
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
2023-07-02 23:32:51 +02:00
CoreOS, or any other [**OSTree based
2024-02-06 13:42:15 +01:00
distro**](https://forge.vp.mk/vladan/workstation-ostree-config) in a production
2023-07-02 23:32:51 +02:00
environment. My
2023-07-01 00:06:43 +02:00
[**Linked-In**](https://www.linkedin.com/in/vladan-popovic-957ab733),
2024-02-06 13:42:15 +01:00
[**GitHub**](https://github.com/vladan>) and [**my selfhosted forge
server**](https://forge.vp.mk/vladan) may provide more info if needed.
2019-08-03 22:06:25 +02:00
2023-07-01 00:06:43 +02:00
### Skills and toolset
2019-08-03 22:06:25 +02:00
2022-12-29 00:08:47 +01:00
Python is the language and ecosystem I have the most experience with. I've done
2024-02-06 13:42:15 +01:00
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.
2023-07-02 23:32:51 +02:00
Huge fan of PostgreSQL with some NoSQL experience in Apache CouchDB. I have
fair experience with Apache Kafka, RabbitMQ, MQTT, ZMQ, gRPC for message
distribution and make use of Protobuf and Cap'n Proto for packing data before
sending it through the wire.
2023-07-04 19:44:14 +02:00
Professionally I used to manage infrastructure on AWS, GCP, OpenStack and
2023-07-02 23:32:51 +02:00
employed Ansible on multiple projects. Docker was a thing I've used a lot in
2024-02-06 13:42:15 +01:00
the past, but switched to Podman due to its daemon-less, free [as in
freedom] nature and its Kubernetes compatibility.
2023-07-02 23:32:51 +02:00
2024-02-06 13:42:15 +01:00
### Hobbies
2023-07-02 23:32:51 +02:00
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
2023-07-04 19:44:14 +02:00
with one of the greatest hobby-programming experiences ever). Recently I've
been busy with an [**embedded application in Rust for tracking
2024-02-06 13:42:15 +01:00
e-bikes**](https://forge.vp.mk/e-bike-tracker) on an esp32 with a sim module.
2023-07-02 23:32:51 +02:00
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.
2019-08-03 22:06:25 +02:00
2024-02-06 13:42:15 +01:00
### Languages
2022-12-29 00:08:47 +01:00
Macedonian is my native language. I speak English and Serbian fluently and have
2023-07-02 23:32:51 +02:00
a fair German knowledge with a C2 degree in 2001.
2019-08-03 22:06:25 +02:00
2024-02-06 13:42:15 +01:00
\
2023-07-01 00:06:43 +02:00
\
2022-09-05 15:56:01 +02:00
2023-07-01 00:06:43 +02:00
\
2022-09-05 15:56:01 +02:00
2024-02-06 13:42:15 +01:00
## Work Experience
#### Self Employed - Rust Developer / Embedded (current)
2023-07-01 00:06:43 +02:00
\
2024-02-06 13:42:15 +01:00
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/) (Mar 2021 - Feb 2022) - Site Reliability Engineer
\
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.
2019-08-03 22:06:25 +02:00
2024-02-06 13:42:15 +01:00
#### 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 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.
#### H4 - Senior software engineer (Nov 2018 - Oct 2019)
2023-07-01 00:06:43 +02:00
\
2024-02-06 13:42:15 +01:00
Distributed application for managing and editing documents written in
TypeScript (NodeJS) and PostgreSQL using JSON-RPC for inter-node communication.
2019-08-03 22:06:25 +02:00
2024-02-06 13:42:15 +01:00
#### TradeCore - Python Lead (Jul 2017 - Nov 2018)
2023-07-01 00:06:43 +02:00
\
2019-08-03 22:06:25 +02:00
Reduced the technical debt by refactoring, planning and discovering bottlenecks
and bad/redundant implementations. Improved the development flow, enforced a
2024-02-06 13:42:15 +01:00
stronger code review practice and Python coding standards for the main product
written in Django, which also utilized PostgreSQL, ElasticSearch, Celery, etc.
2022-09-05 15:56:01 +02:00
Introduced a solid CI/CD infrastructure by automating the Selenium tests and
2024-02-06 13:42:15 +01:00
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.
2019-08-03 22:06:25 +02:00
2024-02-06 13:42:15 +01:00
#### Itekako - Software Engineer / Python Lead (Jun 2012 - Sep 2013, Sep 2014 - Jun 2017)
2023-07-01 00:06:43 +02:00
\
2024-02-06 13:42:15 +01:00
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 (Oct 2013 - Sep 2014)
2023-07-01 00:06:43 +02:00
\
Development and RPM packaging on OpenStack Nova. Tested, debugged and deployed
various OpenStack scenarios and use cases.
2019-08-03 22:06:25 +02:00
2024-02-06 13:42:15 +01:00
#### Asseko - Software Developer (Dec 2010 - May 2012)
2023-07-01 00:06:43 +02:00
\
2019-08-03 22:06:25 +02:00
Part of a new team working on a complete rewrite of a legacy proprietary
2024-02-06 13:42:15 +01:00
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.