Curriculum Vitae

PersonalProfessionalProjectsCertificationsSkillsEducationContact
vishal chovatiya curriculum vitae

Hi, I’m Vishal — Experienced Enthusiast: C++, System Software, Firmware & SoC Modeling.

Professionally, I write low-level software & uses Assembly/C/C++(11/14/17)/SystemC/Python. I also dabble in blogging, writing & application programming when time permits.

Nowadays, I am fond of Modern C++ because of its complexity/modernness & writing about it which eats up most of the free time. Writing clean, efficient, scalable, maintainable & expressive C++ code is my speciality.

I find myself excellent in technical-recruitment/talent-search, interview & project-onboarding/training.

Some of the words that describe me the best: developer, coder⌨, learning junkie📚, productivity⌛ hungry, hipster🎩, blogger👨‍💻, geek💻 & always a student🎓.

Languages

Hindi, English, Gujarati

Date Of Birth

15th March

Hobbies

Coding⌨, Music🎵, Workout🏋, Foosball⚽, Cricket 🏏

5+ Yrs of acquaintance with writing Firmwares, Baremetal software, Application Softwares, Low-level system development & SoC modeling.

CircuitSutra Technologies Pvt Ltd
7/2017 – present

  • I am currently working with heterogeneous peoples to build a virtual prototype for electronic systems, computing platforms & SoCs to reduce time to market, pre-silicon functional verification, architecture exploration & early software development.
  • Day to day work involves different IP programming using SystemC(kind of C++) like a timer, watch-dog, communication protocols (SPI, I2C, etc), integration of different IP to create SoC, writing multicore firmware & software to verify Virtual Prototype.
  • The typical languages used are Assembly, C/C++(11/14), SystemC, Python and someday hack of shell/batch & TCL scripting.

HCL Technologies Pvt Ltd
6/2016 – 6/2017
: 1 Year

  • Worked with some really weird people to develop a proprietary OS for the supercomputer.
  • My work was to handle/port/analyse/debug core C library upon which we were building OS functionalities.
  • Most of the time I had to deal with a typical C & Assembly code which is written by some experienced psychic.

Skilrock Technologies Pvt Ltd
5/2015 – 5/2016
: 1 Year

  • Developed payment gateway applications which you may not hear(like Ingenico, TPS, Spectra) but come across daily at malls, petrol pumps & supermarket stores for billing.
  • Provide end to end solution to customers with the single hand-coded application.
  • Resolved bugs and errors in old projects in co-operation with java developer and testing team.

Satyam Software Solutions Pvt Ltd
4/2014 – 4/2015
: 1 Year

  • Wrote firmware for microcontrollers like 8051, ARM Cortex-M4.
  • Wrote embedded software in C/C++ with Linux system programming.
  • Prepared design document –SRS(software requirement specification), the datasheet of finalized & tested products.
  • Also done reverse engineering in co-operation with hardware board design team to design (copy in a real sense) product.
  • Maintenance of old projects in Delhi metro.

Achieved experience on most of the computer engineering layers, starting from digital hardware design, bare-metal softwares, firmware, linux kernels to application softwares.

CircuitSutra  Technologies Pvt Ltd

Automotive SoC

  • Client: SYNOPSYS & SAMSUNG
  • Technology: Assembly/C/SystemC/C++ & Python
  • Specification: Wrote bare-metal software to verify the functionality of the developed virtual prototype of multicore(10+ cores) SoC having multiple integrated peripherals including ARM’s GIC(Generic Interrupt Controller), ARM’s DMA330, SPI, I2C,  multicore timers, WDT, clock management unit, windowed WDT, mailbox(inter-processor communication), etc. Also validated & debugged Linux device drivers to provide support to BSP bring-up team.
  • About Automotive SoC: This automotive SoC is a hard real-time system for driver assistant so it contains 8 application-specific core of ARM(i.e. A76, ARMv8A), 2 real-time core (i.e. CR52, ARMv8R), 4 Cadence Tensilica HiFi 4 DSP core for audio/speech processing & bunch of supporting peripherals.

