Question - is it a mistake to try to learn to code and dig into our existing codebase?
Contemplating revisiting Codecademy and learning how to code myself. Mostly be tweaking existing code, minor updates, some back end functionality and some UX enhancements. Would love to dig into core functionality but being realistic that this is a big jump.
Context:
- been bootstrap building a financial modelling/calculation platform for the past four years. Tech is pretty complicated.
- non-technical founder w/ a full time job; did Engineering 20+ years ago (so have somewhat wired for dev work) and have invested $150K-200K building out the tech; mostly done with comp-sci co-op/interns. Have a Fractional CTO w/ 25 years experience but he isn't programming - mostly just high level guidance
- finally have a solid v3 of the software that solves real problems and is stable-ish (but expecting bugs, calculation issues , UX issues, and some RFEs)
- some early adopters and minor revenue but early days.
- can't really afford to continue to pay folks to build this out anymore until we get the revenue cycle going
- most of my devs have wrapped out at this stage; have one junior FE dev with some knowledge of the backend
Thought Process:
- obviously would distract from my current primary focus; biz dev, sales and marketing
- not sure how naive I am to think that I can "figure this out" on my own or that something like Codecademy would get me far enough along
- am actively sourcing a technical co-founder as a Plan B
- if I can do some of these tweaks, updates and maintenance on my own, it increases my runway and, in theory, supports potential users. Some momentum is better than no momentum.
- am looking for Angel Investment but expecting that to take some time. Without a lot of traction, most investors are not interested until this changes.
"am actively sourcing a technical co-founder as a Plan B" -- there is a typo I think that's plan A
Touché!
I have been actively looking for quite some time but having very little success. Understandably - most folks are looking for a level of financial compensation beyond just equity - not something that I can support right now until the revenue flywheel starts spinning.
I might be wrong, and it's just my gut feeling: how sure are you about " have a solid v3 of the software"? The way it was developed gives me lots of deja vus: Non coding CTO + interns. It does depend what non coding CTO means, did he stop coding last year or like 12 years ago does he have experience in the same tech stack? Did you have any code review with a coding senior with solid experience in the same specific technologies?
If the code is a mess chances are its close to impossible for one to learn on it. Even if you do, you will trow some other bad code at it and i'm not sure how much will it sustain. You can end up in case where you fix a bug and add 2 more because of the bad code added and bad code existing
If the code is really good and you manage to learn, you might have slim a chance that code can endure some beatings from you as a junior before reaching more revenue and get a more senior dev to save it.
IMO the way mid-complex projects should be developed is: one single dev that is mid- senior level, that leans more toward pragmatism than perfectionism, say 70-30 % the balance.
I would recommend working with juniors supervised by a senior just for small projects that will get the job done and do not need to be extendable or maintainable.
Learning how to program is gonna be essential for your in every way of aspects either way when looking forward of all the possibilities you can achieve. I would say go for it.
anyone who is actually engineering the product always has a bias for the product to make it more perfect. if you have an MVP which is working solid just focus on getting more and more users.
Plus, there's nothing bad in learning code at any stage but you need to figure out if you want to do it out of need and desperation or really could add value to it.
Go for it 👍 What can you lose? You already have nothing, you can only win at some point, right? Calm the situation down, take it easy, and try to survive learning to code until/and if it takes off. I know it sounds grim, but what else can you reliably do?
Oh, and by the way, you might discover some unpleasant facts about your code base along the way :D
Get your hands dirty and dig in.
We all have been there and at times you also must have felt like you could have done a better job then your best developer :D
Don't consider this as a full time role, think of it as an all hands on deck type of situation in which you NEED to do this to survive.
Just learn the basics and power through!
You Got This.
Definitely feels like a mistake. There's no telling what kind of things you will learn the hard way once you start changing things. It'd be a non-life-threatening version of me opening the hood of my car and then seeing what happens when I start pulling wires.
Bringing on a CTO who codes is a much better option, though I understand if that is quite difficult by itself. And don't feel like you can't dive in and learn to code, it's just that it will take quite awhile to get comfortable with your app's code as a whole.
up
Seems like you need someone to join the project as a CTO who codes. Learning to code on a fairly complex system that has already burned that much $, wouldn't be the best use of your time (IMHO).
Get a tech co-founder and you guys can both excel at what you do.
your plan B should be your plan A . Your product looks fairly technically complicated to me and even experienced developer would have to spend some time to understand the codebase. Learning to code and than understanding the code would put more pressure on you and there is a risk of burnout.
My thoughts are same as yours i.e. it would distract you from your primary focus of biz dev.
What i would do instead is focus on decreasing the ramp up time for new, inexperienced developer to your codebase so i can hire interns cheaply to manage my product and afford the churn as they go away for greener pastures.
You should make sure that there is extensive documentation for your code base on how to build, how to deploy, design documnets for each of your features and how and where they map into your codebase, list of workarounds, etc. If it is not there than i suggest you use your existing junior dev to do so. This would be useful even if you decide to dive into the codebase yourself . Once your existing dev goes away it would be uphill task as your fractional CTO is also not coding, is he reviewing the code atleast? if not who is ensuring the quality of code?
Maybe you can hire interns from developing nations, they will get experience on working on commercial project and you can get them for free or low cost.
What is the current tech stack of your project?
Thanks! Great points.
This has been the plan for the past few years actually - have cycled through 8 co-op/interns from the local university. In general, has been a very successful. The roll over in domain knowledge though and legacy is catching up to us. The true price is lost velocity and there is still a real world cost with junior devs, ramp up time, etc.
We're at the solid(ish) prototype version that we can charge for and offers value - but definitely going to be rough edges and refinement still required.
Exploring overseas options - like a senior p/t dev that can firefight critical issues on an as needs basis.
Plenty of posts out for technical co-founders from YC to here to to Angelist to Microconf. No success yet...
Tech Stack:
all the best hopefully you would find someone.
"Exploring overseas options - like a senior p/t dev that can firefight critical issues on an as needs basis."
"firefight critical issues" not sure how that would work: one usually needs a senior coder to make sure you have correct architecture/ patterns and good quality code, those are the real root causes and "critical issues" usually is just the symptom.
"Exploring overseas options" - keep in mind that it's not plug and play, there is lots learning involved in order to do that right, but it seems much more doable than learning to code and be successful. The reason they are cheap is that there are huge cultural differences, but mitigating that seems more realistic. If i were you i would do a tradeoff, would not go for the cheapest and biggest cultural differences, but look somewhere in Central and East Europe or South and Central America. My guess is that for full time at $ 3-4 k / month + little equity you might find right candidate. If you have any questions let me know. Wish you all the best!
You will be stretching yourself thin. I would try to find someone with more experience to help you. A problem that could take you months to solve could take a more experienced person a few hours. Learning to code would probably be best as an investment for the long game.