Software/Firmware Engineer @ Google | San Francisco, CA ☀
GitHub | StackOverflow | LinkedIn | Photography
Experience:
- Main programming languages: C, C++, Python
- Camera systems: USB/PCIe camera modules, camera arrays, industrial (Ximea, IDS) & consumer cameras (Canon EOS)
- Image sensors (OV5647, IMX216, IMX377): I2C control and MIPI data transfer
- Machine Learning: TensorFlow Lite & Convolutional Neural Networks
- Embedded Systems: bootloaders, microcontrollers, logic analyzers, board bring-up
- Linux Kernel: sound & video subsystems, I2C/GPIO/PWM/SPI drivers
- Video compression and video codecs (e.g. VP8, VP9, or H.264)
- Image/video processing, RAW pipeline
- Hardware manufacturing and testing
- Web & Node.js: HTML/CSS, JavaScript, WebSockets, React
- Custom IDEs based on Eclipse or IntelliJ IDEA platforms (Java)
Interests:
- Embedded systems
- Camera systems
- Video processing/compression/streaming
- Robotics, drones, satellites
- Software-defined radio
- Photography
Open source contributions:
- AIY Projects commits
- AIY Projects Tools commits
- TensorFlow commits
- TensorFlow Lite Support commits
- FlatBuffers commits
- gRPC commits & gRPC on Node.js commits
- libvpx commits
- WebVR Boilerplate commits
- DLTK commits
Software/Firmware Engineer @ Google
November 2012 — Present | San Francisco, CA ☀
Low-power TPU (Tensor Processing Unit) chips for embedded systems. Closely worked on:
- Dev Board — SBC (Single Board Computer) with the TPU chip
- USB Accelerator — USB stick with the TPU chip
Source code: https://github.com/google-coral.
Do-it-yourself Artificial Intelligence. Closely worked on:
- Vision Kit — AI accelerator for Raspberry Pi based on Movidius Myriad 2 chip.
- Voice Kit — Sound card which enables Google Assistant functionality on Raspberry Pi.
Source code: https://github.com/google/aiyprojects-raspbian.
Google Clips is an intelligent wearable camera based on Movidius Myriad 2 chip for on-device ML. Firmware development. Manufacturing: EVT, PVT, DVT (factory testing, quality control, calibration).
Worked on several Virtual Reality projects:
- Multi-sensor camera systems (hardware/firmware/software).
- Google Cardboard.
- WebVR Boilerplate.
- Chrome Rover. Designed and built remotely controlled robot which streams stereo video via WebRTC to the Google Chrome browser running on the phone inside Google Cardboard which also controls camera movements. The demo was demonstrated at Google I/O 2014 at Cardboard booth.
VP9 is an open source widely used video codec. List of my commits and statistics from GitHub mirror.
Software Engineer @ Guidewire Inc
October 2011 — November 2012 (1 year 2 months) | San Mateo, CA ☀
Worked on IntelliJ IDEA-based IDE for Gosu programming language.
Software Engineer @ Xored Software
October 2006 — October 2011 (5 years 1 month) | Novosibirsk, Russia ❄
Developed applications on Eclipse platform. Worked with almost all Eclipse technologies (RCP, EMF, GEF, DLTK, SWT, JFace, Xtext, etc) at that time. Official committer on DLTK project. Eclipse Summit presenter in 2007, EclipseCon presenter in 2008.
iTest is an Eclipse-based integrated test environment offering a unified approach for developing, automating, and maintaining test cases.
DLTK is an official Eclipse Foundation project which gives a framework for creating custom IDEs for dynamic languages like Python, Tcl, or Ruby. It's been included in every major Eclipse release since 2007.
Q7 is a functional and UI testing tool for Eclipse-based applications.
Eclipse-based IDE for building, testing, and debugging event-driven applications for Starview, Inc.
Eclipse-based service designer tool for British Telecom.
Instructor @ Novosibirsk State University
September 2010 — January 2011, (5 months) | Novosibirsk, Russia ❄
Teaching Data Compression course for master students (in Russian).
Instructor @ Novosibirsk State University
September 2009 — January 2010 (5 months) | Novosibirsk, Russia ❄
Teaching Data Compression course for master students (in Russian).
Software Engineer @ SWsoft(→ Parallels → Odin → CloudBlue)
July 2005 — October 2006 (1 year 4 months) | Novosibirsk, Russia ❄
Software Engineer @ SWsoft NSU Lab
September 2004 — June 2005 (10 months) | Novosibirsk, Russia ❄
Software Engineering Intern @ UnisoftPlus
July 2004 — August 2004 (2 months) | Novosibirsk, Russia ❄
Software Engineering Intern @ Novosoft
March 2004 — June 2004 (4 months) | Novosibirsk, Russia ❄
Worked on HandyPassword which is a password manager plug-in for Internet Explorer.
Vestnik NSU. Series: Information Technologies | Novosibirsk, Russia
- Kovalev, D., “Generalization of known methods of string coding”
IT Security for the Next Generation — International Round 2010 | Krakow, Poland
- Kovalev, D., Krendelev, S.F., “Dictionary-based spam detection methods”
The XII International Symposium “Problems of redundancy in information and control systems”, 2009 | Saint-Petersburg, Russia
- Kovalev, D., Krendelev, S.F., “Huffman coding and its generalizations”
- Kovalev, D., Krendelev, S.F., “Generalized arithmetic coding on simplexes”
International Scientific Students Conference | Novosibirsk, Russia
- Kovalev, D., “Fast video coding algorithm”, 2008
- Kovalev, D., “Economical information coding with appliance of a map fixed point”, 2007
- Kovalev, D., “Generalization of Huffman coding with the use of numeral systems”, 2006
- Kovalev, D., “Video compression with fixed average compression ratio”, 2005
- Cryptography I @ Coursera, April 2012
- Circuits and Electronics 6.002x @ edX, May 2012
- Computational Photography @ Google, 2016
Master (2005 — 2007), Computer Science
Thesis: “Theory and practice of fast video codec design”.
Bachelor (2005 — 2007), Computer Science
Thesis: “Fixed average compression ratio video compression”.