Home : Resume

Krzysztof Kowalczyk

San Francisco, CA

How to contact me How to get in touch with me.
My software Software that I wrote or contributed to, roughly in chronological order. My open-source projects are at github.com/kjk and code.google.com/u/kkowalczyk.
QuickNotes is a web-based note-taking application. Backend in Go running on Google Cloud Platform (Compute Engine, Cloud Storage, Cloud SQL).
dbHero is a GUI database client for PostgreSQL and MySQL. For Windows and Mac.
The Silver Searcher windows port
Ported The Silver Searcher from Unix to Windows.
Technologies used: C.
pigz windows port
Ported pigz from Unix to Windows.
Technologies used: C.
Open Garden
As a contractor working for Open Garden, I've implemented a new installer for Windows app, silent auto-update system for Windows app, crash reporting system for Windows app, adapted open-source tap driver for use in Windows app, wrote new installer and silent auto-update system for Mac app, crash reporting system for Android app, wrote continuous integration buildbot for Windows, Mac and Android apps.
Technologies used: C++, Objective-C, Python.
App Translator
Web service for crowd-sourced translations.
Technologies used: Go, Unix.
Small, fast, object-oriented, embedded database engine for C#/.NET.
Technologies used: C#.
A windows application for finding free stock photographs.
Technologies used: C#, WPF.
VisualAck for Mac
Like grep (or ack) but with GUI.
Technologies used: Objective-C, Cocoa (Mac native UI framework).
OpenDNS Dynamic Updater
Informs OpenDNS server about changes of IP address in a user's computer.
Technologies used: Objective-C, Cocoa (Mac version), C++/Win32 API (Windows version).
OpenDNS Diagnostic App
Diagnose DNS issue.
Technologies used: Objective-C, Cocoa (Mac version), C#/Winforms (Windows version).
OpenDNS Netgear Client
OpenDNS settings management utility for Netgear routers. Shipping with OpenDNS-enabled Netgear routers.
Technologies used: C#/Winforms.
uTorrent for Mac
Took over unfinished code from a contractor. Finished and shipped first version.
Technologies used: C++, Objective-C, Cocoa.
uTorrent for Windows
Contributed code fixes and mac/unix port of the core (non-ui) code.
Technologies used: C++.
BitTorrent SDK for Devices
Principal author of the SDK.
Technologies used: C++.
Blog engine
I wrote my blog from scratch.
Technologies used: Python, Google App Engine.
Forum software on Google App Engine. Open-source, hobby effort.
Technologies used: Python, Google App Engine.
PDF viewer for Windows. GUI part designed and written from scratch, using raw Win32 APIs for maximum performance. 75+k lines of C++ code, around half written by me. Performance improvements to existing pdf rendering engines. Open-source, hobby effort.
Technologies used: C++, Windows API.
Engine behind Apple's Safari browser. Contributed Windows and Linux/Gtk fixes. Received commit rights and review rights for the Gtk port
Technologies used: C++, Linux/GTK+ API.
Pdf viewer for Foleo
Written from scratch by me at Palm for cancelled Palm Foleo.
Technologies used: C++.
Messaging for Palm Treo
SMS/MMS messaging application for Windows Mobile-based smartphones, shipped on Treo 750 and later. Part of 3 person team that wrote the application from scratch (60k lines of C++ code in total).
Technologies used: C++, Windows Mobile API, SMS, MMS, COM.
Small application that implements GUI version of Unix's tail for Windows. Open-source.
Technologies used: C#, WinForms.
Small application for previewing CVS and Subversion checkins. Open-source.
Technologies used: C#.
Wireless information manager for Palm OS.
Technologies used: C++, Palm OS API for the client. Python and MySQL running on Linux server for the backend.
Encyclopedia for Palm OS, MS Smartphone and Pocket PC (now known as Windows Mobile)
Technologies used: C++, Palm OS API, Windows Mobile API for the client. Python and MySQL with full-text search running on Linux server for the backend.
Wireless dictionary for Palm OS, MS Smarphone and Pocket PC.
Technologies used: C, Palm OS API, Windows Mobile API for the client. PHP, Apache, MySQL running on Linux server for the backend.
Thesaurus for Palm OS.
Technologies used: C, Palm OS API.
Noah Lite, Noah Pro
English dictionary for Palm OS. Implemented very good and fast compression so that definition lookup was fast and yet didn't consume all available memory. At the time Noah Lite was the most popular program for Palm OS (as judged by PalmGear download statistics, more than 500.000 downloads).
Technology used: C, Palm OS API, Lisp, custom-designed compression scheme for dictionary data.
AOL Server
Ported AOL Server (HTTP server like Apache) from Unix to Windows, including an libxml-based nsxml module and PostgreSQL drivers.
Technologies used: C.
Microsoft SQL Server
Part of a team working on XML technologies (implementing XML Schema as part of XQuery query language).
Technologies used: C++, XML, SQL, XML Schema, XQuery..
Microsoft Exchange
Part of a team working on store, a core exchange component.
Technologies used: C++.
French dictionary
Java applet. School project, part of 3 person team. Designed and wrote storage backend for efficient transmission of definitions over HTTP.
Technologies used: Java.
Web-based english-polish dictionary
Web front-end to english-polish dictionary.
Technologies used: perl, CGI, Apache.
Dictionary for DOS Port of Amiga's english-polish dictionary to DOS, in C.
Technologies used: C, DOS.
Dictionary for Amiga In high-school wrote an english-polish dictionary for Amiga OS, in 68000 assembly. GUI viewer and editor for editing dictionary database.
Technology used: Amiga OS, 68000 assembly.
Employment history
Folsom Labs 2016/5 - now Working on solar design software at Folsom Labs
Self Employed 2015/5 - 2016-4 Working on dbHero and QuickNotes
Nitrous 2015/2 - 2015/5 Senior Software Engineer
Triggit 2013/10 - 2015/1 Senior Software Engineer
OpenDNS 2009/03 - 2010/06 Senior Software Engineer
BitTorrent, Inc. 2007/04 - 2009/02 Senior Software Engineer. Principal author of BitTorrent SDK. Contributed to uTorrent windows client. Co-author of uTorrent Mac client.
Palm, Inc. 2004/12 - 2007/04 Software Design Engineer. Part of 3 person team that wrote, from scratch, SMS client that shipped on Treo 750w (Windows Mobile version).
Designed and implemented from scratch PDF viewer for Foleo (not released because Folea has been cancelled).
Fixed bugs and stability issues in overall system software on Treo 700w/wx.
ArsLexis 2003/05 - 2004/11 Entreprenur. Designed, developed and sold software for Palm OS, MS Smartphone and Pocket PC: Thesaurus, Noah Lite, Noah Pro, iNoah, iPedia, InfoMan. Developed the website, handled marketing and customer support, sys-admined Linux server etc.
Microsoft Corp. 1999/01 - 2003/05 Software Design Engineer. Worked as a programmer on Microsoft Exchange and Microsoft SQL Server.

Skills Expert software engineering, software design, software construction skills. 13+ years of professional programming experience.

Advanced Go, Python, C and C++.

Advanced Windows OS programming.

Mac OS X programming.

Experience programming on Unix.

Programmed in: JavaScript, Java, C#, SQL, Perl, PHP, x86 assember, Lisp, Scheme.

Know about: TCP/IP, XML, networking protocols (HTTP, POP3, TELNET, FTP, SMTP), HTML, web technologies, Unix administration, databases (MySQL, SQL Server, Postgress), web servers (Apache, AOLServer), SMS, MMS, XML Schema

Expert debugging skills: used Visual Studio, WinDBG, cdb, gdb. Assembly-level debugging on x86, ARM and 68000.

Extensive experience with source-code management tools (git, Subversion, CVS, internal Microsoft tool).

Familiar with profilers (used Microsoft's internal profiler tools to diagnose and fix performance problems in Exchange. Used valgrind on Linux and AQTime on Windows).

Good writing skills

Education French engineering degree equivalent to Master of Science
in Telecommunication/Computer Science from ENST de Bretagne, France, 1998