Keywords: Unix, computer networks, systems programming, system architecture, computer security, Free and Open Source, investigations, technical advice.
Name: Michael Cardell Widerkrantz.
Location: Malmö, Sweden.
Email: mc at the domain hack.org.
Permits: Swedish citizen. Work permit in all European Union member states.
References: Other contact data and references are available on request.
Technical expert and systems programmer with focus on computer networks and Unix based server applications.
Technical advice (both pre- and post-sale) on computer networks and infrastructure, especially regarding systems deploying Free and Open Source Software (FOSS).
Design and development of infrastructure server programs, network analysis tools, management tools and simulation software.
Design and development of communication protocols, especially network protocols.
Porting and custom development of primarily C programs in a Unix-like environment.
Advanced Unix system administration.
C: Expert. Very active C programmer since 1988, primarily in a Unix environment.
Perl: Experienced.
Python: Experienced.
Bourne shell: Experienced.
Forth: Experienced. Experienced both as a Forth programmer and as a developer of Forth systems.
Assembler: Intermediate experience with assemblers of at least these architectures: CRIS, ARM, VAX and PDP-11.
Knowledgable of many “little languages”, for instance Emacs Lisp, Make, sed, awk, lex and yacc/bison, among many others.
Unix: Expert. Unix programmer since 1991. The systems include such operating systems as FreeBSD, Linux, Solaris, Ultrix and many others, including some odd birds, such as Diab's D-NIX.
Experienced Unix system administrator, primarily of FreeBSD and Debian GNU/Linux.
Some kernel programming competence in FreeBSD and Linux.
OpenVMS: Some experience in program development.
Plan 9: Some experience in program development.
Experience primarily as a programmer using Berkeley DB, dbm derivatives, PostgreSQL, MySQL and Oracle.
Some experience as database manager of MySQL.
The POSIX.1 Systems API, BSD Sockets (including IPv6), raw TCP/IP, Tibco/Rendezvous, X Window System, and many application level protocols such as NNTP, SMTP and FTP among many others.
Almost daily experience since 1991 of the Unix/GNU environment with, for example, tools such as Emacs, make, GCC (and other Unix C compilers), GDB, GNU binutils, strace/truss/ktrace, et cetera.
LaTeX, troff and friends as well as both XML and SGML DocBook and similar DTDs.
Many years of experience with CVS and the predecessor RCS.
Some experience with Subversion and Perforce.
Some experience with Git.
Native language: Swedish. Fluent in English. Understands and reads some German.
I'm used to writing technical documentation and to prepare and hold presentations for both technical and non-technical audiences.
Here are some of the things I have done, in reverse chronological order. The first bullet is the newest completed assignment. The last bullet is from 1989. For a more formal CV, contact me by e-mail.
Note that this list is mostly focused on design and development, but I have also many years of experience as a Unix and network system administrator. I have installed and maintained many Unix systems and I still do.
I have also been maintaining (and porting) development tools, infrastructure servers such as mail, DNS, CVS repositories, automatic builds and bug reporting tools in many roles. I have also administered both large local networks and WAN links.
Furthermore, I have given technical advice on free and open source software, infrastructure servers, development tools, computer networks and architecture to many large companies, among them the Swedish Post, Scania, Telelogic and other companies.
Developed a window manager for the X Window System using XCB. See http://hack.org/mc/hacks/mcwm/ for more.
Helped fix a Firefox bug (C++) where TCP connections for MJPEG streams didn't close after use.
Helped bring IPv6 to a company, both for servers and the office network. My own network has been on IPv6 as far back as 2002 with 6to4 tunneling, later other tunnel techniques and native IPv6 from the summer of 2008.
Developed a client-side implementation in C of the RDNSS option in IPv6 Router Advertisments (RFC 5006). See http://hack.org/mc/hacks/radns/.
Developed a middle layer between a Linux device driver and application for a new generation video chip for a camera.
Did some maintainance on GDB and porting and development of JTAG debugging tools for the CRIS and ARM architectures using C under Linux.
Helped with chip verification of new generation System-on-Chip using C and Linux.
Designed and developed an RTSP/RTP proxy in C designed to run on Linux servers.
Designed and developed a network analysis tool in C for MJPEG pushed video content. The tool sniffed the network and showed a list of existing MJPEG streams passing by on the network. If the user chose one, they could see the video stream in real time as it passed the sniffer node.
Helped design, plan and develop software for a huge distributed system scalable to hundreds of thousands of simultaneously connected Axis cameras, reachable through a web portal. My work was mostly in the systems area, not the web programming.
Helped develop several control daemons in C for a VPN appliance with hardware red/black separation and hardware cryptography known as SecuriVPN, later used by the Swedish Armed Forces as Krypteringsapparat 920 (or Kryapp 920).
Participated in the design and development of the network behaviour of the Kryapp 920.
Designed and developed of tools for emulation in C of the VPN appliance Kryapp 920.
Designed and developed network tools, including network protocols, for cryptographic verification and network analysis in C and Perl.
Installed and configured an emulation and test network for the development of Kryapp 920. Development of a series of automatic network test programs for the testbed in C, Perl and Bourne shell.
Developed access control lists on a newsgroup level in C for the INN Usenet News server with Berkeley DB. Wrote a Perl module and associated Perl programs for administration. Configured and installed the patched News server, an MTA, the configuration tools and a web-based News client under FreeBSD.
Did a pre-study of an implementation of the Intrusion Detection Exchange Protocol. Helped start an implementation of the IDXP protocol in C.
Developed a proof of concept for a distributed filesystem service in an ISP setting for thousands of simultaneous users with AFS and Samba.
Helped develop and maintain DHCP/BGP/DNS software in Point of Presence nodes developed from scratch for use in an ISP setting.
Helped integrate ISP provisioning services using Tibco's TIB/Rendezvous by designing and developing a TIB/Rendezvous to LDAP gateway in C.
Developed an IP spoofing syslog server with filtering support in C for Solaris for use with Cisco Infocenter installations.
Did a a state of the art investigation on e-commerce systems, including a proof of concept development of a new distributed e-commerce system in Python. I also worked on development of seller side API libraries in C on Unix systems.
Designed and developed simulation tools in C for use under FreeBSD, Linux and Solaris for research on Quality of Service in computer networks.
For a robotics company I participated in writing a device driver and building a complete customised Linux distribution with fully automatic installations programs in C.
Developed application proxies in C for the Linux-based Fuego Firewall (now developed by Ingate Systems AB).
Helped in designing and developing a complex web-based time reporting system using Python and PostgreSQL.
Developed a screen scraper in Perl to interface with an aging X-ray booking system running on a Diab DS90 under D-NIX.
Did a pre-study on the feasibility of a PC-based MRI watching station, interfacing with General Electric and Siemens MRI systems.
Developed a proxy in C under HP-UX to a national address database to lookup postal addresses for hospital patients.
Participated in developing a carrier scale voice mailbox platform with support for thousands of simultaneous users, at the time known as the OpenVoice system.
Voice messages were stored on a specialized filesystem developed in-house, but the operating system was plain AIX on off the shelf Bull DPX/20 hardware (at the time this was IBM RS/6000 systems in disguise). The only non-standard hardware involved was the trunk interface. All other functionality was in the software developed by us; a unique solution at the time.
Developed tools in C on AIX for data extraction and aggregation for statistical purposes from a brand of operator telephone switches.
Built, and developed tools to be able to create, a professionally used firewall from scratch from a little used Diab DS-90/3x with D-NIX.
Wrote a locked-down VT100 terminal emulator for use in a school library to access the city library through an automatic dial-up connection using Turbo Pascal under MS-DOS.
Last updated: <2010-05-19 16:05:51 MEST>