Vanja Radovanović

Vanja Radovanović

Pula, Croatia
Hire Vanja
Scroll To View More
Vanja Radovanović

Vanja Radovanović

Pula, Croatia
Member since May 26, 2013
Vanja is a fast learner most interested in projects that combine a multitude of technologies with development best practices. He adores Elixir and anything Elixir related and has a special interest in software craftsmanship and personal development, both in the field and in life.
Vanja is now available for hire
Portfolio
Experience
  • Java, 5 years
  • JavaScript, 3 years
  • React.js, 3 years
  • Elixir, 2 years
  • Apache Storm, 2 years
  • Node.js, 2 years
  • Google App Engine, 1 year
  • Apache Kafka, 1 year
Pula, Croatia
Availability
Part-time
Preferred Environment
Linux, Git, IntelliJ IDEA, GitHub, Jenkins, Heroku
The most amazing...
...and widely used plugin I've developed is the Jenkins plugin for Gitlab.
Employment
  • Senior Software Engineer
    Club Collect
    2017 - PRESENT
    • Improved on a communication module responsible for delivering text messages, emails, and snail mail letters to customers. Integrated with various external services like (but not limited to) MailChimp, Nexmo, Twilio, Pingen, Postmark, and others.
    • Developed sport club core management modules, including things like courts availability, members management, etc.
    • Developed APIs and API clients for the above-mentioned modules, to be used by other web based products in the company as well as external clients like mobile apps.
    • Developed internal tools for integration testing across several modules/apps, using GraphQL.
    • Worked on the financial module, responsible for communication with banks and performing crediting and debiting both club members and clubs themselves.
    Technologies: Elixir, Phoenix, Erlang, Heroku
  • Senior Software Engineer/System Integrator
    Infobip d.o.o.
    2010 - 2017
    • Introduced Apache Storm into the technology stack for the purpose of processing incoming (big) data streams in real time to (e.g.) prepare in advance the data for user dashboards to improve user experience; reached a processing power of about 100,000 messages per second with a small cluster.
    • Led the core web team, responsible for developing an internal framework based on Restify to help develop consistent web related APIs across ten teams. Also introduced React to the UI development and set it as standard.
    • Helped develop a set of internal tools used by the support team and developers alike that monitor existing services, alert on various conditions, display metrics and related graphs, etc.
    • Led a team of developers in charge of integrating the above mentioned Apache Storm and monitoring tools into the company's stack; also worked as product owner for the related products.
    • Managed and maintained the entire CI flow for about 150 developers throughout the company, using Stash as a Git server (previously used TFS and GitLab), Jenkins as build farm, Artifactory as repository, and JIRA and Confluence as project management tools; helped integrate Java (Maven) and other types of projects (Node.js, Ruby, .NET) into the flow.
    • Wrote a custom Jenkins plugin for integration with the Git back-end to improve build start times, written in JRuby and open sourced to the community.
    • Created the base tools for automated deployments and maintenance of Java and other types of services by writing a Bash (Linux) and PowerShell (Windows) set of deployment scripts that support automated deploys, upgrades etc.
    • Led coding dojos within the team; taught new candidates the basics (SOLID) within our developer workshops (used to bring new talent to the firm).
    • Created an internal tool for validating SQL schema for the entire platform and for automated building and seeding of various databases needed to run related services in a staging environment.
    Technologies: Apache Storm, Java, Angular, CoffeeScript, JavaScript, REST, HAL, Magnolia, Groovy, Bash, PowerShell, Ruby, MS SQL
  • Full-stack Developer
    Butchershop Creative
    2015 - 2016
    • Integrated the website with Oracle Eloqua and Drupal back-end systems.
    • Built a web API for fetching custom Drupal data.
    • Created a web API for fetching contact/form data from Eloqua.
    • Developed a generic React/Redux component and flow to render custom Drupal data and related contact forms.
    Technologies: Node, Express, React, Redux
  • Google App Engine Web Developer
    Storie, Inc.
    2015 - 2016
    • Created http://storie.com web, running on Google App Engine.
    • Integrated the web with the back-end API, also on Google App Engine, using URLFetch GAE service.
    • Created a build system for client-side scripts.
    • Implemented caching of main resources from the back-end API, to speed up page load times.
    • Created a mechanism to work with models both on server and client side.
    • Supported video playback using a customized JWPlayer.
    Technologies: Google App Engine, Java, Google Guice, Restlet, Jade, jQuery, SCSS
  • Full-stack Rails Engineer
    Soma, Inc. (via Toptal)
    2014 - 2014
    • Helped develop a declarative admin interface called Deckhand, similar to RailsAdmin but more Google-like in usage, Ruby backed with Angular on the front end.
    • Helped untangle largely coupled business logic, e.g., for various billing and shipping use cases, and separate it in distinct concerns, easier to compose and test.
    • Reorganized and fixed a large portion of specs, making them faster by skipping database calls where not needed.
    • Decoupled several background jobs from ActiveModel into Whisper gem's style of publish/subscribe model, helped with decoupling logic from models.
    • Generally worked on improving business cases, whether by adding new features or updating the existing ones to match the changing business needs more closely.
    Technologies: Ruby, Ruby on Rails, Angular, Angular UI, Sidekiq
  • Senior RoR Developer
    HootRecruit (via Toptal)
    2014 - 2014
    • Integrated with FullContact API for both live and background contact importing, respecting request rate limits.
    • Reorganized and made the deploy process simpler, allowing for sandbox and production deployments on the same target server.
    • Fixed various UI issues related to displaying on various mobile devices, and Twitter Bootstrapped the remaining pages.
    • Added support for indexing and full text search of uploaded candidate's resumes (PDF and MS Word) along with other candidate data.
    • Exposed API for resolving contact details given an email; integrates with FullContact API, used on the UI to fill data for manually entered contacts.
    Technologies: Ruby on Rails, JavaScript, jQuery
  • Analyst, System Integrator
    QiQo d.o.o.
    2003 - 2010
    • Incorporated the company's ERP solution into the client's business process.
    • Led various efforts to create custom modules for the ERP product, e.g., for newspaper publishing or the textile industry.
    • Gathered and analyzed client requirements and created solutions within the given ERP product.
    • Educated various teams at the client's site to work with the ERP and present solutions.
    • Created design templates for various ERP components.
    Technologies: Clarion
  • Lead developer, System Engineer
    Grad d.o.o
    1998 - 2003
    • Created reusable framework for dynamic addition of custom medical documents to the system (important because most doctors have their own idea about how to handle and write patient documentation).
    • Created packaging and distribution tools and procedures to speed up deployment of new versions and fixes; also enabled seamless deployment (users not interrupted in their work).
    • Integrated the product (medical system) into a number of hospitals; migrated existing data and flows and developed the missing functionalities.
    • Created a reusable framework for administration, e.g. registering new document types; enabled fast addition of new data types to the UI.
    • Worked on various stand alone (not incorporated into the main product) but medically related products.
    Technologies: Visual Basic, MS SQL
