Senior Software Engineer
2017 - PRESENTClub Collect- 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 sports club core management modules, including things like court availability, member 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: GitHub, Bootstrap, Linux, PostgreSQL, Elixir, JavaScript, Git, SQL, Heroku, Erlang, PhoenixSenior Software Engineer/System Integrator
2010 - 2017Infobip d.o.o.- 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 Kafka, Apache Storm, GitHub, Bootstrap, Linux, React, GitLab, Jira, Node.js, Express.js, JavaScript, Git, Ruby, Jenkins, SQL, Microsoft SQL Server, Windows PowerShell, Bash, Groovy, Magnolia, HAL, REST, CoffeeScript, Angular, JavaFull-stack Developer
2015 - 2016Butchershop Creative- 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: React, Node.js, Express.js, Git, SQL, ReduxGoogle App Engine Web Developer
2015 - 2016Storie, Inc.- 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: GitHub, Bootstrap, Linux, Git, SQL, SCSS, jQuery, JADE, Restlet, Google Guice, Java, Google App EngineFull-stack Rails Engineer
2014 - 2014Soma, Inc. (via Toptal)- 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: Linux, Git, Ruby on Rails (RoR), Ruby, SQL, Sidekiq, AngularSenior RoR Developer
2014 - 2014HootRecruit (via Toptal)- 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 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 an API for resolving contact details given an email; integrates with FullContact API, used on the UI to fill data for manually entered contacts.
Technologies: Linux, JavaScript, Ruby on Rails (RoR), SQL, jQueryAnalyst, System Integrator
2003 - 2010QiQo d.o.o.- 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 analysed 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: SQL, ClarionLead Developer, Systems Engineer
1998 - 2003Grad d.o.o- Created a 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: SQL, Microsoft SQL Server, Visual Basic