Nurguly Ashyrov, Developer in Waterloo, ON, Canada
Nurguly is available for hire
Hire Nurguly

Nurguly Ashyrov

Verified Expert  in Engineering

Software Developer

Waterloo, ON, Canada

Toptal member since December 25, 2016

Bio

Nurguly is a full-stack JavaScript engineer with experience in a variety of web applications, from document control portals to React Native applications. His preference for learning design patterns and libraries instead of frameworks allows him to quickly adapt to new projects and immediately bring value to the client at the earliest stages.

Portfolio

Yara
Node.js, NestJS, React, Styled-components, TypeScript, Cypress, Mapbox, Turf.js...
Airmeet
React, Redux, Firebase, WebRTC, JavaScript
UX Integrated
Google Maps, Redux-Saga, Axios, Redux, React Native, React

Experience

Availability

Part-time

Preferred Environment

Git, ITerm, Visual Studio Code (VS Code), MacOS

The most amazing...

...thing I've built was a module for ProcessWire CMF that allows you to expose GraphQL API of all your existing content without writing a single line of code.

Work Experience

Full-stack Engineer

2020 - 2021
Yara
  • Implemented a VRA Brush Mode. Added an ability for the farmer to adjust and fine-tune their variable rate applications of fertilizers on the map to optimize the precision of how the fertilizer is applied to the field.
  • Fixed bugs, wrote e2e tests, and refactored code to maintain the quality of the code.
  • Implemented a bulk field upload feature that allows farmers to upload all of their field data with supported files instead of manually drawing the boundaries on the map for each field.
  • Implemented bulk "crop type" change feature that allows farmers to switch the crop type of their fields when the season changes and fields need a different analysis and treatment.
Technologies: Node.js, NestJS, React, Styled-components, TypeScript, Cypress, Mapbox, Turf.js, GraphQL, Jest

Front-end Developer

2020 - 2020
Airmeet
  • Added functionalities into Airmeet's built-in messaging system such as hyperlink support, message reply, chat notifications.
  • Built the direct messaging ability with other conference participants. That supports sending chat requests, accepting/denying chat requests, and turning on/off notifications from individual participants.
  • Built the "Speed Networking" feature that allows participants of the online conference to randomly match each other and start a video calls for fast networking and engagement within participants.
Technologies: React, Redux, Firebase, WebRTC, JavaScript

React Native Developer

2020 - 2020
UX Integrated
  • Built iOS and Android apps in React Native for truck drivers.
  • Implemented background geolocation tracking of the device into iOS and Android app to track truck drivers' location when they are on an assignment even if the app is killed (aka swiped out).
  • Implemented routine background task scheduler to turn on/off background geolocation tracking based on whether the driver has an assignment.
  • Developed universal link support for iOS, Android, and web so the single link opens the correct screen no matter what platform it is.
  • Integrated OneSignal push notifications with support for universal links to be able to send the user to a specific screen of the app.
Technologies: Google Maps, Redux-Saga, Axios, Redux, React Native, React

Head of Mobile

2018 - 2018
Sugi Group AB
  • Rebuilt the mobile app from ground up for iOS and Android in React Native.
  • Implemented build pipelines for Android and iOS with Fastlane.
  • Built an over‒the‒air updates pipeline with Microsoft CodePush.
  • Integrated the mobile app with Bugsnag and Google Analytics for proactive bug and funnel reports.
  • Built a recycling stations map with marker clustering.
  • Developed a barcode scanner with scan, prescan, and validate modes that track a user's device location to decide which mode it is in.
  • Implemented a dynamic mobile app localization with Google Spreadsheets.
  • Published and maintained a mobile app in the Google Play and App Store.
  • Implemented end‒to‒end tests for mobile app using Detox.
  • Interviewed IT candidates for engineering positions.
Technologies: CodePush, Jest, Enzyme, Redux, Google Maps, Firebase, React Navigation, React Native

Node.js and React Engineer

2018 - 2018
Bob's Repair
  • Developed a prototype web app where customers can create and receive bids for a multistep job.
  • Integrated the prototype web app with Ethereum blockchain so every bidding step is registered in the public ledger.
  • Implemented simple notifications system for the web app so users can see when the requested blockchain actions are finished.
Technologies: Blockchain, Redux, React, JavaScript

