Mychaela Falconia (She/her) 760 787 0545: Core Skill Areas
Mychaela Falconia (She/her) 760 787 0545: Core Skill Areas
Embedded Linux:
• Worked on ARM (TI OMAP, Atmel AT91, Faraday), PowerPC (Freescale MPC8xx, IBM
PPC44x/46x, ‘‘classic’’ 6xx/7xx/74xx) and x86 processors.
• Brought up embedded Linux kernels starting from both standard kernel.org sources and
vendor drops.
• Worked on BSPs and drivers, including ports to new processors, SoCs and SBCs.
• Kernel code: familiar with all essential good practices of writing code for the Linux kernel,
including portability, use of standardized abstractions and APIs, concurrency,
synchronization, interrupt handlers and bottom halves, kernel threads, SMP safety.
• Bootloaders: U•Boot, processor vendor•specific mini•bootloaders, my own StarMON
bootloader family.
• Embedded Ethernet, USB, serial, I2C, SPI and GPIO peripherals.
• NOR and NAND flash hardware, Linux MTD subsystem, JFFS2, UBI/UBIFS.
• Root file system builds: Linux From Scratch, Cross•LFS, Timesys, Buildroot, Wind River
Linux.
• Implemented several strategies for fail•safe field firmware updates and product life cycle
support.
• Intricacies of timekeeping in embedded systems: time zones, leap seconds, NTP, RTC chips.
General programming:
• C and assembly on all processors listed above.
• Standard TCP/IP protocols and socket programming.
• POSIX threads.
Page 1 of 5
• Very experienced in hand•holding application programmers (C++, Java, etc) when they need
to interface with the lower level system code that I am responsible for, debugging issues
alongside with them.
• Tools: Makefiles, shell scripts, version control (git, Mercurial, SVN, CVS, Perforce),
automated builds and continuous integration (Hudson, Jenkins), Agile processes.
• Cryptography basics.
Digital hardware:
• I’ve never held the title of a hardware engineer, but I know hardware, from SSI/MSI to
FPGAs and ASICs.
• Have designed my own digital HW of moderate complexity: DSL modems, GSM cellphone
development boards, USB gadgets, some miscellany.
• I can read schematics and HW design documentation with a solid understanding of the
underlying physics that real hardware is based on.
• Worked with Xilinx Virtex 7 FPGAs (Vivado) most recently, previously worked with Altera
FPGAs and CPLDs and Quartus II development tools.
• My primary HDL is Verilog.
• Right at home in front of an oscilloscope or logic analyzer.
Page 3 of 5
• Since 2020, my work at CarrierComm expanded into a new platform using large FPGAs
instead of the now•mature ASIC. On this new platform the processor for real•time
functions is Xilinx MicroBlaze instead of ARM, the new RTOS is FreeRTOS, and all real•
time software has been rewritten from scratch by me for ultra•low latency operation.
• The end application is terrestrial microwave communication. Over the years of maintaining
low•level software for CarrierComm’s two principal hardware platforms and endless
variants, I got involved with the theory of modem and framer operation, processing of I&Q
sample streams, ADCs and DACs, and I integrated a DPD (digital predistortion) code blob
from Systems4Silicon.
• Many of the software components I had to work on operate under extremely tight real time
constraints: some processing is done on timer interrupts which fire every millisecond, and
this processing had to be as fast as possible.
March—December 2012
PRIMA Cinema (Carlsbad, CA)
Embedded Linux Specialist
• Supported an embedded Linux system based on the Wind River Linux platform.
• Debugged a specialized driver for a high•performance PCIe DMA device, identified defects
in the areas of synchronization and SMP support, and wrote a superior replacement.
• Debugged BIOS and Linux kernel issues on a semi•custom special•purpose x86 platform.
• Pin•pointed hardware problems, such as disk data corruption by a hardware encryption
device which couldn’t be detected by the RAID or file system layers.
• Diagnosed and resolved an incompatibility between the vendor•supplied Linux kernel
version and a specialized USB device controlled by specialized software from another
vendor (a USB flash drive with biometric access control).
• Implemented an FPGA field update mechanism on a platform that was limited to JTAG bit•
banging via GPIO; my implementation reduced the reprogramming process from hours to
minutes.
• Did some refactoring of the WRL•based platform build process for better maintainability.
February—November 2011
Fresenius Medical Care North America (Orange County, CA)
Linux support contractor
• Put together a custom embedded Linux distribution (NAND flash•based) for the AM3517
ARM•based processor from TI, including a GUI stack.
• Put together a fully automated scripted build system for the custom versions of U•Boot, the
Linux kernel and a root file system based on the Linux From Scratch approach.
• Made many customizations to Linux and U•Boot in support of the customer’s application.
• Diagnosed and fixed bugs in the processor vendor’s versions of U•Boot and Linux.
• Built Java Run•time Environment (JRE) support for the customer’s application, using GNU
Classpath and JamVM.
• Provided support for several different 4•wire and 8•wire analog resistive touch screen
controllers, involving hardware evaluation, evaluation of existing drivers, writing some new
driver code, testing, and writing a bit of custom Verilog for an FPGA to work around a
design defect in one of the controller chips.
• Designed and built a bit of custom hardware (small PCBs) to support software development
ahead of the real product hardware.
Page 4 of 5
June 2010 — January 2011
Google Inc. (Santa Monica, CA)
Site Reliability Engineer
• Studied C++ and Google’s internal programming languages.
• Wrote specialized data analysis tools for Google’s production monitoring infrastructure.
• Participated in the upkeeping of some of Google’s smaller services.
• Handled emergency on•call responsibilities for my team’s services.
Page 5 of 5
July 1999 — February 2001
Manzara Wireless Electronics, Inc. (Tashkent, Uzbekistan)
Software Engineer
• Developed wireless communication software for connecting PalmOS devices to the world
via wireless phones and pagers.
• Studied the standards and developed software for GSM phones and ReFLEX 2•way pagers.
• Made major enhancements for Motorola 68xxx family processors in the GNU software
development toolchain (GCC, Binutils, and GDB).
• Developed UNIX software in C for special•purpose application servers.
1988—1995
Medical•Technical Center Medincom (Moscow, Russia).
• Developed from scratch a real time OS for PDP•11•compatible computers with our own
control of all hardware, including the memory management unit, drivers for all devices, and
encoding and decoding the bitstream for magnetic storage entirely in software in real time
(bit•banging).
• Provided full underlying RTOS support for embedded medical applications.
• Developed PC system software and utilities.
Page 6 of 5