Milan Aleksić
Last updated: 05/11/2022
Personal
Born on 21/12/1983, Smederevo (Serbia), living in Koekelberg (Belgium) since 2011. I have dual citizenship of Belgium and Serbia.
My website is aleksic.dev, email is [email protected] and Twitter account is: milanaleksic. I am fairly active on github.com/milanaleksic. I also have a LinkedIn account if you’d like to connect with me.
Education
Dipl. Ing. Computer Science & Engineering (2008) from University of Belgrade (Serbia), Faculty of Electrical Engineering (ETF)
“NARIC – Vlaanderen” recognized diploma as M.Sc.
Spoken languages
- Serbian (mother tongue)
- English (fluent)
- Dutch (C1 Effectiveness 1; explanation link)
Keywords
Java, Go, AWS, Python, PostgreSQL, MySQL
Experience
Senior Software Engineer @ Soda (Belgium)
Place: Remote/Brussels, Belgium
Period: 2020-…
Projects:
- soda.io Cloud Backend (founding) engineer
- Programming languages: (mostly) Java, Python and cloud development on AWS using Terraform
- Tasked with backend feature development, guidance and documentation. One of the first engineers and therefore I witnessed most of pivoting, market adaptations, surprising platform usage patterns, product evolution, became the company MySQL perf guy…
- Deep observability setup via DataDog, incident management and other operational concerns of the Soda Cloud (handed over to dedicated personnel as we grew); I made various deep analysis tools in Go like timeline diagrams for deadlock analysis, log processing pipelines
- Created in Python internal
dopy
tool for various devops/security tasks on top of Okta and boto3
- Broad exposure to data sources while helping bootstrap Soda SQL: PostgreSQL, Redshift, Athena, Spark
Expert Software Engineer @ TomTom (Belgium)
Place: Ghent, Belgium
Period: 2017-2020
CCE Team
Feature development and maintenance of various core systems and applications in MPU Core Coverage Creation & Extension team
Projects:
- MLF library: authored code-generated Java wrapper around GDAL OpenFileGDB (later extended to PostGIS and GeoPackage).
- Custom ANTLR grammar for extended validation, Python/Markdown doc generator
- Sinatra: Led migration of a complex process into AWS for GIS source data digestion
- PostgreSQL RDS, Spring Boot 2, SQS, ECS, Terraform, Vue.js
- Pupin: created machine learning cloud service for data classification (plural junctions problem)
- Training: PostGIS, Python, Scikit-Learn, XGBoost, (Geo)Pandas, Jupyter
- Online+Batch prediction: Terraform / AWS ECS, Spring Boot 2, XGBoost, REST
- Dumbo: migration of internal heavily used batch processing tool into the cloud
- AWS Batch, ECS, PostgreSQL, S3, X-Ray; Spring Boot 2, Terraform, Python, Jenkins
- Excelsior: process orchestration service
Hermes team
Feature development on new long-term systems and applications in Hermes team
Projects:
- Nozem: always-up-to-date OpenStreetMap ingestion service into core TomTom data layer
- Kafka, PostgreSQL, Python, Spring Boot, Jenkins
- Lego: automated OpenStreetMap features ingestion
- Kubernetes on Azure Cloud, Python, Java, QGIS Python plugins
{Senior, Lead} Software Engineer @ Basware (Belgium)
Place: Aalst, Belgium
Period: 2013-2017
Projects:
- Basware Network Portal: Full-stack development role on online and internal services
- Play2, Scala, Java8, MongoDB, Spring, Chef, Go
- Rewritten core validation business rules implementation (Java)
- Basware e-Archiving: DevOps lead-in-charge and one of lead developers
- CloudFormation, Jenkins, Bash, AWS CLI
- Java Lambda functions, API GW, S3, DynamoDB, SQS, Splunk
- Norsu: Introduced cross-systems end-to-end testing
- Business Metrics dashboards
- Akka (Scala) and Dashing.io (Ruby)
- Migration of legacy Resin applications to Tomcat cluster
- Oracle, JSP, RMI, Ant, Tomcat, Apache2
- HAL9000: Flowdock bot (CI/CD automation helper for 100+ developers)
Freelance Consultant
Place: Remote (part-time job)
Period: 2014
Projects:
- Support migration of einstants Flash to HTML5 (Script#, Grunt, RequireJS, Karma)
- Various tasks related to new Switzerland Lottery’s online game LotoExpress
Software consultant @ Cronos (Belgium)
Place: Brussels, Belgium
Period: 2011-2013
Projects:
- Interwoven TeamSite consultancy in BNP Paribas Investment Partners
- Full-stack maintenance of global portal www.bnpparibas-ip.com (Java, Oracle, XSLT, Perl, JavaScript)
- Server Synchronization: tool for content synchronization analysis over Solaris systems (Java)
Software Engineer II @ Gtech G2 Sports Betting
Place: Belgrade, Serbia
Period: 2009 - 2011
Projects:
- WARP Framework
- Core engineer (front-end and backend in Script#/C#)
- Lottery Players’ portals projects
- DistributeWarpComponent
- Microsoft Visual Studio developer tool for immediate development cycle feedback (C# / Groovy for backend server)
- CipDroid: Android application for internal issue management system
Software Developer @ Arius (Serbia)
Place: Belgrade, Serbia
Period: 2007-2009
Projects:
- TMS (Terminal Management System)
- Evolution of payment transaction system for POS terminals (Java, WebSphere, Oracle)
- SMS dispatcher
- Dispatching of bank notifications via SMSC / GSM modem (JMS, Spring, WebSphere 6, Oracle)
- MRS (Mobile Recharge System)
- Mobile top-ups Java server transaction application (Java, JPOS Q2, WebSphere)
- Offline vouchers project for Nigerian market (Java, C)
Intern software developer @ ESAProjekt
Place: Katowice, Poland
Period: 2006
Projects:
- Case study of iOmniscient video recognition software application for parking lots (C#)
Selected open source projects
- Github Helper CLI (Rust, Github API)
- epic issues dependency graph handling, branch names and other “my flow” helpers
- Personal Web site (Hugo, Cloudflare Pages)
- Advent of Code 2018 (Go)
- gomakefiles (Makefile, Bash)
- Reusable Makefile files which allow cross CI/CD Go compilation with many useful tools
- Igor (Go Lambda, Vue.js, Google+, CloudFront, Cognito, DynamoDB)
- “I am away” Flowdock bot, deployed via Semaphore.ci + CloudFormation
- Clici for Jenkins (Go)
- Customizable Jenkins ncurses-like command line tool to follow Jenkins jobs
- Baobab (Java)
- JSON-to-SWT mapping and annotation-driven MVC GUI framework
- MtsCheckAccount (Java, GNU RxTx)
- GUI application for executing USSD via AT commands on USB 3G modems
- Supporting modems ZTE MF622 and Huawei E1550 on Windows and Linux
Selected closed source personal projects
- Home Laboratory
- Cluster of 7 hybrid (aarch64, amd64, on premises and on cloud) servers and 3 switches
- Ansible for bootstrapping, Nomad/Consul for job scheduling, Gitea as git repo
- Monitoring via Grafana, InfluxDB, Grafana Loki and Tempo
- Thought Train (Go, PostgreSQL, ANTLR, Vue.js, Bootstrap)
- Feature-rich web page content extraction and knowledge graph service
- Search Query grammar, Pulumi-based AWS cloud setup
- mobile applications built using Flutter (Android, iOS)
- BADUC (Bastion+DroneCI+Usher+Consul; also Chef, Gitea, SystemD)
- CD system for artifact deployment in my home network
- Uses self-developed Go microservices like Bastion (HTTP server endpoint to trigger deployment), Usher (node agents that execute deployment)
- Deployment workflow handled via combination of DroneCI (or Semaphore CI) Consul, SystemD and Chef
- Fully deprecated and replaced with Home Laboratory v2
- Batler (Go)
- Telegram bot I use for home automation tasks like turning on/off my workhorse laptop, Windows VM
- Used as on-prem notification gateway for Synology and all other services
- NovinarnicaDownload (Scala, Akka, Spray.io, Google OAuth&GMail, Pushbullet)
- Content crawler and CBR packager of magazines from www.novinarnica.net
- Fully deprecated and replaced with Novinarnica v2 which is fully Go
- Movie Catalog System (Java, Baobab)
- Catalog program for movie collections for Windows and Linux (SWT, Hibernate, H2)
- TMDB integration (find-a-movie, posters, IMDB links)
- Custom SWT components for UX, multi-master optimistic replication via vector clocks,
- Versioned database alteration and restoration from backup
- Collaborative Utilities Concept (Java, Baobab)
- Platform for integration of numerous (thirteen) tools (SWT, Smack, JMF…)
- Including Jabber bot, scheduled SQL firing, ISO8583 message parser etc
Miscellaneous
Public talks
Courses
- Coursera, Functional Programming in Scala (with Martin Odersky) (2012)
- Coursera, Algorithms 1 & Algorithms 2 (with Robert Sedgewick) (2013)
- Coursera, Pattern Oriented Software Architecture (with Douglas Schmidt) (2013)
- 10gen, MongoDB for Java Developers (M101J) (2013)
- Coursera, Principles of Reactive Programming (with Odersky, Meijer & Kuhn) (2014)
Awards
Certifications
- Oracle Certified Professional, Java Programmer 6 (OCPJP 6) (2011)
- Oracle Certified Professional, Java EE 5 Web Component Developer (OCPWCD 5) (2011)
- Oracle Certified Expert, Java EE 6 Java Persistence API Developer (OCEJPA 6) (2012)
Recommendations