Programming Skills

JavaScript/TypeScript

HTML5 & CSS3

C#

Java

C, Scala, Python

Web Development

React/React Native

Full-stack JavaScript

Big Data and Hadoop Ecosystem

Languages

Macedonian

English

Japanese


Japanese Language Proficiency Test (JLPT) N2

Japan Foundation

Aug. 2017


TOEIC (985/990)

ETS

Nov. 2014 - Nov. 2016


TOEFL

ETS

Dec. 2012 - Dec. 2014

Certificates and Awards

Master's Studies Scholarship

Japanese Government (MEXT)

Apr. 2014 - Apr. 2017


Scholarship for Outstanding Students

Macedonian Government

Sep. 2011 - Jun. 2013


Programming in C# Specialist

Microsoft

August 2013


Microsoft Certified Professional

Microsoft

June 2013

Education

Master's in Software Engineering

Nara Institute of Science and Technology (NAIST), Japan


Research Student

Nara Institute of Science and Technology (NAIST), Japan


Intensive Japanese Language Course

Osaka University, Japan


Bachelor's in Networks and Security

UIST "St. Paul the Apostle", Macedonia

GPA 9.93/10. Graduated with honors.

Professional Experience

Software Engineer

Balena.io, Remote

TypeScript

NodeJS

React

Working remotely as a full-stack software engineer, leaning towards the Balena Cloud web application, as well as Rendition, our UI components library. Recently I have been working on bringing continuous integration natively to Balena, making the development experience for users a lot smoother. The main stack we use consists of TypeScript, NodeJS, and React.


Software Engineer

Rakuten, Japan

JavaScript

React

Java

Hadoop

Hive

Worked in a distributed team as a full-stack developer in the business intelligence support section, developing an internal business intelligence web application aimed at the e-commerce business consultants. The technical tasks included efficiently aggregating the vast amount of data in Rakuten using Hive and Hadoop, creating API's to serve the data to our and other projects, and building the front-end and creating effective visualizations using React. I introduced modern development tools to the project (such as ESlint and Prettier), rearchitected the entire web application and Redux store, and brought unit and E2E test coverage from 0% to 30%.


Software Engineer (full-time intern)

Rakuten, Japan

JavaScript

Scala

Worked on the company's global business intelligence service. Built an API service using Scala, Finagle and Thrift. The work included tasks such as writing a cache from scratch, managing concurrency, and data source retrieval from multiple sources, among other tasks. Moreover, created a chart on front-end in JavaScript with data switching, series selection, automatic reload, and client-side localization features. It was developed in a modular manner, as a client to the previously mentioned service.


Software Developer (part-time)

Particles, Macedonia

C#

JavaScript

HTML

CSS

Worked mainly with C#, Microsoft Technologies (.NET Framework, ASP.NET MVC, WCF, Windows Mobile 6), Database Systems (MySQL, SQLite), JavaScript, HTML, and CSS, using Agile development methodology. Mainly worked on a smart water metering information system. Participated in the whole development cycle, from planning, to documentation and maintenance. Solely planned, designed, and implemented the on-field handheld device software (Windows Mobile 6) as part of the system, and partially implemented and maintained the central software (web solution). Furthermore, worked on the security of the metering devices, and supervised 2 interns during the summer of 2012.

Projects

Aida - Unified Data Modeling

Personal project

JavaScript

NodeJS

Aida is a data and endpoint modeling tool. You can document your data models from different parts of the system in one place and share commonalities between them, representing a single source of truth. It allows you to unify how your data models and endpoints are defined, with all the necessary metadata being co-located. The project was started to speed up development on a personal project and it was recently open-sourced. More details here.


EyeNav

Personal project

JavaScript

NodeJS

C#

Java

EyeNav is a Brackets.io plugin that allows you to do simple navigation in the editor using an eye-tracking device, written in JavaScript. It allows you to scroll, click, select text, and more using your eyes and keyboard shortcuts. More details here.


HomeAutomate

Personal project

JavaScript

NodeJS

React Native

Python

A project with a goal to automate my small apartment. It controls the lights, airconditioning, and music player. It is controlled by a motion sensor, hardware buttons, and a mobile application developed with JavaScript and React Native. More details here.


Lego Mindstorm Mars Rover

NAIST, Japan; Japan Airspace Exploration Agency (JAXA), Japan

JavaScript

NodeJS

C

Project done in cooperation with JAXA (Japan Aerospace Exploration Agency) with a goal of creating a mars rover using Lego Mindstorm, while going through all stages of software engineering. The system is compromised of 2 parts: a ground station software, meant to communicate with the rover (written in JavaScript); the mars rover software, meant to autonomously run a 2-stage course terrain (written in C). I was the project leader, managing the tasks among the four team members and collecting requirements from JAXA. I implemented the ground station and took part in the writing of the communication part of the rover software. Project was done in Japanese. More details here.

Publications

Investigating Code Examples: Coverage Metrics and Trait Patterns

NAIST (Master's Thesis)

This paper aims at improving our understanding of code examples. Consisting of two studies, the first study is concerned with investigating the current situation of coding examples, common problems, and potential metrics that can be used to evaluate examples. The second study is concerned with collecting code examples data to be used for further analysis, definition of traits and features for code examples, creation of code example clusters, and analysis of the patterns that emerge from existing examples. Results show that current example vary in both quantity and quality. Moreover, three patterns with two subpatterns per pattern emerged, which can be used to categorize examples and further used to develop automated example evaluation tools.


EyeNav: Gaze-Based Code Navigation

Nordic Conference on Human-Computer Interaction (NordiCHI) 2016

Navigating source code is at the core of software development, consuming a significant amount of time and effort. Navigation is typically done using the mouse, which in many cases may not be efficient and usable, as it causes context switching and interruptions. EyeNav brings eye tracking to code editors. It allows for a more natural source code navigation, controlled by the developer's gaze and keyboard shortcuts. It is a production-ready Brackets.io plugin that allows anyone with an eye tracker to start using it immediately. Demo video and source code.


Towards Building API Usage Example Metrics

Conference on Software Analysis, Evolution, and Reengineering (SANER) 2016

It is not unreasonable to say that examples are one of the most commonly used knowledge sources when learning the usage and best practices of a new API. In order to resolve the problem of lacking examples information and feedback in their creation, our goal is to develop metrics for empirical measurement of examples and to offer support during the APIs example creation steps. This paper represents an exploratory study of the current situation of examples, while introducing potential metrics for measuring examples.


Real-time monitoring of neural state in assessing and improving software developers' productivity

Cooperative and Human Aspects of Software Engineering (CHASE) 2015

Productivity has always been considered a crucial factor for the success of any business, and the same applies to software development. As a result of software development being almost entirely a cognitive task, problems in cognition highly correlate to problems in productivity. In order to detect cognitive failures, fatigue, and lack of attention, we propose a conceptual model of a system for continuous monitoring of developers' neural state using an off-the-shelf device.

rss facebook twitter github youtube mail spotify instagram linkedin google pinterest medium vimeo