Experience
  • Distributed Reack talk @ Infobip Annual Conference 2106 (Other amazing things)
    https://vimeo.com/179882293

    Gave a talk on introducing React to a situation with:
    - 20+ distributed teams
    - A web product with 10+ related modules
    - 100+ microservices

    The challenge is how to organize it all and have the same UI experience all over and share code between teams. This is where React comes and solves major problems. The talk gives a broad overview of the idea and the benefits that come from it.

    Related slides can be found at https://www.slideshare.net/vax/distributed-react.

  • Apache Storm Overview & Integration Lecture @ DORS/CLUC Conference 2104 (Other amazing things)
    https://www.youtube.com/watch?v=UeAnxXmx8s0

    Gave a lecture on Apache Storm and related ecosystem with following topics:
    - The basics: Why it was created and how it is usually used
    - Motives for usage in Infobip's technology stack: Real-time processing of incoming data stream
    - Integration: Using Kafka and MS SQL
    - Issues and challenges: DB throughput, Java (de)serialization performance bottleneck, etc.

    The video can also be found at DORS/CLUC's conference page: http://mod.carnet.hr/index.php?q=watch&id=3554, and the related slides are shared at SlideShare: http://www.slideshare.net/vax/storm-integration.

  • Jenkins GitLab Webhook Plugin (Development)

    Enables GitLab web hooks to be used to trigger SMC polling on GitLab projects.

    For GitLab, there is an existing solution that might work for you. You can just use the notifyCommit hook on Git's plugin like this: http://your-jenkins-server/git/notifyCommit?url=<URL of the Git repository for the GitLab project>

    But, with a large number of projects that are mostly polling (no hooks), the project might actually be built with a great delay (5 - 20 minutes). That is where this plugin comes in. It gives you the option to use build_now or notify_commit hooks, whichever suits your needs better. Recently, it was used to trigger Stash commits as well.

  • Dealesque (Development)
    https://github.com/elvanja/dealesque

    Finds the best combination of sellers and postage options for a selection of Amazon products.

    A pet project used to try the Clean Ruby way of developing a web application. Currently uses Rails but is intended to be decoupled from any framework at all.

  • Roar Example (Development)
    https://github.com/elvanja/roar_example

    An example of a working ecosystem of services and client applications that interact using roar and roar-rails gems. The main idea is to show how one might use those libraries to build such a system.

    Components:
    - Book_of_orcharding - Contains all the domain/business rules about fruit management
    - Orchard - Serves as the persistence layer for the orcharding rules
    - Tutti_frutti - Exposes orcharding rules as a JSON API
    - Smoothie_mixer - Rails project that consumes the API and delivers delicious fruit smoothies
    - Basher - Command line API client

  • Vanja is a mentor in the Toptal Global Mentor’s Program. This program is a partnership between Toptal and General Assembly to provide high quality mentorship for students from minority and low income backgrounds who are looking to begin their careers as professional software engineers. Vanja shows commitment to diversity in tech by mentoring a General Assembly student every week for a year, covering everything from coding tips and tricks to advice on making it in the industry.
