Kris Warkentin 535 Kirkwood Avenue Ottawa, Ontario K1Z 5X2 Phone: 613-866-7762 Email:cewarken@gmail.com WWW: http://www.cruftysite.com OBJECTIVE: Skilled software professional with proven abilities in many types of development looking to continue expanding broad skill set. Accomplished at troubleshooting and debugging difficult problems with the ability to understand overall architecture requirements as well as the smaller but equally important details. A solid team player that enjoys all aspects of the software development process. SKILLS: Languages: C, C++, Java, Assembler, PHP, Perl, Python, Shell Scripting, SQL Operating Systems: Microsoft Windows, Linux, OSX, QNX, FreeBSD, Solaris, Android, Blackberry Software: GDB, Subversion, Git, Busybox, uBoot, Grub, Git, IDA Pro, Visual Studio WORK EXPERIENCE: 10:2010present AppZero Software Corporation (formerly Trigence), Ottawa, Ontario Senior Software Developer, Virtualization Develop lightweight application virtualization solution for Windows. Re-implement registry path virtualization and implement registry value merging. Implement 'VAAScope' tool for examining and troubleshooting virtual application appliances. Implement Windows service to allow non-admin users to manipulate virtual appliances. Redesign and re-implementation of management layer C++ APIs Design and implementation of public C APIs for third party developers. Language binding generation for Python, Java, C#, etc. using SWIG. Migrate Subversion repositories to Git, implement IT infrastructure for repository management and train staff. Fix bugs and implement features in virtualization runtime layer. Decompile/disassemble Windows libraries to reverse engineer APIs using IDA Pro. Redevelop 64 bit dll interception code to support newer Windows versions. Responsible for code reviews company wide. Mentor junior developers and co-ops. Design and implement new features such as file and registry syncing, Flexera licensing, remote caching, symlink resolution, etc. Work directly with customers to solve application specific migration problems. Key Technologies: Windows, C, C++, assembler, SWIG, Git, IDA Pro. 03:201009:2010 Mapleworks Technology, Gatineau, Quebec Senior Software Developer, Smartphone Development Customer driven custom design and development of applications for Blackberry and Android phones. Work closely with customers to develop mobile applications which integrate tightly with their backend servers using XML over SSL. UI design and implementation. Key Technologies: Blackberry, Android, Java. 07:200802:2010 Xandros Corporation, Ottawa, Ontario Senior Software Developer, Core OS Team Linux kernel and system development for x86 and ARM. Configuration, compilation, patching, and bug fixing. Worked to integrate Android and Moblin into Xandros products. Evaluation of new hardware/initial board bring-up. Implement system inactivity monitor daemon for power-saving. Customize device drivers (audio, video, network, etc.) for autodetection, codec selection, etc. Monitor kernel development community for new patches/bugfixes, backporting and adapting as necessary. Implement various scripts for such tasks as device auto-detection, installation and setup, wireless network configuration, laptop hot-keys, system standby, etc. Optimize kernel for battery life. Customize uBoot and initramfs to restore factory defaults using aufs/squashfs. Fastboot optimization to boot linux in under 10 seconds using tools such as bootchart. 'Presto' linux distro which installs to and boots from a Windows partition. General debugging and fixing of whatever various and sundry problems arise with any modern operating system. Wrote Python build system to automatically download source RPMs, convert to Debian packaging and build. Key Technologies: Linux kernel, C, C++, Scripting, Busybox, uBoot, Grub. 01:200706:2008 Trigence Corporation, Ottawa, Ontario Software 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 07:200512:2006 QNX Software Systems Limited, Ottawa, Ontario Technical 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. Create routine to clear YUV video memory layers in Coral video driver. Key Technologies: C, shell, device drivers, embedded development, Eclipse, QNX 09:200006:2005 QNX Software Systems Limited, Ottawa, Ontario Programmer, 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-2000Computer Science Department, Thunder Bay, Ontario Solaris/Linux System Administrator Install, set up and administer Sun Enterprise 4500 server and several Linux servers. Install and administer heterogeneous 50 machine network. (Linux, Windows, Solaris, BeOS) Summer 1999 Dr. Chinh Hoang, Lakehead University, Thunder Bay, Ontario NSERC Grant for Undergraduate Research Research and development in the field of graph theory. Created C++/QT tool for visualizing and manipulating graphs. EDUCATION: 19972000 Honours Bachelor of Computer Science Lakehead University, Thunder Bay, Ontario Twice recipient of Returning Student Scholarship for Outstanding Academic Achievement. (88%-1998, 90%-1999) Winner of Dean of Science Medal for Outstanding Academic Achievement. Recipient of School of Mathematics Prize for Computer Science.