
Rohit Kulkarni
Verified Expert in Engineering
IoT Developer
Mumbai, Maharashtra, India
Toptal member since November 19, 2019
Rohit has a master's degree in computer science from the University of Southern California and 10+ years of experience with various programming languages including C, C++ and C#. Having worked on a wide range of products from tiny ARM M0 based devices to REST APIs on the cloud, he has a solid understanding of software at all the different layers. He has previously worked at Microsoft and has also co-founded an IoT startup.
Portfolio
Experience
- Linux - 7 years
- C++ - 6 years
- STM32 - 5 years
- Embedded C - 5 years
- Windows - 4 years
- MySQL - 3 years
- C# - 3 years
- Qt - 1 year
Availability
Preferred Environment
Real-time Operating System (RTOS), Git, Linux, Windows
The most amazing...
...project I've led is the entire software suite for a home automation system from the firmware on ARM M0 based smart devices to the cloud's DB.
Work Experience
Principal Software Architect
DSPWorks
- Established the entire software stack for a home automation system from firmware to cloud.
- Implemented firmware on ARM M0+ based devices on MQX using C.
- Implemented the embedded gateway on TI RTOS using C.
- Implemented the smart gateway on an SBC running Linux using C++.
- Created an Android app for communicating with custom hardware over Bluetooth using Xamarin and C#.
- Designed and implemented the encryption of wireless data over the extremely low-bandwidth RF channel.
Contract Developer
Ingenero, Inc.
- Developed a high-performance server for communicating with thousands of IoT devices using C++ and MySQL.
- Wrote a test suite that could simulate thousands of devices to test the server's performance under extreme network load using C++.
- Developed a secure protocol for IoT to cloud communication using OpenSsl.
- Collaborated with the hardware team to help test the firmware.
Project Staff
Indian Institute of Technology
- Helped with board-bring-up and initial debugging of the custom hardware.
- Got U-Boot and Linux running on the new hardware.
- Developed a driver for a Maxim chipset-based E1 to Ethernet convertor using C++.
- Wrote scripts to automate testing of end-to-end communication between two devices.
Software Development Engineer
Microsoft
- Worked on measuring and improving the performance of the MediaRoom DVR's UI.
- Refactored legacy code to make it unit testable and wrote unit tests for it.
- Designed and developed new DVR features.
- Independently handled the lifecycle for the features implemented by me.
Experience
Vibe Smart Homes
As the principal software architect, I was in charge of the team that built the entire software solution from firmware to mobile apps to cloud. I developed most of the firmware and the Linux-based smart gateway software as well as provided the team with high-level design for the mobile apps and the cloud including the DB design.
Microsoft MediaRoom
https://en.wikipedia.org/wiki/Ericsson_MediaroomAs a fresh grad, I was fortunate to work with some of the best minds in the industry. All of the managed code was written in C# using the .NET Compact Framework. Until I joined the team, I had never seen any C# code but, with the help of the team, I was writing production code in less than a couple of weeks. And in less than a year's time, I was independently implementing as well as managing the lifecycle of new features for the DVR!
At Microsoft, I learned how to apply my raw programming skills to write production quality code using best practices, TDD, Scrum, and more.
Biker Radio
1. TI audio codec for real-time audio capture and playback
2. BLE module for communication with mobile apps
3. SemTech's LoRAWAN-based low-power radio module for wireless communication
4. STM32 based low-power MCU for integrating all of the above peripherals
I designed and developed most of the firmware including the code for the SPI, I2C, I2S and UART interfaces using the STM Cube and LL libraries.
I also developed the Xamarin Forms-based mobile application that allows the user of the hardware to create groups, add friends, and view the location of all members of the group even without a cellular network.
Education
Master of Science Degree in Computer Science
University Of Southern California - Los Angeles
Bachelor's Degree in Computer Science
University of Mumbai - Mumbai
Skills
Libraries/APIs
Standard Template Library (STL), OpenSSL
Tools
IAR Embedded Workbench, Keil, Eclipse IDE, Visual Studio, GNU Debugger (GDB), GitLab, Bitbucket, Git
Languages
C++11, Embedded C, C++, C#, C++14, C#.NET, C, XAML
Paradigms
Test-driven Development (TDD)
Platforms
Linux, Windows, STM32, TI-RTOS
Storage
MySQLi, MySQL
Frameworks
Qt, Boost
Other
Embedded Software, MQX, ARM, Real-time Operating System (RTOS), Xamarin.Forms, Cryptography
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