============ Dave Kuhlman ============ :contact: dkuhlman (at) davekuhlman (dot) org :address: Sacramento, CA USA http://www.davekuhlman.org :date: |date| .. |date| date:: %B %d, %Y Introduction ============== I am retired. I am not looking for work or employment. However, if you have a project that you think might interest me, I'd enjoy a conversation. The following may help give you some idea about my interests. Bio === Dave Kuhlman has worked for many years on a variety of software development projects, in several programming languages, and on more than one platform. Because of Python's clear syntax, developer friendliness, and broad utility, Dave focuses his energy on the Python language and systems built with it. And because of a perceived future need for programming with concurrency, Dave is learning and working with Erlang. Dave has taught and is prepared to teach several entry level classes on Python and Jython. Dave's current work platform is Ubuntu GNU/Linux but also works on MS Windows. He has installed and administers a small network composed of several Linux boxes. Skills ====== - Python programming. - Python extensions and embedding. - Training in Python and Jython. - Processing and generating XML and HTML -- Parsers, generators, parser extensions. See, for example: http://www.davekuhlman.org/generateDS.html - Erlang programming. - Elixir programming. See: - http://davekuhlman.org/erlang-elixir-data-structure.html - http://davekuhlman.org/elixir-poolboy-erlport-datasci.html - Ruby programming. See: http://www.davekuhlman.org/ruby_course_03.html - Training in Ruby. - Node.js programming. See: http://www.davekuhlman.org/nodejs_course_01.html - Linux -- Much of my work is done on a Linux box and a small set of networked Linux machines that I administer. See: - http://davekuhlman.org/environment-and-tools.html - http://davekuhlman.org/raspberry-install-raspian.html Relevant Work ============= Here are projects on which I do active work: - generateDS.py -- Generates Python data bindings and data structures and XML parser from XML Schema. Implemented in Python. See: http://www.davekuhlman.org/generateDS.html - odf-odt writer -- A back-end (writer) module that enables users of the Docutils documentation package to translate reST (reStructured Text) documents into ODF documents for the OpenOffice/LibreOffice word-processor. The odf-odt writer is written in Python (as is all of Docutils), and uses ElementTree/Lxml XML libraries to construct the XML contents of an ODF (Open Document Format) for the OpenOffice/LibreOffice word processor. - Python training courses -- See: - http://www.davekuhlman.org/python_101.html - http://www.davekuhlman.org/python_201.html. - Python documentation -- I've compiled the notes for my Python training into a book. See - HTML -- http://www.davekuhlman.org/python_book_01.html - PDF -- http://www.davekuhlman.org/python_book_01.pdf - ODF -- http://www.davekuhlman.org/python_book_01.odt - Django: - Implementation of several small, trial Web sites on top of Django. Work with the following features: Django URL routing; Django templates and template language including template inheritance and extension; definition and use of the Django ORM (object relational mapper) to define and use database models; and implementation of "view" methods that extract data from the Django request object and feed data into a template. - Implementation of a code generator that generates Django database models from XML schemas. - Erlang -- Because most computers in common use are multi-core machines, there will be a significant need for writing and managing concurrency, at which Erlang excels. Therefore much of my current efforts have been directed at learning Erlang, writing Erlang code, and supporting Erlang development. In particular: - I've developed a set of templates that assist in the use of Erlport to spawn and communicate with Python processes from Erlang (see: https://github.com/dkuhlman/erlport_templates). - Also, because of the importance of developing high availability Web sites, I'm working with ChicagoBoss, an Erlang Web framework, and have developed a template for implementing a Websocket controller for ChicagoBoss (see: https://github.com/dkuhlman/cb_websocket_controller). - Currently, I'm working on the development of an OTP behavior that is an extension of the ``gen_server`` behavior and that assists with the implementation of cellular automata. And, here are projects that are old, but may be of historical interest: - Python extension module for libxml SAX parser interface. - Python extension module for libxml DOM parser interface. - Python extension module for libxslt XSLT processor. - Text editors implemented in and extensible in Python. - PySgrep -- A Python extension module that exposes the capabilities of the structured search engine sgrep. - libxmlop -- Python XML SAX parser driver for PyXML implemented as an extension to libxml. See Open Source projects available at my Web site at http://www.davekuhlman.org Employment History ================== - Intel Corporation, Folsom, CA -- Programming in Python. Work on top of WxPython in support of the graphic front end for an SSD (solid state device/drive) testing platform. Support and extensions for the underlying Python code implementing that testing platform. Development and testing on both MS Windows and Linux. Work with the Mercurial DRCS (distributed revision control system) and the Atlassian JIRA issue tracking system. This position was a 6 month contract; it was extended for an additional 6 months. (11/2011 to 11/2012) - Training assignments -- Various contract assignments teaching Python programming language. A typical training course included 3 to 4 days on beginning Python and object-oriented programming in Python, then 1 to 2 days on more advanced topics of particular need for the client company, for example, processing XML with the Python ElementTree XML library, relational database access with the Python database API and Oracle, etc. (various dates) - Micro Focus (Merant), Mountain View, CA -- C++ programming. Embedding the Python programming language in a multi-threaded application. Generation of HTML and XML. A Java parser for the XML definition of a Web page. A Python parser for the XML definition of a Web page. 2/1996 to 1/2001. - Guild Products, San Mateo, CA -- C Programming. Compiler/translator design and implementation using yacc/lex. Design and implementation of the Guild UIMS (User Interface Management System) as a member of the Guild project team. Support and maintenance of Guild. C++ programming for a database compiler and decompiler and a database browser/editor. 1/1988 to 5/1994. - MITEM Development Partners, Cupertino, CA -- C programming. Design and implementation of subsystems for a microcomputer based terminal emulation system. 8/1986 to 9/1987. - IntelliCorp, Mountain View, CA -- C programming. Occasional Lisp programming. Design and implementation of a frame-based knowledge representation system in C. 1/1985 to 4/1986. Education History ================= - University of California, San Diego, CA -- Graduate classes (compiler design, operating system design) -- Computer Science. - University of Arizona, Tucson, AZ -- M.S. -- Computer Science. - San Francisco State College, San Francisco, CA -- M.A. -- Philosophy. - University of California, Berkeley, CA -- B.A. -- Philosophy. .. vim:ft=rst: