Gurgen Hovhannisyan, Python Developer in London, United Kingdom
Gurgen Hovhannisyan

Python Developer in London, United Kingdom

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 5+ years of experience as a team lead. He values—and provides—high-quality code and attention to detail. He is a very motivated person and has experience in various areas, including both high and low-level programming.
Gurgen is now available for hire

Portfolio

Experience

  • Unix Shell Scripting 10 years
  • Regular Expressions 10 years
  • Object-oriented Programming (OOP) 10 years
  • OOP Designs 10 years
  • Python 9 years
  • Perforce 5 years
  • REST APIs 4 years
  • Databases 4 years

Location

London, United Kingdom

Availability

Part-time

Preferred Environment

Vim Text Editor, CVS, Subversion (SVN), Git, PyDev, PyCharm, Eclipse

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 (RGB and YUV).

Employment

  • Senior Software Engineer 2

    2017 - PRESENT
    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/Scrum methods and test-driven development with regular review cycles.
    • Changed the quality, readability, and usefulness of 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. Added new features (compiler) to do pre-processing of Verilog written code. The project overall saved enormous user time in their daily development/testing/auto-code generation.
    • Created software testing procedures to have automatic testing of the software development process in Jenkins automation server. Created more than 100 Jenkins jobs with their own branch structure (DEV/MAIN/REL) to keep various releases stable. Configured infrastructure and integrated tools needed to automate build, validation, and unit testing of code, which triggers the development team to always increase the code coverage without breaking existing flow and backwards compatibility. Worked across functional (development/testing, deployment, systems/infrastructure) and project teams to ensure continuous operation of build and test systems (CI).
    • Completed a Python-based project using a REST API to work with Confluence pages and with their contents. Parsed Confluence pages (XML data) and CSV files, and handled user requests with Python NumPy/Pandas. Project saved users' time to get notified instantly and have a better view in Confluence pages whenever some release flow metrics were unexpectedly changed.
    • 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. These are mostly register definitions. Wrote a simple C/C++ compiler using Python and parsed files with advanced-level regular expressions. The project saved users' time without breaking the backwards compatibility of various release flows.
    • Involved 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 the internal communication tools to make sure customers are satisfied with their daily needs and requirements by dealing with random tools/techniques/programming languages. Improved the ability for learning new technologies and understanding how to utilize them in a customer-facing environment.
    Technologies: Git, Perforce, ModelSim, NCSim, Riviera-PRO, Compiler Design, Makefile, MySQL, VHDL, Verilog, CSH, Tcl, C, Perl, Pandas, NumPy, Confluence, Unit Testing, Pytest, Python
  • Engineer for Proof of Concept Delivery

    2019 - 2019
    InnerSpace Technology, Inc. (via Toptal)
    • Created Python classes/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/scripts to merge the different locations using JSON data (rssi data) into one common dataset with time range specified by the user and then pushed the new datasets to another 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.
    Technologies: Arista, APIs, WiFi, Apache, Python
  • API Automation Developer

    2018 - 2018
    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 usage of the flow, script, and page restrictions.
    Technologies: Confluence, Python
  • Senior Embedded Software Engineer

    2013 - 2017
    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/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.
    Technologies: Magnetic Stripe Card, Contactless Payment, Chip-and-PIN, POS, Bash, Unit Testing, Python, EMV
  • Embedded Software Engineer

    2013 - 2013
    Energize Global Services
    • Worked in the clients’ offices in Belgium for knowledge exchange purposes and had training in the clients’ offshore development center.
    • Created ~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.
    • Implemented multi-user mode for POS terminals using C and created Python scripts to test new functionality.
    Technologies: Magnetic Stripe Card, Contactless Payment, Chip-and-PIN, POS, C, Bash, Python, EMV
  • Senior Test Automation Engineer

    2012 - 2013
    Instigate CJSC
    • Tested a proprietary FPGA compiler by simulating failures with Aldec, NCSim, and ModelSim.
    • Created testing scripts using Python (confluence API, Network API, 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.
    Technologies: NCSim, Riviera-PRO, FPGA, MySQL, Verilog, Java, CSH, Tcl, Perl, Python, ModelSim
  • Hardware Design Engineer

    2011 - 2012
    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).
    • Created 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 design flow.
    • Created scripts to compile and test the output data.
    Technologies: Riviera-PRO, FPGA, Tcl, Perl, Verilog
  • Software Engineer

    2010 - 2011
    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 comparing with 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.
    Technologies: CUDA, OpenCL, Octave, C++

Experience

  • Bing Map into WeTab

    Developed Bing Map and GPS functionality for the WeTab application.

  • Messenger

    Created a simple messenger by using a socket/thread mechanism to allow clients to communicate via them on the server side. Qt GUI and C++ classes are used.

  • Calculator

    Created a simple calculator to evaluate expressions and to solve single-variable linear equations using a Shunting-yard algorithm.

  • Thesis (Number of Hamilton Cycles in Square Grids)

    Found the number of Hamilton cycles in square grids (MxN) and implemented algorithms to generate the number of cycles using C++/CUDA. Created an Octave/Matlab script to demonstrate graphics based on the number of cycles and the dimensions of the grid. Outcomes can be applied to count the number of DNA based on their structure.

Skills

  • Languages

    Regex, Python 3, Bash Script, Python, Java, Bash, VHDL, C++, CSH, SQL, Tcl, Perl, Verilog, Octave, C, XML
  • Libraries/APIs

    NumPy, Pandas, REST APIs, Sockets, Python-pptx, Jira REST API, CPython, XML ElementTree
  • Tools

    Vim Text Editor, Shell, Atlassian, Pytest, Jira, Rally, Perforce, Eclipse IDE, PyDev, CVS, PyCharm, Git, Confluence, GitHub, Notion, ModelSim, Redmine, Jenkins, Makefile, Subversion (SVN), Apache
  • Paradigms

    Testing, Test-driven Development (TDD), Behavior-driven Development (BDD), Acceptance Testing, Functional Testing, Automated Testing, Unit Testing, Object-oriented Programming (OOP), Compiler Design, Linear Programming, Pair Programming, Scrum, Design Patterns, Agile Software Development, HTML DOM
  • Platforms

    Ubuntu Linux, Parse, Windows, Eclipse, CUDA, Riviera-PRO, MojoPortal
  • Other

    Integration Tools, Regular Expressions, Algorithms, Computer Science, Unix Shell Scripting, Applied Mathematics, CSV File Processing, OOP Designs, Remote Work, APIs, 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, NCSim, EMV, POS, Chip-and-PIN, Contactless Payment, Magnetic Stripe Card, Arista, Robot Operating System (ROS), FPGA, WiFi, Access Points, Finance APIs
  • Storage

    Databases, XML Parsing, JSON, MySQL, MongoDB
  • Frameworks

    OpenCL, Qt

Education

  • Master's Degree in Computer Science and Applied Mathematics
    2007 - 2009
    Yerevan State University - Armenia
  • Bachelor's Degree in Computer Science and Applied Mathematics
    2003 - 2007
    Yerevan State University - Armenia

To view more profiles

Join Toptal
Share it with others