Front-end Developer

2017 - 2017
Axon Holdings, LLC
  • Developed web components for Msgsafe.io including the billing, dashboard, DNS management, chat, and onboarding sections.
  • Built React Native components for Msgsafe.io; included implementing the chat, email file attachments, tone manager, and WebRTC audio/video screens.
  • Upgraded the dependencies of the native app that included more than 30 packages with JavaScript, iOS, and Android-specific code.
  • Refactored WebRTC STUN messaging coordination to track every single step of the audio/video call connection in the app state and to handle all possible failures.
  • Implemented a native-to-web authentication flow that allows the users to seamlessly, within the native app, access features available on the website but not yet in the native apps.
Technologies: React Navigation, React Native, Redux-Saga, Redux, React, JavaScript

Web Developer

2012 - 2016
YakynLabs
  • Developed the website, Unfpa.org.tm: a traditional website with news, gallery, publications, and linked article pages. Used jQuery, and Bootstrap/LESS for the front end and MODX for the back end.
  • Rebuilt the site, Unfpa.org.tm with jQuery, SUSY/Sass for the front-end and ProcessWire for the back end. Among other things, I notably developed a responsive, nested, dropdown menu—it stack-folds for small resolution screens and lines up horizontally for wide screens. I also built a responsive Pinterest-like gallery.
  • Created the website Yashlyk.info: an information hub on puberty for kids with engaging Q&A tests. Used jQuery, SUSY/Sass, and ProcessWire.
  • Developed the website, Drdavtyan.ru; built a paginated article view that allows the presentation of long articles without stretching the webpage height.
  • Built a jewelry web app that allows a user to compose a bracelet or necklace by dragging and dropping beads and pendants. Used AngularJS for the front-end.
  • Rebuilt the jewelry web app with Backbone.js and the Famous Engine (a JavaScript animation engine that utilizes GPU for smooth 60 FPS animations).
  • Developed a light-but-robust animation engine in Backbone.js to replace the Famous Engine for the jewelry web app. Which resulted in a complex jewelry composer that allows you to add/remove beads or pendants, zoom in/out for fine-tuning, gives a list of beads to choose from, and animates the random generation of a bracelet or necklace. A demo can be found in my portfolio section.
  • Created a document-management and publication website with thousands of articles in two languages with multiple permission levels for the parliament of Turkmenistan.
  • Constructed a widget module for a parliament website that allows the website manager to set/change the layout of the website with responsive design in mind. A demo can be found in my portfolio section.
  • Developed a language manager module for a parliament website that keeps track of translation links between pages that utilizes ProcessWire's SQL query builder. A demo can be found in my portfolio section.
  • Built websites for the Ministry of Nature Protection and convention on biodiversity of Turkmenistan. Links can be found in my portfolio section.
  • Constructed a portfolio website for the great artist Vitaly Didenko. A link and more information can be found in my portfolio section.
  • Managed the server environments for websites that I built with Nginx, PHP-FPM, and MySQL on CentOS.
  • Composed a JavaScript events library that was inspired by ProcessWire's hook system and Backbone events. A link and more information can be found in my portfolio section.
  • Wrote JavaScript modules that parse Sass strings and returns an array of paths that are resolved by the import directories in that string. More information can be found at the link in my portfolio section.
Technologies: React, Backbone.js, Node.js, JavaScript, MySQL, ProcessWire CMS, PHP

PantaPå

Sweden's first recycling app. The app allows users to scan a can, bottle or any other recyclable product before they put it into a recycling station and get cash rewards and discounts.

US Skyscrapers App

A single-page application (SPA) that lists all of the United States skyscrapers. This was built with React, Redux, React-Router, SemanticUI, Immutable, Redux-Observable/Rx JS, and Google-Map-React.

See the source code at https://github.com/dadish/skyscrapers-app.

Expense App

https://github.com/dadish/expenses-app
A single-page application (SPA) that tracks the user's expenses. The front end was built with React, Redux, React Router, Redux-saga, Reselect, Redux Form and Material UI for the front end. The back end was built on Node.js with Hapi.js, Joi, Co, Knex.js, MySQL, and more.

Check out the live app at https://expenses.nurgulyashyrov.com.

ProcessGraphQL

