I used to work as an independent consultant specialising in software
development, security analysis, devops, and system administration
focusing on FreeBSD, OS X and Linux.

Most of the software I work with is released under liberal licenses,
so called free, libre and open-source software. I also maintain
some software projects.

I've written network protocol parsers, some kernel code and many *nix
server programs. I've worked with many different languages and
platforms, ranging from assembler to Python, but currently prefer
Go/golang when I'm not writing Emacs Lisp to customize my main
environment, Emacs. I've done very little GUI programming with one
notable exception: an X11 window manager called
mcwm.

What you can expect of me

Design and development in Go (Golang), C, Perl and Python under
Unix-like operating systems.

Typical work include design and implementation of network protocols,
writing network server programs, network tools and systems software,
often in prototyping or proof-of-concept scenarios.

Porting and custom enhancements of programs in Unix-like
environments.

If you want a buzzword compliant list of things I think I know
something about, see my technology profile.

What I expect

In a job or an assignment I expect to spend most of my time looking at
an Emacs frame, writing Go or C code (not C++!), typically compiling
under FreeBSD or Linux. Some of the time I write Emacs Lisp, Perl,
Python, awk, Bourne Shell or rc scripts to help me in my work.

During a typical day some time is also spent pouring over network
traces from tcpdump or Wireshark or similar tools.

Most of the documentation I write using Emacs, either writing plain
text or markup such as LaTeX or a troff macro collection. Markdown,
RestructeredText, txt2tags or similar non-intrusive markup either in
text files or a wiki is also OK.

I work mostly from home. I keep in touch with co-workers mainly
through e-mail messages and mailing lists. Colleagues are also
available on XMPP, IRC or a similar chat service. Pair programming, if
applied, is done with Mumble, SIP or similar open technology with
readily available free software clients. We use tmux or the venerable
screen for simple screen sharing.

After working at most seven hours in a day, including a one hour
lunchbreak, I go and fetch my youngest child from daycare.