Meet our Team
Jonathan has a deep knowledge about building development languages and has a profound understanding of programming paradigms and best practices.
- Software Architecture
- Compilers and runtime environments
A meeting with management to help them understand how to apply Domain Driven Design and get business value from it. Implementing type-driven optimizations in a compiler. Delivering a class on software architecture, helping students to grasp and understand new concepts.
It's all in a typical week's work for Jonathan!
Whether it's architecting, coding, teaching or mentoring, Jonathan is at home. He has an eye for elegance and simplicity, and loves to take something that seems difficult, get to the heart of the complexity and make an easy to understand solution. At Edument, Jonathan spends his time teaching, helping clients to tackle complexity in their software development and delivering solutions to some of their trickiest implementation challenges.
A consultant since 2006, Jonathan is also a very active open source contributor, and a popular speaker at a range of international workshops and conferences.
Specific competence areas
- .Net Framework (including ASP.Net)
- Compiler and runtime environment design and implementation
- Higher order programming techniques
- Object orientation and meta-models
- Web development
- Web security
- Version control with Git
- Consultant for TN DataKonsult AB
- Core developer on the Rakudo Perl 6 Compiler
- Lead developer at Programmer’s Heaven (development site)
- Lead developer for WallCreate (online canvas art specialist)
- Microsoft Professional Developer
- Microsoft Certified Trainer
- First class honors degree in Computer Science from the University of Cambridge.
Teacher for courses
News & feeds
Now we launch Comma
Now we are launching the beta version of Comma, an IDE for Perl 6 developers that will streamline their work.Read more >
Our view of Vue
Configuring CMake for success
One common question I get on our Advanced C++ course is how the project structure should look, e.g. should I split the source code into multiple directories? How can I introduce unit tests? Should I compile into multiple libraries?
Each project is unique in what it needs, so in this blog post I’ll go over my general preferred setup and then look at how we adopted it for C++ on Android where we also interface with Kotlin/Java.Read more >
Working Remotely… Very Remotely
Does your job let you travel? Do you want it to? Our job does! And we're taking advantage of it! Read all about our plans for remote work... very remote work. #waaayoutofofficeRead more >