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

Nurguly Ashyrov

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

Automattic
TypeScript, React, Electron, WordPress, PHP, MySQL, Shopping Carts, Web, HTML...
Yara
Node.js, NestJS, React, Styled-components, TypeScript, Cypress, Mapbox, Turf.js...
Airmeet
React, Redux, Firebase, WebRTC, JavaScript, HTML, CSS

Experience

  • PHP - 13 years
  • JavaScript - 13 years
  • MySQL - 10 years
  • GraphQL - 8 years
  • React - 8 years
  • Node.js - 8 years
  • Redux - 8 years
  • React Native - 6 years

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

Senior Full-stack Developer

2021 - 2024
Automattic
  • Built a purchase license verification system for WordPress Sensei LMS plugin.
  • Upgraded Sensei LMS internals to support WordPress' Block Editor for users' ease of use.
  • Added support for a "single flow" setup for WordPress, Sensei LMS, and WooCommerce on wordpress.com.
  • Implemented user impressions tracking for Tumblr posts using Intersection Observer API.
  • Led the development of Tumblr's "Reblog Redesign" project.
  • Built Tumblr chat integration in the Texts app, including support for authentication, GIFs and, message emoji reactions.
  • Handled the maintenance of Sensei LMS and WordPress Job Manager plugins. As well as legacy and new Tumblr web clients.
Technologies: TypeScript, React, Electron, WordPress, PHP, MySQL, Shopping Carts, Web, HTML, CSS, Jest, React Testing Library

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 a 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, React Testing Library

Front-end Developer

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

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 apps to track truck drivers' location when they're on an assignment, even if the app is killed (aka swiped out).
  • Implemented a routine background task scheduler to turn background geolocation tracking on and off 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 send the user to a specific screen of the app.
Technologies: Google Maps, Redux-Saga, Axios, Redux, React Native, React, Jest

Head of Mobile

2018 - 2018
Sugi Group AB
  • Rebuilt the mobile app from the ground up for iOS and Android in React Native.
  • Implemented build pipelines for Android and iOS with Fastlane.
  • Built an over-the-air update 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's 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 a 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 the Ethereum blockchain so every bidding step is registered in the public ledger.
  • Implemented a simple notification system for the web app so users can see when the requested blockchain actions are finished.
Technologies: Blockchain, Redux, React, JavaScript, HTML, CSS

Front-end Developer

2017 - 2017
Axon Holdings, LLC
  • Developed web components for Msgsafe.io including the billing, dashboard, DNS management, chat, and onboarding sections.
  • Developed React Native components for MsgSafe.io, implementing features such as chat, email attachments, tone manager, and WebRTC-based audio and 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, Sass

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.
  • Created the website Yashlyk.info, an information hub on puberty for kids with engaging Q&A tests. Used jQuery, SUSY/Sass, and ProcessWire.
  • Built a jewelry web app that allows a user to create a bracelet or necklace by dragging and dropping beads and pendants. Used AngularJS for the front end.
  • Developed a light-but-robust animation engine in Backbone.js for a jewelry web app. It allows users to add and remove beads or pendants, zoom in and out, gives a list of beads to choose from, and animates the random generation of a bracelet or necklace.
  • Created a document-management and publication website with thousands of articles in two languages and multiple permission levels for the parliament of Turkmenistan.
  • Constructed a widget module for a parliament website that allows the website manager to set or 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.
Technologies: Backbone.js, Node.js, JavaScript, MySQL, ProcessWire CMS, PHP, HTML, CSS, jQuery

Experience

Web Conference and Event Hosting Platform

https://www.airmeet.com/
Airmeet is an event hosting platform that allows people to organize remote conferences or other similar events. I was mostly involved in working on the React front end. I made improvements to the chatting system and added support for hyperlinks in the chats.

I also led and implemented most of the "Speed Networking" project. During the "Speed Networking" time, the event participants are randomly matched with each other for a 3-minute video chat, so everyone can have a chance to meet everyone else. I led the development of the front-end UI and developed the business logic that would randomly match people and ensure everyone gets matched with everyone else.

Precision Farming Platform

https://us.at.farm/
A precision farm platform. It allows farmers to manage their farm field data and monitor the crop health and progress. I was primarily involved in implementing and maintaining the "Field Management" part of the application, which allowed farmers to add and remove farm fields on a map. I implemented an auto farm field detection feature where farmers could just click in the middle of their farm on a map, and we would detect its boundaries and pre-draw the map polygon, so the farmer doesn't have to draw it manually. And of course, the farmer could adjust the auto border detection for precision. I also developed the variable brush mode, which allows farmers to set the density of the fertilizer they wish to apply to different parts of their field. I also developed a file exporter that allows farmers to export the fertilizer application map onto their tractors, so it automatically applies the fertilizer according to what the farmer drew on the map.

PantaPå

https://getbower.com/
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. It uses geolocation to determine if users are indeed near a recycling station and are therefore eligible for rewards.

US Skyscrapers App

https://github.com/dadish/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/RxJS, 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 allows users to easily expose a GraphQL API of their ProcessWire content. It supports granular control of what parts of your content are accessible to what category of users. Requires no code to be written to set up the GraphQL API.

Vitaly Didenko

https://www.vitalydidenko.com/
The portfolio website for the artist Vitaly Didenko. It features a vertical grid view that auto-positions the gallery items depending on the screen size and orientation (visit the website and resize the browser window to see it in action).

HandyWandy Jewelry Web App

https://hw.nurgulyashyrov.com
This is a single-page application that allows you to compose your own bracelet or necklace by dragging 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 it 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 pages for a 960 pixel-wide resolution. However, the requirement was to build a website responsive to any screen width. All of the designs for other resolutions were built by the developer.

The website was built twice. The 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. It features a responsive design, a schema.org markup for SEO, a mobile WebView wrapper, and multilingual content. It 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.

Education

2008 - 2012

Bachelor's Degree in Mass Communications

American University in Bulgaria - Blagoevgrad, Bulgaria

Skills

Libraries/APIs

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

Tools

Git, GitHub, Flow, ITerm, Xcode, Bugsnag, Babel, CircleCI

Languages

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

Frameworks

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

Platforms

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

Storage

MySQL, PostgreSQL

Paradigms

BEM

Other

Redux-observable, ESLint, ProcessWire CMS, Web Development, Mobile App Development, SSH, Bcrypt, Enzyme, Axios, Styled-components, CodePush, Research, Analysis, Information Theory, Communication Theory, Journalism, Shopping Carts, GitHub Actions, Open Source, Responsive UI, Schema.org, GeoJSON

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