Lars
Wiegman

Software engineer and licensed Linux professional with nine years experience building web solutions. Maintainer and contributor of open source software. Willing to help others, eager to learn, open to feedback, resourceful, reliable and upbeat. Special interest for automation, security and open source.

Public profile on Github and StackExchange

lars@namsral.com
www.namsral.com
Alkmaar, Netherlands

Embedded Software Engineer
freelancer at WifiProfs
Jan 2016
Experience Bootstrapped custom firmware for OpenWRT based routers to collect smartphone telemetry data. A challenge on a device with only 4MB of RAM.
[Shell, Go, Python, tcpdump, Wireshark, pcap, OpenWRT]
Go Engineer, Backend Developer
freelancer at DutchCoders
Jun 2015
Designed and developed the backend of a Two-Factor Authentication (2FA) service where end users are authenticated using JWT and public-key cryptography.1
[Go, PostgreSQL, JSON API, JWT, RSA, RAML]
Go Engineer, Backend Developer
freelancer at Leadmotion Inc. NY
Jul 2014
Designed and developed an intermediate service to enable content providers to charge smartphone users through their mobile operator. The service was written in Go (Golang) and tested with mock interfaces which greatly improved code quality.2
[Go, PostgreSQL, Ansible, DPKG, Microservices]
Backend Developer, Linux Administrator
personal project at Setch
Jan 2013
Developed a service for expats to access geo-blocked content. A DNS recursor was built in Go (Golang) to route HTTPS traffic on a per user basis.
[Go, Python, Flask, PostgreSQL, Redis, Ansible, TLS SNI, DNS]
Python Engineer
freelancer at Sm2sp
Jun 2012
Developed client/server software for embedded devices in an IoT environment to collect metrics from smart meters using the low-power ZigBee wireless protocol.
[Python, Shell, IoT, Wireless M-Bus, ZigBee]
Consulting Linux Administrator
freelancer at Robin Telecom Development
Feb 2011
Designed and built a High Availability Linux Cluster based on the Linux KVM and DRBD technologies to host a voice recorder SaaS solution.
[Linux, KVM, DRBD]
Python Engineer, Release Engineer
freelancer at Robin Telecom Development
Mar 2010
Co-developed a SaaS solution for small businesses to replay phone calls. This required processing large amounts of email messages containing audio and CDR data.
[Python, Shell, Postfix, DPKG, make]
Lead Systems Administrator
employee at CyberTech International
Jan 2005 - Sep 2009
Setup and managed a mixed Linux/Windows environment providing over 120 local and remote workplaces. Supervised assistants and advised management.8
[Linux, Windows, PfSense, ESXi, Xen, chroot, LDAP, NFS, DNS, Routing, VPN]
Go Engineer, Software Maintainer
Multipass (OSS)
Sep 2016
Projects Stateless microservice providing password-less authentication by using one’s email address as proof of identity. Available as a standalone binary and as a Go package.
[Go, JWT, HTTP, SMTP, Travis CI]
Software Maintainer
Apicius (OSS)
Dec 2015
Apicius is a build tool with a collection of predefined recipes to build app container images (ACIs) for Kubernetes and compatible with the App Container specification.
[Shell, CoreOS, rkt, Containers, Systemd, GnuPG]
Project Lead, iOS Developer, Webmaster
Paddle Battle
Aug 2010
Co-developed a two player space shooter for the iPad which received 55 stars on launch and was downloaded 25k times. Game logic, graphics and audio were developed in-house from concept to final product.
[iOS SDK, Objective-C, Python, JavaScript, CSS, HTML]
Cryptographic Theory and Practice
Jun 2014
Education Completed the online course by Stanford University that covered the theory and practice of cryptographic systems.
Microsoft Certified Professional MCSA
Aug 2008
Microsoft Certified Systems Administrator for Windows Server 2003 Domain environments.
Linux Server Professional
Jul 2004
LPIC-1 certified at the Linux Professional Institute for managing Debian GNU/Linux and Red Hat based systems.
European Baccalaureate
Jul 2000
Pre-university, bilingual education at the international European School in Bergen (NH)
Solid understanding Skills
  • GNU/Linux
  • Go, Python, Shell, Makefile, SQL, HTML and CSS
  • Best practices building stateless, cacheable and uniform backends
  • Building CLI tools based on the Unix philosophy
  • Software development with MVC, DDD, TDD and CI
  • Online security using TLS, RSA and GnuPG
  • Setup and manage POSIX and BSD environments
  • Core web technologies like HTTP, DNS and CDNs
Experience
  • Perl, PHP, Elixir, JavaScript and Objective-C
  • Software packaging like nixpkgs, dpkg, opkg and pkgsrc
  • Container runtimes systemd-nspawn, rkt and Docker
  • Container orchestration and replication with Kubernetes
  • Provisioning tools Ansible and SaltStack
  • Administering services like PostgreSQL, Nginx, Redis, Prometheus, Postfix
  • Distributed configuration, logging and monitoring
  • Google and Amazon cloud platforms
  1. My role as a software engineer was to design and develop the RESTful API consumed by mobile-clients and 3rd party cloud-services. The API is developed in the Go programming language along with an API client to test the API endpoint along the way. Requests are authenticated using a derivative of OpenID Connect using JSON Web Tokens (JWT) and public-key cryptography. This greatly simplified the codebase and the operations of deployment. To assist the mobile developers the documentation was written in the RESTful API Modelling Language (RAML).
  2. One of the challenges in this project was to integrate with a third party API to handle payments with international mobile operators. As every payment initiates a stack of asynchronous requests the Go programming language was chosen for its concurrency patterns. Implemented RFC 7807 to standardise error handling in HTTP responses.
  3. To maximise hardware utilisation and anticipate company growth of 30% on a yearly basis most onsite infrastructure running services like Windows Domain Controller, Exchange, SharePoint, SVN and Trac were virtualised using Xen and VMWare ESXi hypervisors.