résumé
D. Warren Mann
13418 West 105th Terrace, Overland Park, KS 66215
816-645-5594 | warren@nonvol.io
Self-employed
Machine Learning Engineer
April 2024 - present
- Fine-tuned several large language models for a business venture. The models are capable of carrying on conversations while simultaneously controlling devices based on the conversation.
- I wrote python scripts to generate synthetic data that shaped conversations and associated abstract concepts with external device control commands.
- I targeted specific neural network layers in pre-trained chat models to preserve their chat capability while adding the ability to control hardware devices.
- Developed docker image for fine-tuning LLM when training data changes
- Developed docker image for serving chat LLM via runpod vLLM
- Writing a C library that implements various machine learning algorithms: linear regression, K-Means, back-propagation, gradient descent, along with linear algebra and multivariate calculus operations.
Pepper
Firmware Engineer
August 2022 – June 2024
- Developed firmware, in C, for custom ARM-based smart home devices, mostly built on the BK7231N microcontroller.
- Smart bulbs and LED strips
- Fixed bugs in timing/interrupt mechanism for generating light patterns
- Implemented music synchronization mechanism with microphone sampling, Fast Fourier Transform and interrupt generation
- Fixed bluetooth/bluetooth-LE bugs
- Implemented settings synchronization between nonvolatile memory and MQTT
- Security Camera/DVRs
- Synchronization between device settings and MQTT.
- Collaborated on implementation of firmware framework, where the firmware was structured as a collection of device components in an object-oriented way, but using C.
- Incorporated unit testing into the firmware framework.
- Evaluated unit testing frameworks and selected the one that best fit our firmware framework (CMocka).
- Implemented initial tests for our framework code.
- Built custom embedded Linux systems using Buildroot.
- Worked on an iOS Swift app for bluetooth testing.
- Regularly worked with I2C, SPI, bluetooth-le and cellular chips.
- Worked with MQTT, AWS, MongoDB for cloud storage of device settings that were synched to the device.
- Used GDB, GDB server, an oscilloscope and logic analyzer and power load measuring for debugging code and hardware issues, including low power mode issues.
Elecsys
Firmware Engineer
July 2017 – August 2022
- Designed and developed firmware for locally designed/manufactured ARM-based industrial and agricultural hardware devices, in C, based mostly on Kinetis K7 microcontrollers.
- Lead firmware engineer for a device (RTU) that acts as a proxy to RS232 connected devices, allowing them to be controlled remotely over a cellular network.
- Implemented a normal mode, where a user could login the RTU over a cellular network and issue commands to it. Those commands would then translate to commands specific to the client device and were forwarded to it.
- Implemented a passthrough mode, where the user could connect to the RTU via cellular and then interactively communicate directly with the client device.
- Implemented a rotating logging system on SD card and USB.
- Lead firmware engineer for a corrosion monitoring device that samples the electrical properties of a metal rod to detect corrosion.
- The device stayed in low power mode most of the time.
- At programmed intervals, the device would wake up and sample the ADC to get the measurement values from the metal rod.
- The device would report its measurements to our control website, through cellular modem.
- Took over as lead firmware engineer on a communication device with a unique architecture (Used a Quectel modem’s microcontroller as the device’s microcontroller).
- When I took over, the device was in a non-working state. I used a logic probe to debug a problem with the I2C communication taking place between the Quectel (really Broadcom) microcontroller and an I2C GPIO chip we were using.
- Maintained older firmware based on STM32 microcontrollers.
- Fixed bugs and incorporated bug fixes implemented on other devices into the older code bases.
- Optimized code to allow bug fixes and feature additions to fit in limited memory of older hardware.
- Created drivers for new chips/devices
- Wrote drivers for an ePaper display. Relied on experience programming 8-bit graphics to get more performance out of the driver than provided by the supplied SDK.
- Wrote drivers for integrating the ATECC108 crypto authentication chip along with MBED-TLS into our telemetry stack.
- Maintained and administered the firmware team’s self-hosted GitLab instance.
- Maintained cellular/satellite communication stack, which supported Telit, Ublox and QuecTel modems.
- Worked extensively with I2C, SPI, Modbus devices.
- Worked extensively with JTAG, Segger Ozone, oscilloscopes, logic analyzers and did some soldering/desoldering.
- Worked with GDB and linker control files.
Risk Analytics
Senior Software Engineer
March 2015 – April 2017 (approx.)
- Worked on a DNS proxy system in C++ and NodeJS. The DNS Proxy would accept DNS requests, then check the requested address with our internal list of flagged addresses (obtained from honeypots, other web traffic analysis groups). If the requested address was in our flagged list, a warning would be issued to the user.
- Worked on C++ code that would do quick lookups of the incoming request against our database of bad addresses.
- Worked on NodeJS code to update bad address list from research team’s lists.
- Developed C code for custom Octeon processor based network appliance running on embedded Linux.
- Used the Octeon processor’s internal TCP/IP packet handling and pattern matching to filter traffic based on same lists as used for the DNS proxy.
- Built custom embedded Linux images with Yocto.
- Built test machine with multiple high-speed ethernet ports for testing and experimentation, using nmap, wireshark, custom C programs and NodeJS scripts
Adknowledge
Data Engineer
May 2013 – Fenbruary 2015 (approx.)
- Developed ETL scripts in NodeJS, bash and perl to pull data from Oracle database and generate facts/dimensions in green plum data warehouse.
- Generated Tableau reports that pulled from green plum data warehouse.
- Rotating on-call duties
Solidify HR
Senior Software Engineer
2012 – 2013
- Implemented backend logic and request handling for insurance applications using NodeJS and Java.
- Developed NodeJS ETL scripts and backend code for managing MySQL database restructuring.
- Maintained Java API for backend communication with MySQL database.
Adknowledge
Senior Software Engineer
2007 – 2012
- Developed and maintained PHP code for customer-facing websites.
- Developed and maintained PHP, perl, NodeJS and bash scripts for handling MySQL, Oracle and Greenplum I/O.
- Created Perl ETL scripts and high-speed method for acquiring live click, impression and conversion tracking information in an Oracle/Apache/Linux environment.
- Supported all other departments in data collection and problem-solving needs.
SiriCOMM
Software Engineer
2004 – 2007
- Developed a synchronization daemon in C.
- Developed Perl scripts for maintaining remote machines.
- Created assembly utility to remotely program CMOS.
Cerner
Software Engineer
2003 – 2004
- Worked in the Advanced Technology Group.
- Developed a two-way camera system with remote control for use in ICU settings.
- Developed RFID patient tracking system.
- Developed Windows testing scripts.
- Worked with Citrix, Oracle.
R&D Associates
Software Engineer
2001 – 2003
- Developed a C++/QT point-of-sale application
- Developed a C light-weight encrypted database library
- Created Palm OS software for trucking industry cargo tracking, bill of sale, etc.
- Other smaller projects: JSP pages, PHP Pages, PalmOS, MySQL, FreeBSD/Linux/Windows.
Last modified on 2024-12-23