Name | Miodrag Milić |
miodrag.milic AT gmail.com |
Graduated mathematician specializing in computer science with practical experience spanning over 20 years. Participated in the development and implementation of all types of applications. Designed and developed many utilities, programming libraries, open-source tools, and critical online services with a large user base.
Expertise in all types of automation of Windows and Unix-like operating systems – unattended installations, helper tools, automatic testing, CI/CD, integrations, GUI and browser automation, smart things, etc. I am highly experienced in a number of programming languages and paradigms, object-oriented design, functional programming, Windows/Linux administration, and DevOps practices.
Passion for design of full web service lifetime which includes all supporting infrastructure and starts from first lines of code, over design and testing, to production and maintenance, up to eventual archival. Almost anybody can make it a year or two on a project, but real problems come later when entropy builds up on projects that span more than several years.
In my free time, mostly occupied by open source programming, audio synthesis, medicine, nutrition, cooking, gaming, and being a father.
Education - Open Source - Employment/Projects - Freelance - Skills - Personal - Online presence
Content
- Education
- Open Source
- Employment
- CEO - 1dev - 2022-ongoing
- Principal Software Engineer - KnowIT - 2021-ongoing
- Senior Software Architect - Nil 2019-2021
- Head of Research & Development Department - Treasury Administration - 2012-2019
- Senior advisor, R&D – Treasury Administration, Ministry of Finance, Belgrade - 2005–2012
- Software Development and Administration – Pexim, Belgrade - 2000–2001
- System Administration – Elektrika, Požarevac - 2000-2004
- Freelance
- Skills
- Personal
- Online presence
Online version (always up to date): https://goo.gl/mnzQn7
- UNIVERSITY OF MATHEMATICS, Belgrade, 1995-2004 - M.Sc. Degree in Mathematics and Informatics
- MATHEMATICAL GYMNASIUM, Požarevac, 1991-1995
- STATE EXAM, Belgrade, 2007
I am active on GitHub on number of projects:
Chocolatey Automatic Package Updater Module which is used by hundreds package maintainers as official method of creating automatic packages with highest standards. I am the lead developer on core-team-packages and project manager. We develop 300+ most important mainstream packages that have millions of installs monthly. Technologies: PowerShell, AppVeyor CI/CD, Markdown etc.
Presented on Microsoft Sinergy 2016.
I maintain repository of 100+ chocolatey packages. It contains packages for major mainstream software such as PostgreSql, Dbeaver, Rundeck, FooBar2000 etc. that have many millions of downloads. The packages are stable and regularly improved, so you can depend on them in production settings.
Produce all forms of documentation for IT services using human and repository-friendly languages such as Markdown, PlantUML, MathJax, Python etc. with outputs as PDF or static site. Build, test and optimize your documentation like a source code. Designed to be run by build servers and editors in cross platform manner.
The system is used on many commercial big enterprise projects. See automatic demo output.
One remote manager to rule them all. I am active in feature design and project management, together with VShawn.
- My PowerShell modules
- TFS - PowerShell module to drive TFS 2015+ via REST interface.
- Posher - A build system that generates images for Windows 2012 family of operating systems - all variants of Windows Server 2012 and Windows 8. Machines are defined using PowerShell scripts and built using HashiCorp's Packer.
- Forms framework - Large group of modules used together to create rich AutoHotkey applications and graphical user interfaces. It includes number of custom controls, extensions and useful libraries.
Founder of software development company.
- Support for the following infrastructure: MS Active Directory, DNS, NTP Service, PKI, Zimbra, MS SQL, web sajt, GitLab, Nginx, Squid.
- Detailed support and consulting for Redmine
Treasury Bank Account Statement Service produces statements for 200K+ bank accounts (all public funds accounts of the country).
Most of the statements are produced daily in 4 formats and few are produced continually during the day, every few minutes. Every second of performance counts - full generation never exceeds one hour and individual few seconds, which my team achieved with a single commodity server. Service replaced dozen of home born systems decades in development that were generating this data for many hours, even days. The most critical part of the service runs around 1 AM and must have no errors of any kind. To achieve that, we created several notification tools that guaranties that people do wake up and fix eventual incident. During 3 years of production, we had 0 observable incidents generating several gigabytes of data daily.
- Software architect for high-profile and critical government web services
- System analysis
- Project and team management
- Design and implementation of on-premise cloud-like infrastructure using FOSS for all company projects
- Build, test & automation engineer
- Reverse engineering
- DevOps
A new generation of the public bank of Serbia hosted by the Treasury administration. The goal of the project is to replace the current government bank that was 20+ years in the making. To create a new bank for the entire country from scratch is AWESOME. Development is projected to last for almost a decade.
The project is done in cooperation with Oracle and I am currently leading it.
Year | Description |
---|---|
2025 | Treasury Administration (TA) Tariffs, Cash operations at TA OU, BU/BA production |
2024 | BU/BA enhancements, APR proxy/integration, Payment Gateway, performance/quality automatic tests |
2023 | Budget users registry (BU), Bank accounts registry (BA), Data tables, Reports, i18n, Notifications |
2022 | System analysis, Plans, backend concepts and framework design |
2021 | System analysis, Current system state documentation |
- Software architect for high-profile and critical government web services
- Infrastructure development
- Build, test & automation engineer
- Team lead and mentoring
- System analytics
ePP - 2019-ongoing
Treasury Online Payments is the online banking system for all budget users of Serbia. This is a core financial service in Serbia with the highest expectations, working 24/7 and handling 20M+ payment orders per year. The main goal of the project is to provide a stable and performant payment experience, something that the previous two incarnations spanning over 20 years didn't manage to achieve.
My work includes full system design, API design, automatic testing, CI/CD programming, integrations, and team and project management. Technologies: ASP.NET 5, GitLab, PowerShell, Vue.js, Node, Pester, MkDocs, Chocolatey, SQL Server, Windows, Nginx, IIS, InfluxDb, Grafana etc. It includes 6 sub-services.
Take a look at this playlist to see my presentation of this software's main features.
This project is done in cooperation with Oracle.
ISPFI - 2019-2022
ISPFI is the service for all republic and local budget users of Serbia to record, view, and manage various mandatory corporate periodical financial reports collaboratively. This is a critical government service working 24/7.
My work included system analysis and design, testing, devops and project management. Technologies: ASP.NET Core, Docker, GitLab, PowerShell, Vue.js, Node, Pester, MkDocs, Chocolatey, PostgreSql, Linux/Windows.
Take a look at this video to see my presentation of this software's main features.
ISIB AP JLS - 2019-2020
Web service that ensures tight budget expenditure control for local budget users of Serbia. I worked on functional and technical specifications.
Design of service for managing CRUD activities on a set of data tables. It provides central authority for the business facts with human and machine actors. Other web services can subscribe to data changes which they can receive in real time with a number of other options such as scheduled snapshots, access to historic data and events, data exports to multiple human and machine formats, user management via LDAP/AD etc. Technologies: ASP.NET Core, Webhooks, Docker
- Design and implementation of company methodologies for full-service lifecycle - project management, frameworks, source controls, languages, CI/CD, automatic testing, and so on.
- Team, project and resource management.
- Close work with all other IT departments and the Deputy Ministry of Finance in order to achieve unification of company goals and optimization of procedures and resource use.
- Adoption of free and open source technologies and prevention of vendor lock-in.
- Migration toward DevOps culture and practices.
- Software, infrastructure and documentation development.
- Maintenance, installation, customization, integration, plugin development and presentations for number of internal critical company systems such as Redmine, GitLab, Rundeck, ElasticSearch etc.
- Tender participation in technical aspects.
CIR - 2017-2021
Central Invoices Register realizes recording, monitoring and reporting of unsettled monetary obligations in B2G domain which includes around 300K private companies and all public companies and is estimated to have 1M+ total users in its first few years of production. This is a highly critical government service with the highest expectations. Service works 24/7 with near zero downtime and it is developed 100% in DevOps methodology using GitLab, ASP.NET Core, PowerShell, Vue.js, Node, Pester, MkDocs, Chocolatey, Ansible, Rundeck, ELK, TICK, Nginx, MS SQL Server 2016, Windows 2016 etc. My roles include (technical) project management, team leading, development, system analysis and architecture, support, DevOps engineering, system administration, presentations, integrations, HelpDesk design etc. Archived link
ISIB - 2016-2019
Technical project manager, team leader and DevOps engineer on a team that developed the next incarnation of the Treasury core service - Budget Execution Information System. It was implemented using resources of five separate companies with technologies such as Oracle Enterprise Database, ADF, WebLogic & Solaris, Microsoft TFS, GitLab, PowerShell & dotNet, Git, Nexus, Maven, Chocolatey etc. My roles included coordination of 100+ individuals from all project domains, setup of communication protocols, database automation, Windows and Unix configuration management, automation of development environment, CI/CD architecture, documentation design and management, infrastructure mirroring between companies, design of reporting service, design and development of integrative modules and so on. Archived link
Treasury site - 2016-2019
Treasury public site is a public information service with special requirements such as: cross-browser features, personalized site management, ability to return to any point of time for legal reasons, automatic transliteration and reading of the text via TTS engine, best possible performance and security, independent work in the separate environment by all site editors, etc.
This is a solo project developed with Ruby, Nanoc, PowerShell, SASS, VisualSVN and Python Sphynx. The editorial team consists of 20+ editors without any special IT knowledge. Archived link
Help Desk - 2018-2019
Design and implementation of the help desk system to provide support for all end users of Treasury Administration services. The system provides various optimizations for quick help request resolving with features such as knowledge base, contacts database, RSS activity, categorizations, voting, news broadcasting, statistics, attachments, interaction via multiple channels (email, HTML widget, REST, web app), search, filtering, instant notifications, automatic and templated replies etc.
During the first year of use system hosted several projects with a massive number of users during which time the small operations team resolved **25.000 requests by 10.000 unique users, with an average time to resolve under 15 minutes. This was standalone work implemented with open-source technologies using custom Redmine distribution enhanced with the number of plugins and configuration tweaks. Archived link
RINO - 2013-2019
Technical project manager, team leader and backend developer for an online application that enables all budget users in Serbia to upload and list their business obligations and reconciliations. The application works 24/7 with zero downtime and its infrastructure is almost exclusively implemented using open source technologies such as ASP.NET MVC, Jenkins, Graphite, StatsD, Redmine, Subversion etc. Archived link
eGovernment - 2012-2019
Technical project manager and team leader for the development of web services needed for collaboration project between eGovernment, Ministry of Interior and Treasury Administration. The project enables people of Serbia to quickly obtain their personal documents using the Internet, such as vehicle registration renewal, personal identification cards and so on, and to order various government services. The system is highly critical and handles registrations of all vehicles in Serbia.
- Independent research, using the latest hardware and technologies with the overall goal of improving Treasury infrastructure. Among other things, this included the design of programming frameworks, documentation systems, selection of utilities etc.
- Development of Windows and web applications using MS Visual Studio, SQL Server, ASP.NET, MVC, Web Services, ADO.NET, AutoHotkey, JavaScript, PowerShell and others.
Programming leader of the Auction Platform team. Design of auction framework with custom ORM, and different parts of application life cycle. Auction Platform plays a fundamental role in the financial/political position of Serbia which imposed very high demands in all aspects of its development.
Design of the event notification and communication system using IBM MQ Server, .Net framework and AutoHotkey automation language. This is a critical service for Customs Administration which includes 24/7 work state and automatic recovery. Presented on the YuInfo 2008 event in cooperation with IBM.
Development and design of dealing room application for real-time graphical presentation of configurable set of government accounts with complete history and trends as requested by the Minister of Finance. Implemented in Microsoft Excel 2010 using VBA.
VOIP billing, logging and statistics system for Cisco Unified Communication Manager. Cross-browser database agnostic Ajax multi-user web application used to log all company inbound and outbound calls, display call statistics and configure tariffs. Implemented in ASP.NET MVC. Used in Treasury Administration for all company calls on the entire territory of Serbia, generating several millions of entries per year.
- Banking software development in Delphi.
- Post-implementation activities: systems installation and integration, software adaptation and refactoring, functionality testing and documenting.
- Maintenance of software for control and testing of neon-tube systems.
- Administration of small LAN office.
- Development of software for automation and optimal partitioning in woodcutting machinery.
- Software architecture consultancy: online services, client server applications, integrations, development, administration, support
- DevOps consultancy on any platform, expertise in Windows OS
- Implementation activities - team lead, technical project management, automation, development, integration ...
System for local self-governement units to create and monitor different kinds of asset placements, credit liabilities and securities. This project is still in early phase.
PIMIS 2020-2024
Public Investment Management Information System is a platform to manage large, expensive and multi-year government projects in all domains. The platform is collaborative in nature and serves as a main place to control all important projects in the country, validate their current phase and status by all stakeholders, monitor execution and ex-post effects and so on.
The main challenge of the platform was a high number of forms with unique interface design (more then 300 A4 pages). My work included system design, form solution, design and implementation and project management. Technologies: PostgreSQL, ASP.NET 5, Vue.js, PowerShell, Json schema, Json editor.
This project is done in cooperation with NIL and Oracle.
ePredmet - 2020-ongoing
ePredmet is a platform where budget users of Serbia can see all their court cases and verdicts along with unfulfilled liabilities, enforced payments and voluntary payments.
My primary role was project management, functional specification and all forms of documentation, infrastructure development etc. on a 2 person team.
The stakeholders include the Treasury administration, the Ministry of Justice, the State Attorney's Office, the Chamber of Public Executors and the National Bank of Serbia.
IDP - 2020-2024
The government Subsidy Registry is a Serbian government service that allows every citizen to apply for a direct donation of 100 EUR as an economic help measure due to the Covid 2019 pandemic. This service had unreal expectations: to be done within a single month, to serve millions of requests in a single day of highly classified data, integrations with all banks and dozens of ministries, to be highly secure and resistant to malversations and attacks and with all of the citizen data to be hosted in the country. This was all to be done in the military emergency state where most of institutions didn't have a regular working schedule and working in severely diminished capacities, unregular working time and 100% remote.
My roles on this project included: solution architecture, complete infrastructure design/installation/management, CI/CD, automatic testing, project management, support and so on. The project is done, as usual, with open source technologies, commodity hardware and on-premise without using any public cloud except CloudFlare (only for DDOS protection).
The service successfully registered 2M citizens in a few hours, and almost all Serbian citizens the next day, without downtime, processing more than 10M requests per day while utilizing 1-3% of each included server resource. Nobody expected this kind of rush - initial estimates were the order of magnitude lower.
This is an achievement and sleepless month that I am most proud of. Success stories for this could be found on the entire Serbian Internet.
The service had 6 separate instances in different periods of pandemic.
With my team, I support critical Treasury infrastructure: Redmine, Zimbra, DNS, NTP, PKI, MS SQL Server, Gitlab, Nginx ...
ESPP online banking system had the number of bugs and performance issues. My task was to find a way to fix those issues without changes to the source code. My work resulted in complete fix for all problems.
- Implementation of the queue system that sets the limit to the number of active users and lets users in as soon as someone else logs out.
- Implementation of REST service that periodically executes all payments that happened to be in a blocked state for unknown reason and thus were never executed.
- Extremely short production time (last 2 weeks of year)
Development and maintenance of Treasury web site in Ruby and Nanoc.
- 2019-03 - DevOps Training Course (1 month)
- 2019 - Devops, Automatic Testing Support using custom Selenium framework, TFS Support (1 year)
- 2018 - DevOps Training Course (1 month)
- Windows family (all versions)
Administration, programming, troubleshooting, automation, AD - Linux
Experience in Debian-based systems, particularly Ubuntu – administration, scripting, and troubleshooting. Basic experience with CentOS / RedHat, ArchLinux and Gentoo. - Unix
Experience with Solaris and some experience with OSX.
- Methodologies Object Oriented Programming & Patterns, Functional Programming, Agile Development, Test Driven Development, Continuous Integration, Unit & Integration Testing, Infrastructure as Code, Infrastructure Testing, Domain Specific Languages, Cross browser programming
- Excelled in: C#, PowerShell, Object Pascal, (D)HTML, (T)(P)SQL, XML, XPath, Batch, Awk, AutoHotKey, Java, JavaScript, CSS/Compass, Regular Expressions
- Hands-on: VB, Clojure, Python, Lua, Go, MASM, AutoIt, C, C++, Ruby and other
- Databases: MS SQL Server, PostgreSql, Oracle, MySql, SqLite
- Accomplished in: .Net Framework, Scripting, Windows API, OO Design, DB Design and Programming, Digital Signal Processing, General automation
- Development and administration
- Testing frameworks - MSTest, MS Web Performance Testing, Nunit, Cucumber, JMetter, Pester, Puppeteer, Cypress
- Source controls - SVN, Git
- Build Utilities - MSBuild, Make, Invoke-Build, Cake, Rake
- Continuous Integration - TeamCity, Hudson/Jenkins, TFS, GitLab, GitHub, AppVeyor
- Configuration management - Ansible, DSC, Chocolatey
- Project management – Redmine, TFS, GitLab, GitHub
- Design Tools - PowerBuilder, PlantUML
- Web Servers - IIS, Apache, Nginx, WebLogic
- Virtualization - vmWare, VirtualBox, KVM/Qemu, Vagrant, Docker
- Metrics and Monitoring - Graphite, StatsD, Nagios, TICK stack, ELK stack, Sentry
- Documentation systems - MkDocs, Python Spynhx, GitBooks, NaturalDocs
Passionate about medicine and related topics – nutrition, vitamins, minerals, drugs, toxins, disease, physiology, pathology, genetics and so on, with a special interest in orthomolecular medicine and vitamin C.
Owner of a personal audio workstation with a history of work in several radio stations and many original works.Passionate computer/board gamer and science fiction fan.
Married, 1 daughter
Fluent in Written and Oral English
Available for Travelling and International Assignments in reasonable amounts
Platform | URL |
---|---|
GitHub | https://github.com/majkinetor |
Gitlab | https://gitlab.com/majkinetor |
StackOverflow | http://stackoverflow.com/users/82660/majkinetor |
PowerShellGallery | https://www.powershellgallery.com/profiles/majkinetor |
Chocolatey | https://chocolatey.org/profiles/majkinetor |
https://www.linkedin.com/in/majkinetor | |
http://www.reddit.com/user/majkinetor | |
KeyBase | https://keybase.io/majkinetor |
Lobster.rs | https://lobste.rs/u/majkinetor |
HackerNews | https://news.ycombinator.com/user?id=majkinetor |
DockerHub | https://hub.docker.com/u/majkinetor |
MusicBrainz | https://musicbrainz.org/user/majkinetor |
ListenBrainz | https://listenbrainz.org/user/majkinetor |
LastFM | https://www.last.fm/user/majkinetor |
Soundcloud | https://soundcloud.com/majkinetor |
Bandcamp | https://bandcamp.com/majkinetor |
https://twitter.com/majkinetor | |
Youtube | https://www.youtube.com/user/majkinetor |