Gurgen Hovhannisyan
Verified Expert in Engineering
Python Developer
London, United Kingdom
Toptal member since April 22, 2016
Gurgen is a senior software engineer currently specializing in development and scripting. He thrives in small teams as a team leader or alone as a developer. He has over five years of experience as a team lead and values and provides high-quality code and attention to detail. Gurgen is very motivated and has experience in various areas, including high- and low-level programming.
Portfolio
Experience
- Python - 13 years
- Regular Expressions - 10 years
- Unix Shell Scripting - 10 years
- OOP Designs - 10 years
- Object-oriented Programming (OOP) - 10 years
- Databases - 10 years
- Perforce - 5 years
- REST APIs - 4 years
Availability
Preferred Environment
Vim Text Editor, CVS, Subversion (SVN), Git, PyDev, PyCharm, Eclipse, Visual Studio Code (VS Code)
The most amazing...
...thing I've coded is a linear solver for matrix LU decomposition and linear sparse equation system, with parametric block scaling algorithms for RGB and YUV.
Work Experience
Senior Softare Engineer
Bloomberg LP
- Handled continuous integration and continuous deployment to automate deployment and quality control (including functional and capacity testing).
- Created dashboards, monitoring rules, and alerting rules to track the health of the live system.
- Improved the logging system and refactored it a step forward to the next generation.
- Updated the network services to have more and better request/response capability in the system.
- Analyzed performance metric placement and interpretation and capacity planning.
- Worked on Jinja templates to improve the templates for the end user by having shared templates supporting multiple input modes. Published and deployed as a new package for the end users to use the new feature and syntax.
Senior Python Developer
Trust & Safety Laboratory Inc.
- Developed the workflow of adding data, fields, and connections between Neptune DB entities. Wrote completed queries with the best performance to achieve customer requests on showing and dumping data in a user-friendly Google Data Studio dashboard.
- Created the workflow to dump AWS S3 CSV from input JSON to sync with AWS glue jobs, converting to a parquet table and dumping as a Quicksight dashboard from datasets based on customer-required charts and metrics rules, alerts, and analysis.
- Worked on the data scraping part and improved the parsing and performance of the existing workflow by using cache for the objects already parsed. Also improved the retention policy for common data DB, AWS S3, and datasets to have older files deleted.
- Architected the workflow to successfully recover huge months of data from parquet files and re-generate the historical lost data to use in customer-required dashboards by achieving this in a timely manner.
- Developed the layers of AWS glue jobs to parse various input sources and successfully merged them by using SQL queries inside AWS glue job. It improved the quality of the workflow so that it could be properly parsed and shown in Quicksight datasets.
- Developed the workflow of generating huge test results (fake results), which gave us a clear view of workflow metrics later to improve the procedures we plan to do for the workflow.
- Developed an automated generated workflow that was run regularly (cron) so we can have similar results as in live case scenarios. This helped us a lot to track the tools and workflow metrics and improve them in the next business plan.
- Enabled the workflow to run through all resources we have (DB, AWS S3, etc.) to filter all the results we need based on inputs and successfully delete the obsolete ones. Performance was improved to work for the huge data.
- Improved the access of the Neptune DB, which overloaded it by having better performance in the data generation workflow by using cache and inputs necessary to access in required cases only.
- Achieved the best performance by inserting new data in the existing workflow, having huge months of data by not breaking existing generation, and merging the new and old data with new required fields, columns, and schemas.
Senior Software Engineer 2
Imagination Technologies
- Managed a six-person team. Mentored staff in best practices to increase productivity and efficiency. Delivered projects on time and within forecasted budgets.
- Achieved better performance in the team by adding to the software engineering industry with professional procedures such as Agile and Scrum methods and test-driven development with regular review cycles.
- Changed the quality, readability, and usefulness of the development flow to the next generation.
- Completed a Python-based project to make the generation of IP libraries within the flow unique. The project included a high-level understanding of OOP techniques, regular expressions, parsing methodologies, and performance analysis.
- Created software testing procedures to have automatic testing of the software development process in the Jenkins automation server. Configured infrastructure and integrated tools needed to automate build, validation, and unit testing of code.
- Completed a Python-based project using a REST API to work with Confluence pages and their content. Parsed Confluence pages (XML data) and CSV files and handled user requests with Python (NumPy and Pandas).
- Fulfilled a Python-based project to parse C/C++ header files and compare the development and release codes to be sure headers are not broken during development. Wrote a simple C/C++ compiler using Python advanced-level regular expressions.
- Involved in all facets of the employee lifecycle, from recruitment and onboarding to training, learning and development, coaching, performance management, and offboarding.
- Provided strong user services by using internal communication tools to make sure customers were satisfied with their daily needs and requirements by dealing with random tools, techniques, and programming languages.
- Added new features (compiler) to do pre-processing of Verilog written code. The project overall saved enormous user time in their daily development, testing, and auto-code generation.
Engineer for Proof of Concept Delivery
InnerSpace Technology, Inc. (via Toptal)
- Created Python classes and scripts to fetch the client's locations (RSSI data) using a Python request framework, parse the received data, and then send it to a pulsar topic for a long term storage.
- Created Python classes and scripts to merge the different locations using JSON RSSI data into one common dataset with various filters and then pushed the new datasets Pulsar topic. Used generic arg and config parsers to play with different features.
- Fetched all the data for the locations tree and device client data.
- Created a Python script to fetch the location tree and device client data by using Mojo REST APIs and dump them into a JSON file.
- Used Notion to fully document the user guide, dev specs, and other technical and statistical details for the whole project.
API Automation Developer
TekPerfect (via Toptal)
- Created a Python script using a REST API to work with Confluence pages. Searched for specific patterns and changed user groups' restrictions per page.
- Documented the usage of the flow, script, and page restrictions.
- Improved the parsing of the huge pages by speeding up the parsing workflow to save users time on the requested data.
Senior Embedded Software Engineer
Energize Global Services
- Created Python/Bash scripts to test the POS terminal by handling screens, validating terminal messages, and checking output data. Added existing functionality in regression and daily processing using Python.
- Tested POS terminals using a general test framework.
- Supervised a team of six. Mentored and guided employees, ensuring all were trained in project knowledge and capable of performing assigned tasks.
- Checked that all tasks given to staff were done on time and to the required standard.
- Trained terminal and server configuration to allow run tests in the general test framework.
- Created Python scripts to test the police mode of POS terminals. Integrated testing with the daily test environment.
Embedded Software Engineer
Energize Global Services
- Worked in the clients’ offices in Belgium for knowledge exchange purposes and had training in the clients’ offshore development center.
- Created around 500 unit tests for all existing functions in GTF and covered 80% of functionality.
- Created an online attempted transaction flow by using C on payment terminals based on embedded Linux running on ARM processors.
- Created automation scripts by using Python/Bash to test POS terminals.
- Analyzed and re-wrote inefficient GTF functions, which improved the writing of the test cases, investigated the coverage of the test framework, and improved the readability of the huge framework.
- Implemented multi-user mode for POS terminals using C and created Python scripts to test new functionality.
Senior Test Automation Engineer
Instigate CJSC
- Tested a proprietary FPGA compiler by simulating failures with Aldec, NCSim, and ModelSim.
- Created testing scripts using Python (confluence API, Network API, and MySQL) to automate testing of the FPGA compiler.
- Created a script to parse, collect, and fill daily test results in a Confluence page (mainly Python).
- Trained in the client's USA offices on design flow analysis and manufacturing testing.
- Supervised a team of four members by monitoring the performance of junior staff and by maintaining a clean, safe, and friendly working environment.
Hardware Design Engineer
Instigate CJSC
- Developed an AES algorithm by using Verilog and handled verification of static timing analysis reports in FPGA through design flow (synthesis, place, and route).
- Made a general test framework to ensure output data integrity with regression/daily testing.
- Tested the client's tool by simulating RTL designs and technology mapped net-lists.
- Created scripts to test the client's tool by doing CCW and F-system in FPGA through a design flow.
- Created scripts to compile and test the output data.
Software Engineer
Instigate CJSC
- Developed Bing Maps and GPS functionality for a WeTab application.
- Developed a regular expression matching application using CUDA and parallel programming and got 10x speedup compared with a single execution of code.
- Developed an algorithm for solving linear matrix LU decomposition using C++/Octave and supplemented new functionality in the client's application.
- Developed an image (RGB and YUV) scaling application using C++.
- Trained in digital signal processing in a 5-month course, learning all the details of the skills required to fulfill the coming business plan and project requirements.
Experience
Bing Map into WeTab
Messenger
Calculator
Thesis (Number of Hamilton Cycles in Square Grids)
Education
Master's Degree in Computer Science and Applied Mathematics
Yerevan State University - Armenia
Bachelor's Degree in Computer Science and Applied Mathematics
Yerevan State University - Armenia
Skills
Libraries/APIs
NumPy, Pandas, API Development, Python API, REST APIs, Sockets, Python-pptx, Matplotlib, Jira REST API, CPython, XML ElementTree, Google Cloud API, Refinitive API
Tools
Vim Text Editor, Shell, Amazon Elastic Container Service (ECS), Cron, Microsoft Excel, Atlassian, Pytest, Jira, Rally, Perforce, Eclipse IDE, PyDev, CVS, PyCharm, Git, Confluence, GitHub, Notion, Amazon Elastic Container Registry (ECR), ModelSim, Redmine, Jenkins, Makefile, Subversion (SVN), Apache, Bazel, Amazon QuickSight, AWS Glue, Amazon Athena, Cluster, Terraform
Languages
Regex, C++, SQL, Python 3, C, Bash Script, Python, GraphQL, HTML, Embedded C++, Python Script, Markdown, Embedded C, Java, Bash, VHDL, CSH, Tcl, Perl, Verilog, Octave, XML, JavaScript, CSS
Frameworks
Flask, Django, OpenCL, Qt, Selenium, Jinja
Paradigms
Testing, Test-driven Development (TDD), Behavior-driven Development (BDD), Acceptance Testing, Functional Testing, Automated Testing, Unit Testing, Object-oriented Programming (OOP), Automation, Back-end Architecture, Desktop App Development, REST, Compiler Design, Linear Programming, Pair Programming, Scrum, Design Patterns, Agile Software Development, HTML DOM, Continuous Deployment, Continuous Delivery (CD)
Platforms
Ubuntu Linux, Amazon Web Services (AWS), AWS Lambda, Apache Kafka, Docker, Embedded Linux, Linux, Parse, Windows, Eclipse, NVIDIA CUDA, Riviera-PRO, MojoPortal, Jupyter Notebook, Visual Studio Code (VS Code), Google Cloud Platform (GCP), Amazon EC2, Kubernetes
Storage
Databases, PostgreSQL, Graph Databases, NoSQL, XML Parsing, JSON, MySQL, MongoDB, Elasticsearch, Amazon S3 (AWS S3)
Industry Expertise
Trading Systems, High-frequency Trading (HFT)
Other
Integration Tools, POS, Regular Expressions, APIs, Algorithms, Computer Science, Unix Shell Scripting, Applied Mathematics, CSV File Processing, OOP Designs, CSV, Data Scraping, Web Scraping, Containerization, Multitenancy, Amazon Neptune, Back-end, Back-end Development, Scraping, FastAPI, Stock Trading, TradingView, Data Extraction, Data Engineering, Dashboards, Options Trading, Data Visualization, Google Drive, SDKs, Data Analysis, Trading, Finance, Lambda Functions, Scrum Master, Algorithmic Trading, Code Review, Debugging, Mathematics, Statistics, Technical Writing, Website Data Scraping, Data Processing, Embedded Systems, Point-of-Sale (POS) Systems, CI/CD Pipelines, Linear Optimization, Image Processing, PDF, Remote Work, Outlook, Linear Algebra, Matrix Algebra, Multithreading, Data Structures, Agile Software Testing, Parsers, Document Parsing, Source Code Parsing, HTML Parsing (Cheerio), Text Processing, Binary Search Trees, Mojo REST APIs, Arista Wireless API, Apache Pulsar, Tree Structures, Technical Leadership, Web Development, Technical Documentation, EMV, Chip-and-PIN, Contactless Payment, Magnetic Stripe Card, Arista, Robot Operating System (ROS), FPGA, WiFi, Access Points, Finance APIs, Image Recognition, Machine Learning, Parquet, Packaging, Processing & Threading, Site Reliability Engineering (SRE), Servers, Templates, Software Engineering, Software QA, API Integration, Mojo.js, Writing & Editing, Documentation
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring