Abbott Flashcards
Prepare for software engineering job interviews at Abbott. (40 cards)
Modern .NET U/I framework.
WPF (Windows Presentation Foundation)
.NET remote procedure calling framework.
WCF (Windows Communication Foundation)
Low level exception debugging for non-debug builds (for .NET or any Windows environment)
Watson Buckets. Tie approximate location of the exception to the source code using PDB files created during compilation.
Calling unmanaged C++ code from C#
Interop, arguments and return values must be marshaled
1st most recent .NET experience
Created alternatives to the .NET provided serial port endpoint class to work around problems with the Silicon Labs virtual com port driver. Built test code to exercise these endpoints.
2nd most recent .NET experience
Debugged multithreaded serial communication code in PLEX-ID that was causing device response to appear to be delayed.
3rd most recent .NET experience
Created LIS interface for PLEX-ID. An optional service interfaced with the PLEX-ID backend and, using a legacy ASTM 1394 LIMS library, communicated results via a serial port or network socket. The legacy library was accessed via a new managed interface that took that bottlenecked the library’s old, wide, interface through a new XML based one that I introduced.
4th most recent .NET experience
Added audio alerts to the m2000 instrument. This included creating a user interface for configuration of the alerts.
NGE Development Activities
I developed firmware for stepper motor/pump, valve, heater block control and cable sensing. I also developed the process scheduler and inter-module communications.
NGE
The NGE firmware project was with Jim Keevan, Julius Toth, Floyd McInally and Tyler Hall, a contractor associated with the principle electrical engineer, Ron Kukula.
NGE Processors Modules
The project was designed around several ARM-based processors and an AVR processor for heater block control.
NGE Development Environment
GNU tool chains for ARM and AVR processors using the Eclipse IDE.
PLEX-ID
The PLEX-ID desalter project was initially designed and coded by a prototyping house, Omnica, for Ibis. When Abbott bought Ibis, responsibility for the desalted firmware was taken in house by me.
PLEX-ID Development Activities
In addition to maintenance, documentation, bug fixing and the creation of a controlled build environment, new features where added.
PLEX-ID Processor Modules
The desalter was designed around 32 (11 distinct) 8051 based modules. 30 of these modules reside on a CAN-bus to coordinate the actions preformed by each module. The desalting assay is pipelined via a carousel of 22 spin mixer modules to bring the throughput to a well processed every 30 seconds.
PLEX-ID Development Environment
Development was through the Kiel 8051 tool chain using the Silicon Labs IDE.
Tell me about yourself
I’m a software engineer of more than 20 years. As the field is constantly changing, I’ve have found it to fit well with my life-long love of learning. I’m eager to learn and use new technologies.
Why should we hire you?
I’m an excellent programmer, competent with both C++ and C# with a broad range of talents. I’m equally at home analyzing and debugging others work as I am designing and coding my own. The last 5 years I have been involved with embedded software development. Prior to that I worked on large medical diagnostic applications. I enjoy learning new technologies and bringing a fresh perspective to their use.
Why do you want to work here?
I’m motivated by the opportunity to create something important and beneficial to others. This gives my effort meaning beyond a pay check and drives me to do good work.
What is your greatest weakness?
I can sometimes be too frugal. I have tried to address this by being more introspective and critical of my choices and their rationale. An instance of this occurred when I was debugging infrequent randomly dropped characters in the serial connection between the SCC and the PLEX-ID. It was not certain where the responsibility for the dropped characters lied. The virtual serial port USB connection to the desalter was suspect, but that was difficult to prove. I started with frugal approach to avoid an expensive USB sniffer, but soon realized that being able to quickly eliminate half of the search for the bug would be more valuable than the cost of the sniffer.
What is your greatest strength?
I’m persistent and thorough in tackling difficult problems. An instance of this recently is finding the cause of an intermittent error closing and reopening a virtual com port. Lacking a readily reproducible way to cause the problem, I set up a test bed using spare SCC, Desalter boards and other parts around the lab. This allowed long running test code to eventually trigger the problem while I worked on other tasks. Different potential solutions could be tested. After trying a number of different host serial port end point implementations, the problem was shown to be an issue internal to Windows XP that has since been remedied in Windows 7.
Lazy/RT pattern
A design pattern conceived by Ian Poole and me to form the principal architecture behind the Quips genetic image analysis software. The pattern manages a representation of multiple application states in an computationally efficient manner. The pattern works hand-in-hand with the classic Visitor pattern.
Visitor Pattern
A classic, Gang of Four, pattern that decouples structures from the operations on them using type safe double dispatch.
Double dispatch
A method for virtual binding based on two run time types, the visitor and the visitee,