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.
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.
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. Later ported to Go.
Forum software on Google App Engine. Open-source, hobby effort.
Technologies used: Python, Google App Engine. Later ported to Go to run on generic Linux server.
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.
Noah Lite, Noah Pro
Several commercial application for Palm OS and Windows Mobile: English Thesaurus, English Dictionary, wireless WikiPedia client, wireless information manager.

Technologies used: C++ for Palm OS/Windows Mobile.

iNoah, iPedia, InfoMan required a backend service written in Python, using MySQL for database and full-text search running on Linux server.
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++.
Employment history
Folsom Labs 2016/5 - 2017/03 Senior Software Engineer. Working on solar design software. Writing JavaScript (ES6) front-end code, backend Python code. Implemented a service in Go for indexing Lidar data and http api micro-service for providing a point cloud data for a lat/lng area.
Self Employed 2015/5 - 2016/4 Working on dbHero and QuickNotes
Nitrous 2015/2 - 2015/5 Senior Software Engineer. Writing Go code for the backend part of web-based IDE as well as front-end code in JavaScript.
Triggit 2013/10 - 2015/1 Senior Software Engineer. Writing backend code in Go. Wrote micro-service for resizing product images at scale. Wrote web-based visualizer for statistical information about product catalog. Contributed to real-time bidding platform.
OpenDNS 2009/03 - 2010/06 Senior Software Engineer. Wrote OpenDNS Dynamic Updater, OpenDNS Diagnostic App, OpenDNS Netgear client (Windows/Mac desktop apps written in C++/C#,Objective-C)
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 Foleo 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. 10+ years of professional programming experience.

Advanced Go, JavaScript, C and C++, Python.

Advanced Windows OS programming.

Experience programming on Unix.

Programmed in: 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.

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

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 and communication skills.
Education French engineering degree equivalent to Master of Science
in Telecommunication/Computer Science from ENST de Bretagne, France, 1998