resume - cruftysite.com

advertisement
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.
Download