High Performance Software Architecture and Development
- Conceptualization, design and development of bespoke, high-performance, scalable ANSI C/C++ software systems on Unix/Linux based platforms
- Specialization in networked, multicore, multithreaded and parallel software systems and architectures
- Adaptive, agile development process minimizes risk and engages directly with the customer to produce a superior solution
- Multi-platform and cross-platform configuration management and build systems using Jam and gmake
- Experienced with the development of online games, distributed simulations, transaction execution engines, search frameworks, in-memory databases, expert systems, and special purpose Internet content servers
- Object Databases (Versant, ObjectStore), CORBA, MPI, Myrinet MX/GM middleware
- Linux, FreeBSD, OS X, OpenSolaris, HP-UX and HP Tru64 operating systems
- IA-32, IA-64, PowerPC, SPARC and MIPS microprocessors
Multicore Software
- Software design and development for multicore systems including pipelined processing engines, video decoding and encoding, transaction execution engines and concurrent networking systems
- Technical analysis of existing software, hardware and threading APIs for future multicore implementations
- Migration and porting of existing software to multicore-aware versions using specialized tools and techniques
- Performance analysis and software instrumentation for multicore systems
Embedded Systems
- Software and solution development for digital microprocessor controlled systems, system-on-chip, digital signal processors and microcontrollers
- Embedded operating systems and embedded web application programming with a Linux specialization
- Specific experience with Broadcom BCM74XX HD AVG system processors
- Finished systems with integrated GUI, USB peripherals, LCD panels, keyboards and hardware encryption modules
- ARM, XScale, x86, MIPS, PowerPC, TMS320, ADSP/Blackfin, AVR, MSP430 platforms
Software Optimization
- Correction and optimization of performance issues using advanced code profiling and compiler optimization techniques
- Integrated system, application and microarchitecture optimization strategies
- Optimization solutions for SIMD vectorization, branch mis-prediction, memory problems, cache problems and processor-specific microarchitecture problems
- Optimization using Intel IPP and Math Kernel Library on Linux and OS X
Technical Consulting
- Technical consulting for software development projects, including systems architecture, system feasibility, requirements review and development, design review, test plan development, coding standards and guidelines development, and independent evaluations of existing projects
- Training and mentoring programs in advanced C++ tools and techniques
- Training in multicore software development using Intel development tools
Services Brochure
Download our services brochure.
