Nikoloz Otiashvilinikaoto@gmail.com | nikaoto.com | github.com/Nikaoto
- Broad knowledge of programming for a wide range of platforms.
- Possess strong skills in developing robust and time-critical software.
- Experience in mentorship and managing small groups.
- Ability to quickly learn and apply new technologies.
- Highly proficient at writing technical documents.
- Adept at quick prototyping and toolmaking.
- Billingual fluency in Georgian and English, B2 in German, and B1 in Russian
- Extensive experience in game design and development.
- C, hardware programming, Unix sockets
- Bash, POSIX shell, standard Unix tools (make, sed, grep...)
- HTML/CSS/JS, Canvas, DOM, React, Gatsby, NetlifyCMS
- Nodejs, Expressjs, Jest, jin
- Lua5.1, LuaJIT, Love2D (SDL), GUI programming and automated testing
- Python, Selenium
- Go, net/http
- MySQL, MariaDB, MongoDB
- Systemd, cron, Linux kernel configuration
- Multidrop bus protocol (MDB/ICP), REST
- Free and open source software enthusiast and contributor
DataArt, July 2021 - Present
Senior Nodejs Developer
Redberry, April 2021 - June 2021
Full-stack Developer on TweakWorked on an online learning platform using Laravel and Blade.
Full-stack Developer on DefiCityDeveloped a web service that lets users open packs of collectible cities, mint them on the blockchain, make them available as NFTs, and to stake cryprocurrencty on them.
I undertook the following tasks:
- Helped the clients and PMs estimate the scope, time, and resources required for the project
- Wrote front-end code that interacts with cryptocurrency wallet providers and the blockchain network (to trigger Mint/Transaction events which later get propagated to the server)
- Designed and developed a server using Node with Web3js that communicates with the Binance Smart Chain network, and listens for blockchain events using WebSockets
- Built custom database migration & seeding manager
- Wrote extensive documentation for the developers and the clients
- Worked closely with the clients to define and expand the specification of the service
Alternative Georgia, November 2018 - April 2021
Lead Software Developer on Sigma Vending Machine ProjectDesigned, architected and implemented server and client software used by custom vending machines with touch screens. Used by Alternative Georgia and PSP to gather data and sell medical products.
Client software I wrote includes:
- GUI in Lua and hardware facing code in C, connected with LuaJIT FFI
- automated UI testing module for recording and replaying events
- MDB/ICP library in C for controlling the machine motors, coin mechanism and paper cash mechanism
- RFID polling/reading library in C for different RFID readers
- Watchdog in Bash for switching between backup USB internet modems on connection loss
Used a Ubuntu VPS as a server with Nginx reverse proxy. The software I wrote includes:
- Server in Nodejs and Express which handles transactions and tracks cash storages and product stocks
- Frontend in vanilla JS for AltGeorgia and PSP admins for viewing and exporting data
- Unit and integration tests using JestJS
- Custom DI & IOC library with mocking support
- Fork of morgan-body for better formatted logs
- Small Go server for user survey linked from QR code
I hired and mentored a junior web developer who worked on a part of the frontend code for user feedback and Excel exporting.
I also wrote in-house tools:
- Vending machine power and application crash monitor
- RFID card tester, which was used to read all 5000 card IDs into a database, saving our QA weeks of work
- CLI program for remote-controlling the vending machines (dispense, eject...)
- A4 paper cut-out QR code generator in Lua which encoded 1800 uids
Wrote architectural overview and extensive documentation on the code and each tool for both users and developers. Maintained the machines and the server, including fixing hardware issues on call.
Software Developer on Matanga Research ProjectWrote web scraper for online drug store "Matanga" using Python with Tor and Selenium.
Wrote a server in Go that exports the gathered raw product data and transforms it into a chronological list of transactions using an algorithm I designed which compares hourly stocks to estimate sale times and prices. Made the frontend in vanilla JS.
Software Developer for altgeorgia.geWrote https://altgeorgia.ge using React and Gatsby. Implemented the CMS in NetlifyCMS. Also wrote a small analytics server for it in Nodejs. The website is open source.
Georgian-American School in Batumi, September 2019
Buckswood School in Tskhneti, August 2018
Guest LecturerDelivered a one-time lecture for highschoolers at Buckswood school about artificial intelligence, evolutionary algorithms, and machine learning. Wrote and showcased a small tech demo of an evolutionary algorithm in Lua which learns to navigate a maze. It is open source.
Slami, January 2018 - April 2018
Independent Contractor / Software DeveloperAfter winning the Media Hackathon in Tbilisi in 2017 with a prototype of Slami, my teammate (marketer) and I (programmer) were hired to finalize the product and make it open source.
Xplore, October 2016 - January 2018
Co-founder, CTO, Software DeveloperFounded Xplore and developed an android application using Java, Kotlin, and Firebase for hikers that allowed them to organize/find/join hiking trips. Also built a website with React, a static blog with Jekyll, and a proof-of-concept version of the app in React Native. All source code is available.
The Android application won 2nd place in the mobile application category at the international GoldenByte Challenge held in Ukraine.