Seeds grow in the underground

Welcome

Underjord is about solving technical problems and strengthening teams. With a decade of professional full stack experience, many years of technical leadership roles and two decades of deep investment in tech and open source I'm happy to provide my skillset to a wide range of businesses. The things I've learnt about creating, maintaining and running software systems and products through hard work is what I offer my clients. I've gone deep and I've gone wide. I'm looking forward to sharing what I know with your team, leveraging my skills to solve your problems and helping your business land in sustainable, maintainable and scalable software.

I can provide mentorship, teaching, roadmapping and in-depth technical work. The important part is what you and your team needs. My clients work with me because of clear communication, deep technical experience and reliable results. As an added benefit I have a strong network of freelancers that I can access on my client's behalf to find the right person for specialist work. I'm fairly tool agnostic and have done plenty of work with Elixir, Python, PHP, Javascript (& Node.js) and almost anything everything in Web tech.

Get in touch at lars@underjord.io
- Lars Wikman

Clear communication, easy to work with and solid deliveries.
- Olle Nyman, Loops Education


"More than one thing at a time"

2020-06-17

On a recent Elixir Outlaws episode Chris Keathley told us all a nice story of the advantages of Elixir as opposed to Ruby. His frustration with Ruby and appreciation of how Elixir works resonate at the frequency of my own frustrations and joys. I believe my titular quote is accurate, that's one of the primary things he noted. How nice it is to use a runtime that can do more than one thing at a time.

Read more

WordPress & the gross inefficiencies

2020-05-22

My recent work with WordPress revived a frustration I built up while working with software from that era of the 2000's. Drupal, WordPress, Joomla and friends. Whenever you visit a page, the system will generate it from scratch.

Read more

The WordPress merging problem

2020-05-18

WordPress is approximately the most popular CMS out there. I've worked with it plenty over the years, off and on, as clients, employers and others have needed websites.

Read more

A wall too tall - Nerves & k3s

2020-05-06

Short update on the general state of things. Pandemic quarantine in full swing. Me and mine are doing fine. Thankfully. We are staying at home awaiting a baby. I'm likely to be fairly sporadic for a few months. But I do intend to keep writing. Most of my blog posts are written to be useful in the longer term. If you want more in-the-moment writing, the newsletter is more temporally anchored publication (signup further down, no pop-up).

Read more

Self-evaluation improvements

2020-04-21

A little while back I released a tool for self-evaluating as a web developer. I have just now updated it to include some explanation and guidance for things topics where the learner indicates a need for it.

Read more

Check yourself - Web developer self-evaluation

2020-04-08

I've been thinking a lot about inexperienced (junior, if you must) web developers and just how much there is to learn about programming in general but the web in particular. You often hear people say that you don't need to know everything but you should have a solid foundation. Well, how do you establish a solid foundation and how do you know if you have one? How do you get introduced to all the relevant terminology and how do you find out what you haven't learned yet?

Read more

I always want to do it all

2020-03-09

My brain has very little chill on a day-to-day basis. There are moments where I can find a very peaceful state of mind. Doing something menial in the garden for an extended time, cooling off outside after a while in a sauna, winding down after heavy exercise. At most other times my mind is usually working on something or I'm itching with the need to do things.

Read more

Lumen - Elixir & Erlang in the browser

2020-01-23

The Lumen Project is an alternative implementation of the Erlang VM, more known as the BEAM. It is designed to work in WebAssembly with the specific goal of bringing Elixir and Erlang to the browser.

Read more

Why am I still excited about Elixir?

2020-01-20

A good ol' while back I wrote about why I'm interested in Elixir. I think that deserves some follow-up.

Read more

Ecto & Multi-tenancy - Prefixes - Part 3

2020-01-10

This should be the final piece of this saga. Previous parts can be found here:

Read more

A Slight Delight - Compile-time checking things

2020-01-06

This was a short-but-sweet thing that struck me while working with a client code-base. It was trivial but both useful and delightful and it is a type of thing I haven't been able to do in Python, PHP and Javascript in quite the same way.

Read more

