Josip Medic

Josip Medic

Split, Croatia
Hire Josip
Scroll To View More
Josip Medic

Josip Medic

Split, Croatia
Member since January 17, 2014
Josip is a team player with an open and communicative nature and a strong passion for building new systems. He is devoted to writing bug-free, maintainable, and scalable code, and is constantly educating himself about new technologies. He uses Agile techniques and works well under pressure.
Josip is now available for hire
Portfolio
  • FotoIN
    Java, Spring Boot, PostgreSQL
  • Reversing Labs
    Python, Vertica Database, Vagrant, Jasper Reports Server, Jasper Reports Studio
  • Oradian
    Scala, Play Framework, jQuery, JavaScript, PostgreSQL, JIRA
Experience
  • Java, 5 years
  • Scala, 4 years
  • Python, 1 year
  • Spring MVC, 4 years
  • Play Framework, 3 years
  • AngularJS, 1 year
  • Vertica, 1 year
Split, Croatia
Availability
Part-time
Preferred Environment
IntelliJ IDEA, Linux, Git
The most amazing...
...project I've worked on is an Ebay Lifestyle Deals and Ebay Offer Network (http://deals.ebay.com).
Employment
  • Senior Software Engineer
    FotoIN
    2015 - PRESENT
    • Worked with a variety of technologies, including Amazon EC2, Java, Spring Boot, PostgreSQL, and REST.
    Technologies: Java, Spring Boot, PostgreSQL
  • Senior Software Engineer
    Reversing Labs
    2013 - 2015
    • Collected malware and goodware samples from various providers.
    • Managed various services for Vertica logging. Logging all collected events about samples into the Vertica analytic database for later processing.
    • Created daily reports of running services based on the Vertical Analytics database. Aggregated all vertical data after collection, allowing daily reports to be easily fetched.
    • Worked on an aggregation service managing analytical data and making daily aggregations.
    • Created reports using Jasper Reports. Worked on a Jasper Reports Server for managing created reports.
    Technologies: Python, Vertica Database, Vagrant, Jasper Reports Server, Jasper Reports Studio
  • Senior Software Engineer
    Oradian
    2013 - 2014
    • Worked on the architecture design of the Instafin microfinance product. Created modular application parts that can easily be decoupled.
    • Worked on the architecture design and application development of the Instafin microfinance product. Provided real solutions to technology problems facing financial service providers.
    • Handled back-end development of the Instafin application. Developed the back-end using Scala.
    • Created the Instafin application front-end. Developed the front-end using Scala template, Bootstrap Framework, JavaScript, and Undescore.js.
    • Managed Launch and Learn sessions twice a week for developers to discuss clean code, best practices, and code improvement-related techniques.
    Technologies: Scala, Play Framework, jQuery, JavaScript, PostgreSQL, JIRA
  • Medium Software engineer
    PayPal
    2011 - 2013
    • Worked on an Ebay Lifestyle deals project allowing multiple providers to list offers, deals, and coupons on eBay. Allowed eBay users to buy their deals and receive coupon codes within minutes on their eBay accounts.
    • Allowed multiple providers to list their offers on eBay.
    • Developed a network project, aggregating offers from multiple providers (Entertainment, Signpost, Zozi, Crowd savings, Living Social, Juice in the City, and more).
    • Supported offers through PayPal services.
    • Hunted exceptions, checking all services using app health tools.
    Technologies: Java, Scala, Play framework, Spring framework, MongoDB, MySQL, Memcached, Jira task management, Planning Poker
  • Junior Software Engineer
    Where Inc.
    2010 - 2011
    • Worked on a campaign manager administration tool responsible for managing campaigns in the Where Advertising Network and synchronizing between ad servers working on multiple publisher networks.
    • Worked on the Where advertisement server, creating banners serving end users.
    • Managed release cycles of the campaign manager application.
    • Located and corrected bugs in the app.
    Technologies: Java, RMI, Spring framework, MVC, MongoDB, MySQL, Memcached, Akamai, Jira task management, Planning Poker
  • Student Co-op
    Larus d.o.o.
    2007 - 2009
    • Created a room master system for controlling hotel rooms.
    • Developed a hotel SOS system.
    • Designed a system for my Master's Thesis for control of a touchscreen with 240x128 resolution, using an 8 bit Toshiba T6963C processor.
    • Soldered hardware.
    • Programmed in C.
    Technologies: C
