Michael “MC” Cardell Widerkrantz
mc [at] hack.org
These days I mostly work with software development at the non-profit Netnod Internet infrastructure organisation.
Netnod provides operator neutral Internet exchange services, runs one of the DNS root servers and other DNS services, and delivers the official Swedish time among other things. My own company is mostly resting.
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.
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.
Security analysis of software systems and computer networks.
Reverse engineering and analysis of programs and network protocols.
Setup of complex systems using devops tools, especially Ansible.
Detective work to figure out how your system was set up and migrating to fully documented automated tools (Ansible) under version control (preferably Git).
Support for system administrators.
Technical advice (both pre- and post-sale) on programming, security, computer networks, servers and infrastructure.
If you want a buzzword compliant list of things I think I know something about, see my technology profile.
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.
Last updated: <2017-07-03 19:05:28 MEST>