I am Steve Phillips, a professional software/firmware developer and a hobbyist game developer.
As a software developer, I work with .NET and Qt. My preferred language is C#, although I work heavily with VB .NET. I use C++ occasionally for embedded systems or cross platform projects.
As a firmware developer, I write C for PIC microprocessors. I have experience with 16-bit MCUs and have utilized CAN, RS232 and USB HID communications protocols; digital and analog sensors; DAC and PWM outputs. I have extensive experience with high precision research equipment, mainly in fields related to mass measurement, gas analysis and activity detection.
My high-level development style tends to favor rigid OOP principles with a focus on loose coupling and high cohesion. I am a follower of Design Patterns: Elements of Reusable Object Oriented Design and frequently apply the patterns in that book to my code to keep it maintainable, reusable and readable. In addition, I often analyze my code through the principles in Refactoring: Improving the Design of Existing Code and refactor as needed to keep my work stable.
My low-level development style favors finite state machines and functional programming, since these styles tend to have fewer unexpected situations when following a very well defined directed graph state map. I am familiar with algorithmic theory and try to optimize algorithmic order of growth, both for processing speed and memory usage.
- Armadillo, the codename for a Strategy RPG made in XNA.
- A turret, driven by an Arduino controller and a Wii nunchuck, using a Nerf Rayven CS-18 gun.
- Signals, a collection of C files that provide signal smoothing, search and sort functionality.