Elixir - Signing for Cloudfront resources

2019-12-20

This covers how to create Signed URL Custom Policies with Cloudfront in Elixir.

Read more

Happy little screens (with Elixir)

2019-12-16

So me and Emilio Nyaray made Inky. We built on top of what was there from Nerves and Scenic and in the end we had the Inky series of eInk displays for Raspberry Pi devices working with Nerves through Elixir. Cool. That was a fun trip I've covered previously:

Read more

Consider signing up for the Elixir Radar

2019-11-08

If you have an interest in the Elixir ecosystem I think the Elixir Radar newsletter is useful resource. I followed it even before I had any real opportunity to work with Elixir or Phoenix but it helped in keeping me up with conference talks, interesting blog posts and assorted other stuff. I recommend it.

Read more

Ecto & Multi-tenancy - Dynamic Repos - Part 2

2019-11-01

In the first part I covered the basics of getting started with Dynamic repositories with Ecto. Using that post we can create one or more repos at runtime, create the necessary database, run migrations to get it ready and then direct queries to it. That's a good start. Building blocks for something better. I'll try to get into the better bits here.

Read more

I was on a podcast

2019-10-23

You can listen to it here.

Read more

Ecto & Multi-tenancy - Dynamic Repos - Part 1 - Getting started

2019-10-14

Ecto is the database library we know and love from the Elixir ecosystem. It is used by default in Phoenix, the high-profile web framework. Ecto has a bunch of cool features and ideas. But this post is about a corner full of nuts, bolts and very little of the shiny or hot stuff. It just covers some rather specific needs. Ecto docs for these features are this guide and this API. But that is usually not the whole picture. I'll try to cover some of the practicalities.

Read more

What I'm up to - Mostly Elixir things

2019-10-03

While I'm writing something a bit more involved and substantial I figured I could give an update on what I've been doing. Mostly around Elixir. But I'll cover a few different things.

Read more

Why a newsletter?

2019-09-12

So I'm launching a newsletter. The sign-up is at the bottom of the page, it won't pop up here, so read on in peace.

Read more

Case Study: Inky - An elixir library

2019-08-09

This is a post covering the creation and refinement of an open source project within the Elixir ecosystem. More words than code. Be warned.

Read more

Artisanal software - Beyond pragmatism

2019-07-15

Whenever we design and create software we need to pay attention to the trade-offs we are making.

Read more

An eInk display with Nerves & Elixir - Getting started with Inky

2019-07-07

So I've been curious about what kinds of displays you can connect to the Pi-series single board computers for a while. I happened to accidentally order a few. Among others an eInk display. I ordered the PaPiRus ePaper. It ended up being dead on arrival and then out of stock so I received an Inky to replace it. Fair enough.

Read more

Inky library released!

2019-07-04

Me and nyaray finally finished up our work on the Inky eInk display library to a level where we are happy to release it. So Inky 1.0.0 is now out on Hex! Docs are on there too.

Read more

Revitalizing valuable legacy systems

2019-06-24

Do you have a system that is vital to your business that your development team seems to have given up on? Do they consider it old, slow, complicated or impossible to work with? Are they pushing heavily for a rewrite?

Read more

Why am I interested in Elixir?

2019-06-11

I’ve had Elixir on the brain recently. And by recently I probably mean 2 years. In my defense I think it is fair to say it is blooming right now. I haven’t had much need of it, or opportunity for it, in my day-to-day of maintaining a Python legacy system, renewing another legacy or optimizing Elasticsearch. So I’ve tried it with a few hobby projects I’ve spent time on and that was fun. But mostly I really just watched the community and what they did with a feeling of “Shiiiit, I want in on some of that!”. I'll primarily touch on BEAM, OTP, Phoenix Presence, Phoenix LiveView, Nerves, Scenic and Rustler.

Read more

Scenic - Getting started from scratch

2019-05-20

This post covers setting up a Scenic project in the Elixir programming language. It briefly covers the default method but largely dives into adding Scenic to an existing project, which covers the different parts that Scenic requires to run.

Read more