/  pdf

Daniel Lublin – Software developer & factotum

contact: d at surname dot se

Skills & knowledge

I have extensive hands-on experience of software development and all sorts of information systems. I’m of a pragmatic problem-solving orientation. As a generalist, I move freely between technologies. Comfortable in diverse, changing environments and enjoying interdisciplinary work.

Social and communicative, with much experience of working together with new people. Our systems are often built in cooperation, and should in any case be constructed to be cared for collectively. Prefer simple and readable solutions, promoting reliable and maintainable software.

I am not afraid to try new things, to experiment and tinker. Iterate until success. Always learning and sharing the knowledge.

My knowledge spans all the way from systems design and development in various languages, on diverse platforms and at various levels of the stack – onto deployment and server administration. Striving for correctness and efficiency. Leveraging suitable tools and practices for working productively in a cooperative manner. No stranger to working remotely, in distributed teams.

Service integrations, using APIs over suitable channels, or talking IPC. Metrics, data collection, processing, and database storage. Version control, code-review and issue-tracking systems. Tooling, build systems, integrations, and testing. Automation all around.

Buzzwords for that:

I like to see development as a craft. As a practitioner of this craft, I know the importance of being familiar with my tools. I do get a lot of things done on the command-line, which leans itself well to automation.

Talkative section

I do development around, not limited to: text-, network- and web-oriented systems, standardized and own protocols and APIs, databases, automation, data processing, system integrations. Both lower and higher levels of the stack. Adaptation, integration and new solutions – often based on common, free software.

I have much experience of networking, Internet services and infrastructure, and I’m familiar with various protocols and server implementations. Both professionally, and from running services privately, hacking on code, reading RFCs. Buzz: TCP/IP, IPv6, iproute2, iptables, arp, DNS & nameservers, HTTP(S), SMTP, DHCP, IRC, XMPP, NTP/NTS. SSH, VPNs, TLS, certificates and CAs, OpenPGP, …

I’ve hacked a fair amount Go, and I find myself productive in this language, and will happily use it instead of C for various systems and problem domains. Recently, I have again been hacking together with some friends on a Go implementation of Network Time Security (NTS) extensions for the Network Time Protocol (NTPv4). I have also had fun writing twet, which is an interface to the minimalist, decentralized micro-blogging service called twtxt (participants tend to write their own clients, in their language of choice!).

I write text that is version-controlled and readable, often in Markdown. I built an artist portfolio using Pandoc templates and some shell script: samanehroghani.com. A static site, except for a little client-side Javascript for gallery navigation.

Coming to think of it, I have recently become more interested in visualization, graphing and such. With some friends I’m running a mesh-network Pjodd.se that provides free WLAN Internet-access on the streets of Malmö. I built a small tool using D3.js to graph this mesh, which has been very useful when building the network. I’m also looking at metrics collection and visualization using tools like Prometheus and Grafana.

Mapping and GIS is also fun, and I recently dabbled with some Javascript, using Leaflet to map some photographs of past journeys. This involved some code in Go to dig out photo metadata from Digikam’s Sqlite database.

I’m spending a little time on exploring Rust. There is a lot to learn about the language, but there is a lot of good documentation, and the compiler is very friendly. So far, I’ve used it to write a few lines of code to display the time on a 7-segment display hooked up over I2C to an old Raspberry Pi. I also tried using it to solve some of 2018’s Advent of Code challenges, before time got eaten. I’m also maintaining a small IRC bot that utters the titles of mentioned URLs, fetched over Tor.

Assignments and experience

Volvo Cars, Lund
November 2017–July 2018 (through Stickybit AB)

Axis Communications, Lund
September 2016–August 2017 (through Stickybit AB)

Beijer Electronics, Malmö
June–August 2016 (through Stickybit AB)

Netnod Internet Exchange, Stockholm
April–November 2015

During 2003–2011 I undertook, among other things, several longer journeys. Large parts of these by hitchhiking, but that’s way too many stories for a cv.

I was previously a C++-hacker and general factotum for an online RPG in Göteborg. Before that I was hacking at Roxen in Linköping, makers of early web servers.