F1M/F1H: Automotive Single & Multi-Core Microcontroller

  • Client: SYNOPSYS & RENESAS
  • Technology: SystemC/C++ & Python
  • Specification: Developed virtual IP for SoC & wrote bare-metal software to validate VP. Enhanced already modelled IP blocks of stand-by-controller, timer and interrupt controllers. Prepared firmware to test complete SoC using python callback to measure clocks & frequency input of different integrated models.
  • About F1M/H: Renesas’s automotive series real-time microcontrollers for AUTOSAR.

SAFETY-BY-SOFTWARE: Specific IP Block For Main Computing Machine Safety

  • Client: SYNOPSYS & NXP
  • Technology: SystemC/C++ & Python
  • Specification: Advanced form of watchdog timer running on a separate core(ARM Cortex-M3) which is not only used to monitor the main computing machine by timer/time-out but also keeps track of the state of the main application to provide hard real-time performance.
  • About SAFETY-BY-SOFTWARE: It just not run a timer to measure the work done of the main system but also take care of state machine of main computing machine’s software in a separate core to prevent malfunction and provide hard real-time functionality.

HCL Technologies Pvt Ltd

Proprietary Operating System

  • Client : NEC Corporation Pvt Ltd
  • Technology: C, Assembly, Python
  • Specification: Develop & maintain support for system calls & core c library functions.
  • About OS: Participated in developing a new proprietary operating system for proprietary hardware of supercomputer on Linux kernel & bases on Eeebuntu.

Skilrock Technologies Pvt Ltd

Lottery Management System(LMS)

  • Client: National Lottery Authority(NLA Zimbabwe)
  • Technology: C/C++
  • Specification: Develop application on Payment Gateway Terminals to maintain Casino’s Lottery and Game services.
  • About LMS: it is a complete system build by Java application server, C/C++, Android and other technology to maintain Casino’s Lottery and Game services.

Satyam Software Solution Pvt Ltd

Token Capture Unit(TCU)

  • Client: Delhi Metro Rail Corporation (DMRC)
  • Technology: Embedded C, Windows serial port driver, Reverse engineered UART Protocol.
  • Specification: Microcontroller P89V51RD2 controls IR sensors & solenoids to trace & validate RFID tokens by continues communication using RS232 with Gate Control Unit (GCU).
  • About TCU: it is a mechanism used to capture token inserted by passengers to travel in a metro train.

Add Value Machine or Ticket Reader (AVM/TR)

  • Client: Delhi Metro Rail Corporation (DMRC) & Sony
  • Technology: C/C++, Linux Shell Scripting.
  • Specification: Developed two separate application one for reading RFID cards & second is GUI using DirectFB in Linux. Connected those with message queues, signalling and cross-compiled to run on ARM-based architecture along with high-resolution touch screen display.
  • About TR/AVM: Used to read & add balance in smart card used in Delhi Metro Rail Corporation (DMRC).

Automatic Feeding Machine & Passage Control Module(AFM & PCM)

  • Client: Delhi Metro Rail Corporation (DMRC)
  • Specification AFM: P89V51RD2 control motors along with some mechanical parts by a TV remote and DMRC’s application interface using the UART standard.
  • About AFM: Automatic Feeding Machine feeds RFID tokens to Passenger according to the amount received by the machine.
  • Specification PCM: Hydraulic motors, relays, optocouplers and high power management ICs controlled by a microcontroller.
  • About PCM: Passage Control Module controls the AFC gate’s barrier. I have done the only maintenance of these projects.

Embedded System Design

Cetpa Infotech Pvt Ltd

  • Industrial training after graduation on Embedded C with microcontrollers like 8051, AVR, ARM, Linux-RTOS concepts.

Design Analysis Of Algorithm

IIT Madras

  • Got a view on algorithmic techniques like Divide & Conquer, Greedy, Dynamic Programming, Sorting & Searching techniques along with Time & Space Complexity Analysis of Algorithm.

Programming Data Structure & Algorithm

