Curriculum Vitae: Tomo Krajina
I’m a Java, Golang and Python developer with 13+ years of experience. I worked on web and back-end applications, telecommunications, enterprise banking systems, video processing backends and mobile apps. I am especially interested in open source and all things GPS related.
My professional carreer is mostly about backend Java/Golang and (more recently) Android projects.
I’m also a regular open source contributor (https://github.com/tkrajina), where I use Python, Golang and Java.
- Java 13 years
- Go(lang) 4 years
- Python 12 years
- Google Maps, Leaflet 8 years
- Google Cloud 7 years
- Test-driven Development (TDD) 8 years
- Agile Software Development 8 years
- Android 2 years
Owner, SCIO, 2015 - PRESENT
- Worked and maintained various open source projects. Mostly Python, Golang, and Java (Android).
- Mantained several websites (Python, Golang, and PHP) and their internal microservices (Golang and Java).
- Developed a language learning Android application to help users learn new words by going through 10,000 sentences.
- Created an Android application for numeric sequences and time tracking.
- Developed a news aggregation Android application complete with back-end (AWS lambda and DynamoDB).
- Created a panoramic photography sharing website (Panoye)
Technologies: Golang, Java, Python, Google Cloud, Android
Back-end Software Engineer, Globio, 2017
- Implemented a back-end ane website
- Implemented several payment application services
Lead Developer, Trackprofiler, 2009 - PRESENT
- Developed a GPS track editor web application.
- Developed a library for GPS tracking manipulation.
- Developed several heuristic algorithms to detect and fix common GPS track errors.
- Implemented PayPal payment system.
- Implemented several cloud APIs (Amazon S3, GoogleAppEngine, Dropbox API).
- Implemented Google Maps API and Leaflet.js maps API.
- Developed a parser for the Shuttle Radar Mission Data.
Back-end Software Architect, Storie, 2015 - 2016
- Implemented a back-end REST API hosted on Google Cloud.
- Implemented video processing workflow.
- Implemented a variant HLS video streaming solution.
- Integration of iOS and Android applications with backend services.
Technologies: Golang, Java, Google Cloud Platform, iOS, Android
Senior Java Developer, Infobip, 2010 - 2015
- Developed enterprise SMS messaging systems.
- Implemented various applications using the SMPP protocol.
- Implemented the GSMA OneApi REST API.
- Developed open-source client libraries (in Python, PHP, Ruby, and Java) for the OneApi REST API.
- Introduced the Git versioning system and worked on a specific Git workflow to be adopted.
- Introduced Groovy scripting for several applications.
Technologies: Java, Spring, Python, Groovy, Tomcat, Web services, SMPP
Senior Java Developer, Istarska kreditna banka/Istrian Credit Bank, 2004 - 2010
- Implemented an internet banking back-end system.
- Worked on several web applications for internal use.
- Worked on an application for money laundering prevention.
- Implemented a reporting system.
Technologies: Java, Spring, Tomcat, WebSphere, Web Services, AS400
Lead Developer, Aqua d.o.o., 2005 - 2009
- Implemented a bridge between an application for inventory management and the company’s CMS (a Wordpress plugin and a Java service).
- Implemented a CMS and web shop.
Technologies: PHP, Java
Math and Informatics Teacher, Elementary School Porec, 2000 - 2004
- Taught kids programming (Python and Logo) and mathematics.
- Mentored regional and state level competitions.
- Lobbied for the use of open-source technologies in the educational system.
Technologies: Python, Chalk and board
Selected projects and writings:
10,000 Sentences (Android app)
10,000 sentences an language learning Android app to help users learn new words in a foreign language. The idea is to go through 10,000 sentences in a target language. By exposing users to unknown words in a real context (a sentence) they learn new words.
Go-reflector (Open source library)
Golang reflection simplified.
Ftmpl (Open source library)
Ftmpl is a fast, compiled, and typesafe templating language for Golang.
Typescriptify Golang Structs
A helper tool and library to seamlessly use Golang models in Typescript.
A statical analysis tool to discover long and complex functions in Golang. The user decides which measures of “complexity” to use, for example: “numer of variables in scope”, “number of assignments”, “nested blocks”, “cyclomatic complexity”, “ceomplexity per line of code”, etc.
Trackprofiler (Web app, microservice)
Trackprofiler is an online GPS track editor intended for hikers, mountain bikers, and outdoor lovers. Users can upload their tracks, fix common GPS errors, split or join tracks, add elevation data, etc. Tracks can be uploaded via email or from Dropbox.
Gpxpy (Open source library)
Gpxpy is a Python library for GPS/GPX tracks. It implements all the most common algorithms used to manipulate and analyze GPS track data. Widely used in GIS-related research and GPS-related apps.
Git Introduction: Uvod u git (Open source book)
An book about Git in Croatian.
Adventures in GPS Programming and Development: a Geospacial Tutorial
An article explaining some common problems when analysing GPS data.
Geo Elevations: SRTM.py (Open source library)
A Python library for the Shuttle Radar Mission Data (SRTM) and the Earth Gravitational Model (EGM2008).
Leaflet Editable Polylines
- Bachelor’s of Science degree in Math, PMF - Zagreb, 1993-1999
- Languages: Java, Python, Go, PHP, Ruby
- Libraries/APIs: Google Maps, jQuery, LeafletJS, JasperReports
- Tools: Vim, IntelliJ, Android Studio, Gimp, Shell, LaTeX
- Paradigms: Agile Software Development, Test-driven Development (TDD)
- Platforms Android, Google cloud, Google Firebase, Google App Engine, Linux
- Frameworks: Spring, Spring MVC, Apache Struts 2, Gorilla
- Storage: Amazon S3, Google datastore, DyanmoDB, MySQL, MS SQL, IBM - DB2, Memcached, Redis, Google cloud storage
- Mountaineering, hiking and nordic walking
- Mountain- and road- biking
- Reading (history, philosophy, languages, …)
- Go/Weiqi (the Chinese board game)
- Open source https://github.com/tkrajina
- Croatian/Serbian (native)
- English (professional working proficiency)
- Italian (professional working proficiency)
- Slovenian (basic)
- email: firstname.lastname@example.org
- skype: tomo.krajina.abc