Experience
  • RESTful Scala Play Framework 2.4 Application (Development)
    https://github.com/git-josip/reactive-play-scala-akka-slick-guice-domain_validation-seed#master

    A restful Scala Play framework 2.4 application using Akka, Reactive Slick 3.0, Akka Actors for ActionLogs, JWT Token user identification and authentication, DDD domain validation, and Guice Dependency Injection

  • Code Sampling with Scala, Play (Development)
    https://github.com/git-josip/scala-backend-sampling

    This is a sample application using Scala, PlayFramework, and Postgres.


    - Slick FRM for DB connection
    - Akka Actors for ActionLog
    - Deep validation where all errors, warnings, and info messages are collected and presented
    - All REST responses are unified with the same structure every time, so it's easier to handle errors, warnings, and messages as well as specific data on pages.

    Responses are structured for global and local messages. Local messages are coupled to some field, e.g., "Username is too long. Allowed length is 80 chars." Global messages are messages that reflect all data on page, e.g., "User will not be active untill is approved." Messages have three levels: ERROR, WARNING and INFORMATION.

    (example response: http://demo3385913.mockable.io/api/v1/single-create-response)


    - JSON Web Tokens (JWT) for user identification and authentication
    - Divided into modules, e.g., user module, organization-structure module, etc. Each module has DAO, domain, validation, and service packages
    - Spring dependecy injection

  • Chess Problem (Development)
    https://github.com/git-josip/chess-problem-josip

    The problem is to find all unique configurations of a set of normal chess pieces on a chess board with dimensions M×N where none of the pieces is in a position to take any of the others. Assume the colour of the piece does not matter, and that there are no pawns among the pieces. Write a program which takes as input:

    - The dimensions of the board: M, N.
    - The number of pieces of each type (King, Queen, Bishop, Rook and Knight) to try and place on the board.

    As output, the program should list all the unique configurations to the console for which all of the pieces can be placed on the board without threatening each other. When returning your solution, please provide with your answer the total number of unique configurations for a 7×7 board with 2 Kings, 2 Queens, 2 Bishops and 1 Knight.

  • Red Bull Paper Wings 2009. Croatian Champion (Other amazing things)
    http://www.redbullpaperwings.com

    National Champion of Croatia in the Red Bull Paper Wings contest in 2009 and participant in the Red Bull Paper Wings World Championships in Salzburg, Austria, where I took 43rd place.

  • Red Bull Paper Wings 2012. Croatian Champion (Other amazing things)
    http://www.redbullpaperwings.com

    National Champion of Croatia in the Red Bull Paper Wings contest in 2012 and participant in the World Championships in Salzburg, Austria, where I took 20th place.

  • Context Validation in Domain-Driven Design (Publication)
    Handling all validation in domain objects results in objects that are huge and complex to work with. In domain-driven design, using decoupled validator components allows your code to be much more reusable and enables validation rules to rapidly grow. In this article, Toptal engineer Josip Medic shows us how validation can be decoupled from domain objects, made context-specific, and structured well to achieve more sustainable validation code.
Skills
  • Languages
    Java, Scala, Python, JavaScript
  • Storage
    PostgreSQL, MongoDB, Memcached, Vertica, MySQL
  • Frameworks
    Play Framework, Spring, AngularJS, Spring MVC
  • Libraries/APIs
    Underscore.js, JasperReports, jQuery
Education
  • Master's degree in Electrotechnic Engineering and Computer Science
    University of Split - Split, Croatia
    2003 - 2009
Hire the top 3% of freelance developers
I really like this profile
Share it with others