1.
DISHIT JOSHI
(B.Tech –EC engg.)
dishitjoshi@gmail.com
Mob. No.: +919428901700
https://in.linkedin.com/in/dishitjoshi5b1b5a69
SUMMARY
3+ years of experience in embedded software development.
Proficient in C, C++ and Python.
Experience in software design, development and testing on
microcontrollers ranging from low level firmware development for hard
realtime embedded systems to application level software development.
Familiar with serial communication protocols like: SPI, I2C, Modbus, CAN
Worked as part of software team on SDK development for next generation
networking product. Experience in designing & implementation of
Layer2/3 networking features using C++.
Implemented test automation for networking ASIC using Python, Tcl and traffic
generator (i.e. Spirent, IXIA) libraries. Identified & implemented test scenarios for
layer 2 forwarding and features such as FDB, Mac Learning, Source Port
Suppression, VLANs (802.1q), QinQ (802.1ad), MacInMac (802.1ah), LAG, MIRROR,
STP/RSTP/MSTP, MAC filters, ACLs, layer 2 virtualization tunnels (vxlan, nvgre), as
well as basic routing and NAT.
Experience in OCP SAI integration in SDK, SAI adapter development and testing.
Experience in Implementing continuous integration using Jenkins.
Active involvement in all phases of software development life cycle (SDLC): Starting
with defining the scope, Design, Development, Testing, Deployment & Support.
WORK EXPERIENCE
Working as an Embedded engineer from 1st January, 2015 to till date at Volansys
Technologies Pvt. Ltd., Ahmedabad (Gujarat).
Working as an Embedded software engineer from 1st April, 2013 to 1 January,
2014 at Xzadium Technologies Pvt. Ltd., Ahmedabad (Gujarat).(Xzadium
technology is merged with Volansys Technologies from 1st January, 2015).
ACADEMIC DETAILS
B.tech (2013) in Electronics and Communication from Dharmsinh Desai
University, Nadiad with 74.26%
HSC(2009) form GSHEB(Gujarat) with 84.00%
SSC(2007) form GSEB(Gujarat) with 89.85%
2.
Technical skills
Programming/ scripting
language
C, C++, Python, VB
Microcontrollers ATmega16, 8051, AT89C2051, LPC 2148(ARM 7),
LPC1758(Cortex M3), LPC1754(Cortex M3), LPC
1114(Cortex M0), PIC32
IDE Keil 5, MPLAB
Protocols SPI, UART, I2C, MODBUS, CAN, L2/ L3 layer protocols
Peripheral interfacing ADC, LCD and keypad, loadcell, stepper motor,
vibrator
Operating Systems Windows, Linux
Version control system GIT, SVN
Bug tracking systems JIRA, Mentis
AREA OF EXPERTISE
Microcontroller based firmware design and development in C.
Networking layer L2/L3 application development and real time testing of L2 and L3
networking protocols
Test automation script development in Python.
MAJOR ACHIEVEMENTS
Shouldered & fulfilled the responsibility to handle customer communication.
Independently designed & developed the separate modules of a long term project.
PROJECTS
1. Project name: Software development for Multihead packaging machine
Technology : embedded software development
Tools used : Keil 5
Language used : C
Hardware used : stepper motor, vibrator, loadcell, HMI
Description :
The multihead packaging machine is an embedded product used for accurate and
high speed packaging in food industry. It works on the concept of combination
weighing algorithm. The machine has three major parts.
3.
o A main card(LPC 1758)
o Multiple slave cards(LPC 1754) connected with main card via CAN bus
o Multiple ADC cards(LPC 1114), each connected with a slave card via
MODBUS
The main card is connected with peripherals like EEPROM (via I2C) and HMI (via
MODBUS). The task of the main card is to boot up all slave cards, to receive HMI
commands and periodic information from slaves card and to control slave card
operation based on user inputs from HMI, GPIO inputs and periodic data.
The slave card is connected to two steppers, a vibrator and an ADC card. The main
function of slave card is to control peripheral in various ways based on the
command received from main card and periodically query weight data from ADC
card.
The ADC card is connected with ADC (cs5532) via SPI. The task of this card is to
initialize ADC based on given parameters from slave card, fetch ADC data
continuously and respond MODBUS queries of slave card.
Responsibilities in project:
Design, development, testing and bug fixing, deployment and support
2. Project name: Development and testing of a l2/l3 layer features of SDK for
programmable networking ASIC
Technology : Embedded software development
Tools used : Spirent, Ixia
Language used : C++, C, Python
Hardware used : Bare metal boxes with customized networking ASIC
Description :
This project involves development of SDK for customer defined programmable networking
ASIC. The SDK development is done in C++. It involves supporting various L2/L3/L4 layer
features and SDN compatibility. The SDK also included support for Switch Abstraction
Interface (SAI) of OCP. The project also included SDK testing, networking feature testing for
customized networking switch, and simulation of software switch, which can be used to
test protocols at initial level, before chip fabrication, for reducing time to market.
Responsibilities in project:
Feature and primitive manager development as part of control plane SDK
development.
Development of the MIPS 4K firmware for service CPU assisting main CPU.
Example end application development in C to use SDK apis in order to program and
control networking ASIC
SAI adapter implementation for L2 and L3 layer protocols.
4.
Layer 2 and layer 3 networking feature testing on simulator and real time testing on
actual hardware using traffic generator tools like Apirent and IXIA.
Networking test automation script development using Spirent apis and python.
2. Project name: LLDP library development for PIC32
Technology : embedded software development
Tools used : MPLAB
Language used : C
Hardware used : PIC32 starter kit
Description :
This involves the development of receiver and transmitter library for Link layer discovery
protocol on PIC32. Which in turn used by a NMS modules for advertising their identity to
all other network devices.
Responsibilities in project:
Developing LLDP transmitter module
3. Project name: Developing software for analog video door phone
Technology : embedded software development
Tools used : Keil 5
Language used : C
Description :
This involves the software development for analog video door phone on AT89C2051. The
basic functionality of the software is to manage various states of the door phone and their
switching, based on the inputs keys provided on the keypad of the phone.
Responsibilities in project:
Designed and developed the module
4. Project name: MODBUSRTU library development in VB 6
Technology : embedded software development
Tools used : VB 6
Language used : VB
Description :
This involves the development of MODBUS master and slave library in VB 6, which is
further used to construct a GUI which communicate with various industrial machines.
Responsibilities in project:
Developing MODBUS master library
5.
5. Project name: Software development for Network management subsystem
Technology : embedded software development
Language used : C
Hardware used : BeagleBoneBoard (BBB)
Description :
This involves the development of a firmware on embedded Linux for BBB. The task of the
firmware is to query various peripherals connected in network and periodically update the
same data on a website.
Responsibilities in project:
Developed a feature of firmware upgrade
Developed necessary IPC mechanisms for open source dependency removal.
ACADEMIC PROJECT
Project name: Arm imitating robot
Technology : embedded software development
Language used : C
Hardware used : stepper motor
Description :
A robotic arm is developed which can imitate the human arm with the help of
microcontroller (ATmega16). This is done by simply comparing voltage difference between
two potentiometers.
Responsibilities in project:
Developer
PERSONAL DETAILS
Address 13, kailashbag soc.,
b/h, vidhyut nagar,
Petlad road,
Nadiad387001,
Dist.Kheda.
6.
Alternative contact no. (0268)2528262 (R)
Date of birth January,199212th
Citizenship Indian
Gender Male
Marital status Single
Hobbies Jogging, cricket, solving puzzles
DECLARATION
I hereby solemnly declare that the above mentioned information is correct up to my
Knowledge and I bear the responsibility.
(Dishit Joshi)