designsbylareau.com
The professional Internet presence of Brent LaReau and Margaret LaReau, technical consultants.

Embedded Systems, Electronics, Software and Databases

Note: Brent LaReau is your point of contact for this category.

Designing today's products requires depth and breadth of knowledge in many related hardware and software subjects. I can help you with:

Embedded Systems
The term "embedded system" covers a lot of ground. I have created (or helped to create) all sizes of embedded systems, from hand-held 8x51-family microcontroller-based devices, to facility-wide networked systems consisting of a server plus multiple client PCs (some running Windows, some OS/2, etc.).
I have written all sorts of software for embedded systems — in some cases a single dedicated assembly language program, in other cases a collection of programs written in C/C++ and Visual Basic. In many cases my software connected to databases such as Oracle, DB2, Access and SQLite. Sometimes part of my software was inside an Oracle database (PL/SQL code). I have devised and implemented a large variety of interfaces for embedded systems: GUIs for human interaction, data translators for machines, and whatever protocol was required to exchange data with a remote system (HL7, fixed data structure, FTP, etc.).
System Architecture
Indeed, "system architecture" no longer pertains to just one device. As I outlined above, today's "systems" are interconnected, hierarchical structures of smaller systems that encompass various electromechanical devices, computer platforms and software programs, which to function correctly must all operate in unison.
Computers and Operating Systems
I have designed with a wide spectrum of x86-compatible hardware, from special-purpose diskless and fanless CPU boards, to normal desktop-style PCs, to conventional servers. On the operating system side I have dealt with assorted versions of Windows, Linux, OS/2 and DOS.
Software Development
I have developed software on five X86-based platforms (Windows NT, OS/2, Windows 2000, DOS and Linux) in five main application categories (web-based, database, embedded control, desktop and utilities).
Programming Languages
Today, rapid application development is a must. This is best accomplished by assembling a heterogeneous collection of programs, where each one is coded in the language best suited to the task. I have written software in more than a dozen languages: Python, JavaScript, C, C++, BASIC, Visual Basic, PHP, PL/SQL, Perl, REXX, and several OS command shell languages.
Software Installers
Software deployment is best done using some sort of software installation tool. For Windows my tool of choice is the Nullsoft Scriptable Install System (NSIS). For Linux I use several native installation methods.
Software Tools
I am accustomed to using a large assortment of software tools: specialized programmer's editors, compilers, IDEs, interpreters, debuggers, data converters, plotting software, etc. I believe in using the right software tool for each task. When I cannot find a third-party tool I simply write my own.
Open Source
We run our business on generously licensed open source software, and we encourage our clients to do likewise. However, we do highly recommend rigidly licensed proprietary software to our competitors.
Databases and Related Topics (SQL, programming, etc.)
Many of my projects have used some sort of database, often as part of an end product, and sometimes as part of supporting tools that I create for my projects. I have used SQL and SQL functions for queries and views, plus PL/SQL and other database-specific programming languages for triggers and packages. I am acquainted with several small- to large-scale databases including SQLite, Access, DB2, MySQL and Oracle.
"Data Mining", Data Analysis, Plotting and Charting
Increasingly, it is necessary to really "dig in" when researching, developing, testing and supporting one's products. I regularly "mine" data from a variety of sources: the Internet, my own programs' log files, network packet sniffer capture files, etc. I use diverse software tools (many of my own invention) to analyze data and publish it in visual forms that are easy to understand.
Microprocessors and Microcontrollers
I normally use prefabricated single-board computers, but I am always open to "rolling my own" microprocessor-based product to avoid vendor "lock-in" and to extend a product's lifetime.
Single-Board Computers (SBC)
I use several types of SBCs, usually diskless and fanless x86 PC-compatible units that can be sealed against dust and dirt.
Electronics
I am familiar with component-level design techniques using commonly available discrete parts and integrated circuits. In my designs I consider EMI/RFI, ESD, power dissipation, driver loads, cable capacitance, ground loops, crosstalk, slew rates, shielding, decoupling, terminations, etc.
[Top]   Home

Specialties | Services Offered | Contact Information | White Papers | Credentials | Kudos | Code of Ethics

Web Design | Embedded... | Intranet... | Protocols... | Training...