Consulting Services
Full-Stack Developer
This is a pretty loaded term, and means a variety of things to different people. I mean it in 2 senses:
-
I can build software from beginning to end: design the software, write back-end code, write front-end code,
write & optimize queries, write tooling to manage the code, write tests, build the production environment,
manage tests, manage deployment, and so on and so forth.
-
I am a proud generalist. Chances are you can find people with more expertise in any one or two aspects of
building a modern application that I listed above - and that's fine. There are very few people with
as broad-ranging experience across the sum of those aspects as I have. I can have in-depth discussions about
optimization trade-offs with both front-end developers and data-teams. I can build a great front-end experience
and make sure that your containerized deployment plans all run smoothly. I can discuss the business goals of a
feature with management & marketing, then work with senior engineers to deliver that same feature.
Over the past 5 years, I have deployed code in well over a dozen different languages, across a variety of stacks.
Chances are that I have experience with your particular stack.
Need something built?
I can help.
Platform Architect
I've designed a number of applications over the past 20 years, and can help you build yours. I'll listen to your
ideas, and work with UX professionals, engineers, marketing, etc to design and plan an application that does what
you need. We'll start with an application design workshop, build spec, and plan out the sprints required to get to
an MVP.
Have a great idea?
I can help.
Technical Manager
I love technical management. I've hired, mentored and run technical teams for over a decade. Whether
bringing on junior staff and helping them get that first taste of success, or working with senior engineers to
help overcome herculean tasks, I can make your team better. I take pride in the success my former staff have all
gone on to experience. Want to know more about how I run teams?
Read my Leadership Principles
Need help running your team?
I can help.
Common Tasks
One of the most exciting aspects of my work is that there are so many ways I get to work with clients. A mix of
visionary leadership and pragmatic implementation; making hard business-driven decisions and evaluating
cutting-edge technology. Below is a list of tasks I commonly provide to clients:
- Code Audit: I evaluate all your existing code. this is not a judgemental review of
either the quality of existing or the worth of the staff who wrote it; rather it is a collaborative process
with your team - identify current goals and match the codebase against it. Discover levels of technical
debt, security risks, optimization opportunities, and go/no-go decisions about updating or rewriting either
sections of or entire codebases.
- Improving Process & Communication: Many small teams, or non-traditionally-technical teams
struggle both with their engineering process and internal communications between technical and non-technical
staff. Working with your team, we'll identify opportunities for improvement, measurable metrics, and an
implementation plan, then work alongside your organization to implement the changes.
- Technical HR: Over the past 20-odd years, I have been part of hiring scores of staff that run
the gamut of modern software practices: UX professionals, developers, QA, technical writers and more. If you
need help expanding your hiring pool, evaluating applicants or even just identifying what roles you may need to
hire next, I can help.
- Writing Software (old & new): As a co-founder and CTO of a software consultancy, I wrote
software for dozens of clients - from scrappy startups needing help with a prototype to enterprise-level
organizations needing new software. I've also been brought on board by dozens more to fix projects that had gone
awry under other developers, or to resuscitate software that was no longer aging gracefully and in need of
immediate attention.