I'm a full-stack software developer with two decades of experience. I've worked all over the place: small & big companies, government, startups both funded & bootstrapped. You name it, I've done it.
Over the years I mostly focused on shipping great software to delight my customers. I progressed from a new graduate all the way up to Principle Engineer before moving into a formal leadership position to lead a team.
The most fulfilling part of leading a team was working with my younger devs to help them level up and achieve their goals.
That's now my entire world as a freelance engineering coach.
Let's connect! You can learn all the details about me and my coaching service over at:
My website - www.colefichter.ca
Lox - written in Erlang, this is an interpreter for a small JavaScript style language. This repository follows along with the amazing (and free) online book Crafting Interpreters by Robert Nystrom. It chronicles my ongoing interest in, and work to master, compiler implementation techniques.
DistributedMapReduce3 - this multi-part tutorial project walks learners through building a fully peer-to-peer MapReduce data processing engine in Erlang.
NRake - my C# implementation of the Rapid Automatic Keyword Extraction technique. Used in a large-scale content audit and analysis tool.
NBoilerpipe - my C# port of the Java boilerpipe project. It was used to detect and separate boilerplate markup from real content in a large-scale content audit and analysis tool.
The last couple of years my focus has shifted. I spent many years in engineering: building complex systems to solve hard problems for real people. Lately, I've moved up a level of abstraction to what I like to think of as 'meta-engineering': I now build high performing teams of other devs who themselves build complex systems to tackle big challenges for their customers.
In some ways this new focus is even harder. I have to keep my technical skills sharp and my wits about me, while also nurturing relationships, leading teams, mentoring, teaching, hiring (and, unfortunately, firing), sales, marketing, research, and a bazillion other daily tasks while running my own business.
Most of my career has been spent building custom distributed systems to solve big technical challenges for my customers. I’ve built crawlers, search engines, little languages, interpreters, fault-tolerant and parallel systems, as well as CRUD line-of-business software for all kinds of use cases.
I value quality, robustness, and ease of maintenance.
As a programming language nerd, if I don't have production experience in your favourite language, I've almost certainly dabbled with it in my spare time. Below are a list of tools that I use most in my paid work.