Skills
  • Languages
    JavaScript, SQL, Elixir, Ruby, HTML, CSS, Sass, SCSS, Groovy, Java, CoffeeScript, Bash, AS3, Haml, ABAP
  • Frameworks
    Ruby on Rails (RoR), Express.js, Spring, Bootstrap 3, Bootstrap, Gaia, PowerMock, JUnit, Mockito, Flux, GAE, Windows PowerShell, Sinatra
  • Libraries/APIs
    Node.js, Restify, Devise, Google Maps, React.js, Guava, Nokogiri, Amazon Product Advertising API, Java RMI, Facebook API, D3.js, jQuery, Google API, Highcharts JS, Twitter API
  • Tools
    RSpec, IntelliJ IDEA, JIRA, GitLab, Artifactory, Stash, Maven, Git, Jenkins, Apache Storm, VCR, Rake, Adobe Photoshop, Vim Text Editor, Git flow, Magnolia, Grunt, Cucumber
  • Paradigms
    Continuous Integration (CI), REST, Test-driven Development (TDD), Object-oriented Design (OOD), Agile Software Development, Refactoring, Metaprogramming
  • Platforms
    Factual, WordPress, Heroku, Linux, Google App Engine, Apache Kafka
  • Storage
    JSON, PostgreSQL, Microsoft SQL Server, Memcached, MongoDB, MySQL
  • Misc
    HAL, HATEOAS, Lambda Architecture, Big Data
Education
  • Masters degree in Computer Engineering
    Faculty of Electrical Engineering and Computing Zagreb - Croatia
    1993 - 1998
I really like this profile
Share it with others