IIT Madras

  • Learnt Data structures like Stack, Queue, Heaps, LinkList, HashMap, Advance Trees like AVL, RedBlack, Trie, BST, Binary, Treap
  • Also coded Graph DS & Algo.

Python

IIT Madras

  • Got an overview on inbuilt data structure like a list, dictionary, tuple, string manipulation, threading, file handling.
  • Also done execution of Linux commands & automation test scripts mini project.

Learning How to Learn

Coursera

  • Learned different techniques, tricks & psychology related to learning new things.
  • Concepts on memory & neurons.

C++ For C Programmers, Part A

Coursera

  • A refreshed basic aspect of C++ along with graph algorithms.

C++ For C Programmers, Part B

Coursera

  • Learned advanced C++ concepts like move semantics & smart pointers by using it in basic game development.

Mastering C++ Standard Library Features

Udemy

  • Learned Modern C++(11/14/17).
  • Grabbed value semantics, created movable classes, used Lambdas and got an introduction on compile-time programming.

C++ in detail: Exceptions

Udemy

  • Learned about exception handling strategies & nested exceptions.
  • Also seen the Modern C++ features related to C++.
  • Extracted the real cost of using exception handling by google benchmark.

C++ in detail: Common Idioms

Udemy

  • Learned about advanced C++ concepts like SFINAE, CRTP, RTR, Proxy, Type Erasure, etc.

Design Patterns in Modern C++

Udemy

  • Learned about newer features of Modern C++.
  • Got to know about SOLID design principles & how it helps in agile & adaptive software development.
  • Implemented all the Creational, Structural & Behavioural Design Pattern using Modern C++.

Programming Languages

  • Assembly (Very Good)
  • C (In & Out)
  • Embedded C (Good)
  • C++11/14/17, STL, Design Patterns (Excellent)
  • Python(Good)
  • SystemC(Good)
  • Linux Shell Scripting (Moderate)
  • AutoHotkey(Moderate)

Microcontrollers

  • ARM7 (LPC21xx series)
  • AVR (ATmega series)
  • MCS-51 series
  • ARM Cortex-M4 (STM32F407-discovery board)

Technical Tools

  • Proteus Hardware Design Suit, Synopsys Virtualizer
  • MobaXterm, Putty, TigerVNC, mRemoteNG
  • Vim, Sublime Text, VSCode
  • Synopsys Virtualizer, TLM creator
  • Beyond Compare, DiffPDF
  • Trace32, gdb
  • Github, Perforce, Beyond Compare

Productivity & Management Tools

  • OneNote, Google Keep, Google Calendar
  • Wekan, Trello boards
  • MS Office
  • Textik, Windows Ink Workspace, Clover

Soft & Other Misc Skills

  • Specialized in creating automation frameworks by python & AutoHotKey for the repeated task.
  • Excellent in technical-recruitment/talent-search, interviewing & project-onboarding plus training.
  • Writing clean, efficient, scalable, maintainable & expressive C++ code is my speciality.
  • Technical Writing, Blogging, SEO are the topics sometimes I dabble on.

Other

  • Protocols – UART, SPI, I2C
  • Encryption – AES & DES CBC MAC through OpenSSL
  • RFID Technology – Sony Felica, NXP’s Mifare DESfire, etc
  • Reverse engineering of UART Protocol
  • Knowledge of AFC(Automatic fair collection) domain of Delhi Metro
  • Rail Corporation
  • Productive & Efficient user of Vim, VSCode, Sublime Text
  • Payment Terminals – TPS, Ingenico, Spectra

Matriculation(10th Standard)

06/2006 – 06/2007

  • Aggregate with 70%
  • Major: Science, Maths, Sanskrit.

Diploma In Electronics & Telecommunication

06/2007 – 06/2010

  • Aggregate with 60%
  • Major: Digital Electronics

B.Tech In Electronics & Telecommunication

06/2010 – 06/2013

  • Aggregate with 81.6%
  • Major: Communication

Let’s talk 📲

+91 95555 35096

Connect with me on 🔌

Facebook, Linkedin, GitHub, Quora

Say hi 👋

by email: vishalchovatiya@ymail.com