harry lachenmayer

I help businesses & individuals to create mobile & web applications that solve their needs, by developing apps, managing development teams, and defining product roadmaps.

I am currently taking on new projects. Please get in touch if you’d like to work with me.

Skills & Interests

Many software development projects fail, or take much longer than anticipated, because the requirements and scope are not precisely defined up-front, or change throughout the development process. I often speak to people who tell me they need a developer, but I often find that I can help them much more effectively by helping them discover and define their requirements precisely, and presenting these requirements in a way that is useful to developers. Especially for bigger projects with many stakeholders, this process vastly reduces the amount of uncertainty, stress, and ultimately, the total cost of the project. As such, I have acted as product manager and technical project manager on various projects, and have helped companies set up their product development process before hiring their first full-time product manager.

As a professional developer, my current tools of choice are React & React Native, TypeScript and GraphQL. For web apps, React is by far the most mature & widely-used framework available. React Native uses the same underlying technology, but can be used to create mobile apps. Apps written in React Native can be launched on Android & iOS simultaneously, without duplicating development effort for each platform, and without having to hire experts for both platforms. Indeed, most web developers who are familiar with React can quickly become very effective mobile developers using React Native, with a little bit of guidance. TypeScript and GraphQL are effective tools for ensuring that most bugs happen during development time, instead of while your app is in your customers’ hands.

I mostly use JavaScript and Rust in my personal and open source projects. I have also written code professionally and/or academically in Python, PHP, Elm, Haskell, Java, C++ and others. In my spare time, I have tried many other programming languages, tools, libraries and paradigms. Ideologically, I subscribe to (Alonzo’s) Church of pure functional programming with static type systems, but I will settle for less. I believe in “Worse is Better”, but do not accept it as an excuse for bad code.

My personal interests lie close to the ‘distributed web’ movement. I currently have a particular interest in the ‘hyper-stack’ surrounding the Dat project. I have written a number of proofs of concept and technical guides, have contributed minor features and bug fixes, and have led technical workshops explaining the core concepts of this stack.

I am also interested in the future of programming environments, which was the focus of my Master’s thesis at Imperial College London. My project presentation is the most accessible introduction to this work.

I enjoy trying to make complex technical topics accessible, especially to younger and/or non-technical audiences. I have delivered many technical workshops & presentations to students, and have some experience teaching computer science fundamentals & app development.

I prefer working in small teams, so that I can have a personal connection with everyone involved in the project, but I have also worked for some of the largest tech companies in the world.