2007-present | Trigence Corporation, Ottawa, OntarioSoftware Developer Sustaining engineering work on Linux and Solaris application virtualization software. Debug, enhance and improve complex product with components written in C, C++, assembler, Java and shell script. Solve problems with customer deployment of complex systems such as Oracle, JBoss, Tibco, Clearcase, etc. Redesign and improve build configuration (automake, autoconf, etc.) Re-engineering of SOAP interface. Integration with management tools such as Nagios and Sun Management Center. Add instrumentation for performance profiling of syscalls along with new exit upcall to print gathered information. Write assembly and C code to create per-thread execution stacks for kernel to user-space calls preventing application threads from overwriting stack boundaries. Rewrite symbolic link resolution code to search multiple namespaces and thereby enhance learn mode to support on-the-fly copying with multiple sources and targets. Add support for per-capsule loopback interfaces. This involved shell scripts to manage interfaces, additions to user-space utilities to inform kernel module of capsule status and kernel code to track socket connections and correctly route binds to correct interface/port.
Key Technologies: C, C++, assembly, shell scripting, Java, Linux/Solaris kernel, TCP/IP, SOAP |
2005-2006 | QNX Software Systems Limited, Ottawa, OntarioTechnical Account Manager/Software Developer, Engineering Services Group Primary support contact for customers. Provide technical support and project guidance. Software development/custom engineering as required. Responsible for entire life cycle of customer project from board bring-up and device driver implementation to application development and maintenance. Contribute to wide variety of projects including network routers, vehicle entertainment and navigation systems, medical imaging devices, and audio-video systems. Add startup and utility support (I2C) for Phillips 8583 clock chip. Develop image library to use shared memory to reduce image overhead between applications. Write Eclipse plugin to edit config files of above image lib. Create routine to clear YUV video memory layers in Coral video driver.
Key Technologies: C, shell, device drivers, embedded development, Eclipse, QNX |
2000-2005 | QNX Software Systems Limited, Ottawa, OntarioProgrammer, Core Development Tools, Tools Group Develop and maintain development tools targeting QNX Neutrino from Linux, Solaris, Windows and Neutrino. Primary GDB Maintainer. Primary Utilities maintainer which includes porting and development of new tools. Secondary maintenance and support of compiler, linker and assembler. Wide range of tasks ranging from implementing an XML parser to writing network servers, build configuration management to java IDE development, system administration to kernel development. Use and support a variety of tools and languages such as C, C++, Java, shell scripting, make, assembly, bison, flex, etc. Work with several architectures including Arm, PowerPC, MIPS, SH4 and i386. Perform security audit of setuid software. Supervise co-op student project. Maintain, and enhance Neutrino support in GDB. Prepare patches for submission to public FSF branch. Work with GNU tools on Linux, Windows, Solaris, and Neutrino. Develop software to install Neutrino packages on Solaris, Windows and Linux. Write caching daemons for optimization of FlexLM licence lookups on above hosts. Wrote tiny, Expat compatable XML parser for embedded systems using Lex and Yacc to create non-validating implementation of XML 1.1 specification.
Key Technologies: C, C++, Java, shell, XML, assembly, embedded, QNX |
Fall 1998-2000 | Computer Science Department, Thunder Bay, OntarioSolaris/Linux System Administrator Install, set up and administer Sun Enterprise 4500 server. Build, install and maintain CS department's Linux server. Install and manage heterogeneous 50 machine network. (Linux, Windows, Solaris, BeOS) Standard sysadmin duties from hardware/software installation, security and tech support.
|
Summer 1999 | Dr. Chinh Hoang, Lakehead University, Thunder Bay, OntarioNSERC Grant for Undergraduate Research |
Summer 1998 | Center for Northern Forest Ecosystem Research, Thunder Bay, OntarioGIS Technician/Programmer |
Spring 1998 | Campus Technology Resource Center, Lakehead University, Thunder Bay, OntarioTechnician |
Jan – Aug 1997 | Acheron College, Gravenhurst, OntarioSysadmin/Tech Support/Tutor Assist with maintenance of small Novell network in adult education facility. Provide technical support to users with both hardware and software problems. Help teachers with tutoring and curriculum building.
|