https://github.com/dadish/processgraphql
A module for ProcessWire CMF that enables users to easily expose a GraphQL API of their ProcessWire apps. No code needs to be written to set up the GraphQL API with this module.

Vitaly Didenko

The portfolio website for the artist Vitaly Didenko.

HandyWandy Jewelry Web App

This is a single-page application that allows you to compose your own bracelet or necklace by drag and dropping beads and pendants from available lists. Or you can choose one jewelry type and press the СОБРАТЬ button and it will randomly generate a combination for you.

The website was rebuilt several times to achieve the best interactive experience for the end-user. The design was provided by the client, but the implementation was coded solely by the developer.

The version as is now is built on Backbone.js. It uses CSS3 transforms to utilize the GPU to provide solid 60 FPS animations. The code was fine-tuned with performance in mind. The user can spend all day creating, composing, zooming in/out, deleting, adding, and changing the different jewelry—and there will be no memory leaks.

Please go to http://hw.nurgulyashyrov.com/demo.html to see a demonstration video.

UNFPA Turkmenistan

The official website for UNFPA Turkmenistan.

The design of the website was provided as two JPEG images of the main and secondary page for 960 pixel-wide resolution. However the requirement was to build a website responsive to any width of the screen. All of the designs for other resolutions was built by the developer.

The website was built twice. Thу first version was built with Bootstrap/LESS, jQuery for the front-end and MODX for the back-end. The result was far from satisfying, the true responsive behavior could not be achieved and it was decided to rebuild it again.

The second version of the website was built on SUSY/Sass, jQuery for the front-end and ProcessWire for the back-end. The result was something that the client was satisfied with and the product was deployed into production.

Y-Peer Turkmenistan

This is an information hub about puberty for kids. The website features Q&A tests, info lists, articles, events, and more.

The website features a responsive design, a schema.org markup for the SEO, a mobile WebView wrapper and multilingual content.

The website was successfully built in the first iteration.

Dr. Davtyan Health & Beauty

This is a website for Dr. Davtyan, a beautician and cosmetologist. It's a traditional website with articles, and a service price list. It features paginated articles and a carousel.

ErasmusPlus Turkmenistan

The official website for ErasmusPlus in Turkmenistan. It has traditional web content with articles, a carousel, and a responsive design.

Convention on Biological Diversity in Turkmenistan

This is the website on biodiversity in Turkmenistan for the Ministry of Nature Protection of Turkmenistan.

Ministry of Nature Protection of Turkmenistan

The website for Ministry of Nature Protection of Turkmenistan. Part of a joint project that also sponsors the website for the biodiversity of Turkmenistan.

Hookz | JavaScript Events Library

https://github.com/dadish/hookz
Inspired by ProcessWire hooks system and Backbone.js events.

Babel | ProcessWire Language Module

https://github.com/dadish/Babel
Babel is a ProcessWire module that provides functionality for managing section-based multi-language sites. It is inspired by the Babel Plugin for MODX.

ProcessQuickToggle

https://github.com/dadish/ProcessQuickToggle
A ProcessWire module that allows you to quickly toggle your checkboxes with extra action buttons via Ajax.
2008 - 2012

Bachelor's Degree in Mass Communications

American University in Bulgaria - Blagoevgrad, Bulgaria

Libraries/APIs

Node.js, jQuery, React Redux, Ramda, React, Redux-Saga, Flexbox, RxJS, React Router, Lodash, Backbone.js, Underscore.js, Susy, React Navigation, Redux Form, Immutable.js, WebRTC, Google Maps, Turf.js

Tools

Git, GitHub, Knex.js, Flow, Trello, ITerm, Xcode, Bugsnag

Languages

JavaScript, GraphQL, Sass, CSS, HTML, PHP, ES7, ECMAScript (ES6), Bash, TypeScript

Frameworks

Redux, React Native, Jest, Express.js, Material UI, Hapi.js, NestJS, Cypress

Platforms

MacOS, Android, iOS, Docker, Firebase, Linux, Visual Studio Code (VS Code), Blockchain, Mapbox

Storage

MySQL

Paradigms

BEM

Other

Redux-observable, ESLint, ProcessWire CMS, SSH, Bcrypt, Semantic UI, Enzyme, Axios, Styled-components, CodePush

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring