TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: I've lost faith in myself as a developer, how do I get it back?

318 pointsby cwitty88over 3 years ago
I've been a software developer for about 12 years, the last 8 of which I have been the CTO of a company that is growing like crazy. Recently I have been doubting every move that I make and have lost all faith in myself as a developer. When I look at a new feature I just think that I will make it shitty or get called out on not doing things the "right" way. The thing is, I know I'm a decent developer but I find myself doubting every single decision that I make. Is this burn out? How can I get out of this funk and move on?

116 comments

bgroatover 3 years ago
Is it possible that you&#x27;re not making the &quot;right&quot; moves <i>because</i> you&#x27;re the CTO?<p>Leadership is <i>hard</i> and it&#x27;s hard because you&#x27;re making bayesian calculations on suboptimal choices. Almost by definition.<p>Say a Jr. dev has a problem that they can&#x27;t solve. They kick it to an intermediate.<p>The intermediate can&#x27;t solve it so they kick it up to a senior.<p>The senior can see a couple of solutions, but want&#x27;s to run it past the architect.<p>The architect takes these options, weighs them against n number of considerations + the dev roadmap and sees strengths and weaknesses to all of them.<p>They package those pros and cons and brings them to you, the CTO to make a decision between these sub-optimal choices.<p>In this kind of environment EVERY move you make is going to be a little bit wrong. You just kind of have to minimize the wrongness
评论 #29571126 未加载
评论 #29571535 未加载
评论 #29568967 未加载
评论 #29569423 未加载
评论 #29570069 未加载
评论 #29572673 未加载
评论 #29577088 未加载
评论 #29571475 未加载
nickjjover 3 years ago
I highly recommend reading the Linux kernel management style guide at <a href="https:&#x2F;&#x2F;www.kernel.org&#x2F;doc&#x2F;html&#x2F;latest&#x2F;process&#x2F;management-style.html" rel="nofollow">https:&#x2F;&#x2F;www.kernel.org&#x2F;doc&#x2F;html&#x2F;latest&#x2F;process&#x2F;management-st...</a>.<p>It has this gem of a quote:<p><i>&gt; It helps to realize that the key difference between a big decision and a small one is whether you can fix your decision afterwards. Any decision can be made small by just always making sure that if you were wrong (and you will be wrong), you can always undo the damage later by backtracking. Suddenly, you get to be doubly managerial for making two inconsequential decisions - the wrong one and the right one.</i><p>It goes on to mention that most technical decisions fall inline as small changes and why.
评论 #29571684 未加载
评论 #29572335 未加载
评论 #29571543 未加载
评论 #29573710 未加载
anyonecancodeover 3 years ago
It does sound like burnout, and also like not being in the right environment (which contributes to burn out). I had one job where there was a lot of technical debt, but my manager did not respect me and my colleagues had what was basically a &quot;learned helplessness&quot; attitude. So I&#x27;d go around trying really hard to make things better, but everyone responded to me like I was just crazy or naive or didn&#x27;t know what I was talking about. Thankfully my previous job had been one where I had earned a lot of respect from my colleagues and managers, so I knew that I wasn&#x27;t the problem, but even knowing that I found the doubt starting to creep in.<p>I left. My new job has lots of tech debt, lots of processes that are broken, but when I propose changes people listen. When I put in the work I can see progress. It&#x27;s hard work and frustrating, but I know that it&#x27;s because the problems I&#x27;m tackling are hard, not because I&#x27;m a failure or lacking. That&#x27;s a very different environment.<p>I can only give a very broad bit of advice here -- having a positive, open environment is very important. Gaslighting will bring down even the most secure, confident person over time. If you can&#x27;t change the environment, leaving to find a better one is the right thing to do. What that looks like will differ on one&#x27;s situation -- might be a long break from coding, might be changing teams, might be changing companies. But we absolutely need people around us who believe in us to work sustainably.
评论 #29568339 未加载
评论 #29568117 未加载
评论 #29569354 未加载
评论 #29568739 未加载
评论 #29572018 未加载
评论 #29569643 未加载
评论 #29576166 未加载
评论 #29568629 未加载
optymizerover 3 years ago
How are you the CTO and a developer? If you&#x27;re coding features as the CTO your company must be really small so it doesn&#x27;t really matter if the code isn&#x27;t &#x27;perfect&#x27;.<p>If the company is big enough where people have the time to call you out on shitty code and think they can do better - awesome! Let them code it, and you can focus on technical direction. Tell them what to do. Delegate. Let them write the code - it&#x27;s what you&#x27;re paying them for.<p>You can put your developer hat on at home and write code that automates the garage door at your new mansion.
评论 #29570200 未加载
评论 #29573757 未加载
评论 #29570254 未加载
trjordanover 3 years ago
As CTO, you probably don&#x27;t have the time and space, structurally, to be a good developer. You have things to do that aren&#x27;t a single project or feature! So of course other developers will be better at &quot;being a developer&quot; than you, by some measures.<p>I&#x27;ve seen two successful models of CTO that are &quot;good developers:&quot;<p>1. Knows the core tech of the company really well. There&#x27;s some small bit of tech at your company that&#x27;s legit an enabler of your growth. You should probably know it better than anybody. Maybe it&#x27;s moved or changed or grown in the last 8 years, and you&#x27;ve lost touch a bit? It seems reasonable to carve out time to build something on your own, in the same space, using the new stuff. You probably have a better sense of what&#x27;s important to get right than anybody else, so building a personal project with that tech on company time _is_ actually a great use of time.<p>2. Knows the system dependencies better than anybody else. This particularly applies if you have reliability woes or other systematic issues. You have a great position to ask other teams to educate you. Get a couple good devs from each team in a room, drop your ego, and have them teach you what they know in their domain. Do this across a bunch of teams. Some folks might find this irritating, but most folks will like the time to show off their work and share their worries.<p>Everybody is constrained by where they spend their time. If you want to go back to being a great IC ... you need a different job. Which it might be time for! But you can be technically great as a CTO, and I&#x27;m sure I&#x27;ve missed some other ways you can do it in the context of you &quot;day job.&quot;
tombertover 3 years ago
I actually think that self-doubt is a sign that you&#x27;re growing as a developer. If you had asked me how hard it would have been to write an OS kernel ten years ago, I probably would have said something like &quot;Oh yeah, that&#x27;s pretty hard, it would probably take me like four months to make Linux.&quot;<p>If you asked me to reinvent the Linux kernel now, I would probably first say &quot;I don&#x27;t know anything about that, I&#x27;m not your guy&quot;, and if you were really insistent I&#x27;d give a huge number, like 10-15 years, with several disclaimers of &quot;seriously, I don&#x27;t know what I&#x27;m doing here, I&#x27;m pulling these numbers out of my ass&quot;.<p>Did I become a worse engineer in the last decade? No, I was just inexperienced ten years ago, and as a result I wasn&#x27;t really able to differentiate &quot;easy&quot; and &quot;hard&quot; problems, and since I was a goofball (with too big of an ego at the time) I just assumed most projects were easy. Nowadays I have a much better handle on what I know and what I don&#x27;t know, and as a result I find myself in doubt about things all the time. It&#x27;s easy to get into a spiral of &quot;I don&#x27;t know to do this and omg I&#x27;m going to fuck it all up.&quot;
评论 #29569816 未加载
评论 #29570156 未加载
PragmaticPulpover 3 years ago
CTO and developer separate into distinct roles as a company grows.<p>How big is this company?<p>Is it a small company with few developers where you hold the CTO title because you&#x27;re a founding developer or the most senior developer? If so, you might be missing the reassurance that came from your previous life where you had a manager to check your work, peers to review it, and feedback from people who didn&#x27;t report to you:<p>&gt; When I look at a new feature I just think that I will make it shitty or get called out on not doing things the &quot;right&quot; way.<p>At a startup, the &quot;right&quot; way isn&#x27;t necessarily the most textbook-perfect code. The right way is getting features shipped as soon as possible with the code being good enough to be understandable, stable, and maintainable. You need to be careful about spiraling into decision paralysis or drawn out refactor iterations and instead focus more on shipping features to users, focusing effort where it matters for the business, and avoiding unnecessary complication in search of perfection. Perfectionism will kill startups slowly.<p>If you&#x27;re the CTO of a big company with many developers reporting to you, then it&#x27;s time to start letting go of the developer responsibilities. Trying to manage the code too closely or trying to insert yourself into the development teams that you&#x27;re supposed to be managing doesn&#x27;t work at scale. Focus on the bigger picture: Driving objectives, mentoring developers, hiring, monitoring output, and other leadership roles. Don&#x27;t let a desire to control the code interfere with your management duties.
评论 #29568072 未加载
ChrisMarshallNYover 3 years ago
Unfortunately, you may need to let go of your tech work, or shunt it over to &quot;nights and weekends.&quot;<p>I was a manager for 25 years, and one thing that I learned, was to never put myself into the critical path. I could do tech projects, but they needed to be &quot;nice to have on the side&quot; projects.<p>Management requires that we work on interrupt. We can&#x27;t have that sweet &quot;fugue,&quot; that makes us productive developers.<p>What I did, was work on a <i>lot</i> of open-source stuff, on the side. I didn&#x27;t have deadlines, and it allowed me to keep my &quot;tech chops&quot; up.<p>Since leaving that job, I tossed the management stuff into the skip, and have concentrated 100% on tech work. I love it.<p>I&#x27;m a damn good engineer. I get a hell of a lot done, at awesome quality levels, in very little time, but I also don&#x27;t particularly care whether or not anyone co-signs my work.<p>Also, I&#x27;m not a jargonaut. Lots of folks like to sneer at people like me, because we suck at Buzzword Bingo.
评论 #29569586 未加载
评论 #29571405 未加载
colangelodover 3 years ago
This article popped up here a while ago and I think about it a lot in context to this exact question: <a href="https:&#x2F;&#x2F;zapier.com&#x2F;blog&#x2F;actual-impostors-dont-get-impostor-syndrome&#x2F;" rel="nofollow">https:&#x2F;&#x2F;zapier.com&#x2F;blog&#x2F;actual-impostors-dont-get-impostor-s...</a><p>As others have noted I agree that building something (even not software related) helps get me out of these kinds of funks. The reality of your position is that you likely are at a point where you have hired people to make the important technical decisions in terms or architecture, design, and &quot;engineering&quot; and you hired them because they are specialists at that. In todays dev world there is too much to know about to many things to keep full grasp on it all. Your job as a technical leader is to drive the trajectory of the project in the right direction and that often means trusting the leaders of various teams to make decisions about individual technical topics so long as it meets your higher level goals as an organization. Remember Wernher von Braun was not designing every piece of the Saturn V he was driving the project to success.
ravenstineover 3 years ago
&gt; When I look at a new feature I just think that I will make it shitty or get called out on not doing things the &quot;right&quot; way. The thing is, I know I&#x27;m a decent developer but I find myself doubting every single decision that I make.<p>It seems that you already have the answer.<p>You know that there are times that you are right and that other people are wrong, and perhaps this occurs often enough that you are being inadvertently gaslit.<p>If you&#x27;re CTO and you are being called out to this extent, then you might want to consider finding another company or stepping down to a senior engineering role. I&#x27;ve never been a CTO or have worked closely with one, but my impression is that a CTO gets some sort of respect and final say around things <i>technical</i>. There&#x27;s a mismatch somewhere here. Other people aren&#x27;t always right, no matter how reasonable they may seem. There has been plenty of times in my career where I&#x27;ve pointed out objectively counterproductive development practices and have been told that I was wrong <i>because reasons</i>, and sometimes I&#x27;ve totally noped out of those clients&#x2F;companies for that reason. Unless you really need the next paycheck that badly, life&#x27;s too short for the mental agony of doing things that are nonsensical.<p>Although I hope you also can consider whether your ideas are actually the right ones. Sometimes I didn&#x27;t learn until years later how right someone was when they criticized or disagreed with my engineering decisions.
gwbas1cover 3 years ago
&gt; I&#x27;ve been a software developer for about 12 years, the last 8 of which I have been the CTO of a company that is growing like crazy.<p>I think you need to find some good mentors; and&#x2F;or find some good people in your organization that you can talk about these issues with.<p>&gt; or get called out on not doing things the &quot;right&quot; way<p>Assuming you&#x27;re working in a team setting, you need to direct the people who will call you out into planning to make sure that things are done the &quot;right&quot; way. And, then ask yourself, why aren&#x27;t these people writing the coding guide, picking the patterns, writing the design, or reviewing such work? Why aren&#x27;t you delegating to them?<p>One big mistake that I see is a general lack of mentorship when someone is &quot;leading&quot; without at least decade under their belt. You might be the smartest person in the room, but without experience, you&#x27;re going to make mistakes that are &quot;obvious&quot; to anyone who&#x27;s been in this field for 10+ years.
PaulHouleover 3 years ago
Athletes who have a long career will sometimes take time out to reinvent their game. So do some software developers.<p>Your best bet is to do a project entirely different from anything you&#x27;ve done in a while. You can vary: (1) the domain of the project (what it&#x27;s about) and (2) the technology behind the project.<p>When I was really sick and tired of programming I enjoyed playing with Scratch with kids. Many coders, including myself, have a blast with Arduino and other embedded boards.
评论 #29567970 未加载
honkycatover 3 years ago
You aren&#x27;t ANYTHING. You are not your job or your skills.<p>Trust your gut. You&#x27;ve been busy with other things, and you have fallen behind as a developer. That doesn&#x27;t mean you are worthless or unable to improve again. It just means you need to be humble and have a plan to improve as a coder.<p>The only way to improve consistently I have seen is to seek feedback from peers. Seek out a trusted colleague and ask to pair program for a while. Submit PRs early and often, and get early feedback.<p>I know a lot of people who would never admit they are struggling, and just say everyone else is the problem.
nscalfover 3 years ago
This seems like less of a development problem and more of a self confidence problem. You should have a session with a therapist, there is probably a deeper cause of this in your life and you&#x27;d be better off trying to figure out that than finding a bandaid that HN could provide.<p>There are tons of remote options like BetterHelp where you can get an appointment quick without much hassle or commitment, so it&#x27;s a pretty low threshold to give it a shot---that might be a good place to start. Good luck!
评论 #29572389 未加载
time_to_smileover 3 years ago
&gt; software developer for about 12 years, the last 8 of which I have been the CTO<p>As others have pointed out, you can&#x27;t really be CTO and a software developer unless you&#x27;re at a tiny company (like 3 people tiny) and you claim that you&#x27;re &quot;growing like crazy&quot; which implies that you couldn&#x27;t have been CTO at a small company for long.<p>This then means that you&#x27;ve been a software developer for 12 - 8 = 4 years. You&#x27;re not and never have been a very senior IC, and there&#x27;s nothing wrong with that if you&#x27;re in a CTO role. You&#x27;re probably not a bad developer, but you don&#x27;t have the experience and skills of a really great senior IC. The skills required of a good CTO have almost nothing in common with those of a strong, senior IC. The only reason it&#x27;s useful for CTOs to have developer experience is to help communication, but nobody looks up to their CTO for advice on solving day-to-day software problems.<p>My guess is that if you&#x27;re worried about your developer skills you might be lagging in some of your CTO duties (totally possible I&#x27;m wrong here). I would first make sure you&#x27;re providing the high level leadership and support of that role. It&#x27;s also possible that you don&#x27;t really want to be CTO, if you want to be developer you can easily find a place where you can transition into an IC role.<p>Overall it sounds like you should reflect a bit on what you want, where you currently are, and how to get to where you want to be. Do you want to be a great CTO? do you want to be a great developer? or is there something else you&#x27;re looking for?
jhoelzelover 3 years ago
Ask your teammates. Communicate. The role of the CTO grows at the stage were you are immensly but the hardest switch you have to make is to manage people and not projects. Because, you know you hired people for the projects.<p>Its OK to not know something, CTO&#x27;s and principal engineers are not gods of their trade but people who use the synergies presented to them. That is not an archive of man pages that you have produced for your minions, but the combined effort of everyone (technical) involved.<p>Realizing that you may lack a certain set of information is a perfect point to reach out to someone in your team, who does. You will see that the exact opposite of what you are expecting will happen: people will you value more because you can be reasoned with. See it this way: even if you could theoretically barely program, I wold wager that you have more tech skills than some CTOs the past has brought up. Really successfull ones too.<p>Even if noone other in your team has the answers to your problem, the solution is still communication. Either hire talent or use freelancers and consultants. That is what we do. But the result its still the same, it&#x27;s your team that is facing the problem, not the problem facing the team.<p>On the risk of sounding a bit funny, but maybe you should consider taking a management course?
whalesaladover 3 years ago
Serious answer: drugs, specifically psychedelics like Psilocybin. There is a reason use of these medicines is often called &quot;tripping&quot; - it will take you to a new place and offer you new perspectives.<p>None of the comments here will give you the faith in yourself that you seek (that is not to say they are not good, or not beneficial). You are the only person who can give you that.
评论 #29568488 未加载
sponaugleover 3 years ago
It is interesting to see what you have described as part of your role as CTO. I&#x27;m a CTO as well, and of a relatively medium sized company (~600 people). I&#x27;m also an avid developer and engineer, but those developer and engineer skills are primarily tasked with exploring new technologies. The CTO role really does vary a lot from company to company, and CEO and CEO. I prefer the approach of a CTO being very technical, but not focused on things like active code production. The technical part comes into play when you are thinking about the future, and trying to make decisions that will influence the company many years down the road. Any focus that is narrow enough to get &#x27;called out&#x27; right away would be an indicator of too narrow of a focus.<p>In a way the biggest fear for a CTO is getting called out 3 or 4 years down the road for problems in the core direction you set. It happens, and will happen, and we all work to make those events as rare as possible.
Eighthover 3 years ago
I&#x27;m in the same position. 12 years software dev. 5 years CTO. Company grew double each year. I had teams under me.<p>I found that I had lost my developer experience over the years and I didn&#x27;t feel like a good CTO. I figured I was burnt out and started to not care about the work but couldn&#x27;t bring myself to give myself a rest or sort it out. I quit last week.
clavalleover 3 years ago
You need to find other smart people in a similar place but with no skin in your game and rubber duck with them about what you&#x27;re thinking about.<p>This has a lot of benefits: you can serve as their rubber duck and help solve their problems which feels great.<p>You can sanity check your thought process and conclusions. This will help assuage the doubt.<p>And it&#x27;s a social connection which helps with anxiety.<p>Also, go easy on yourself. No one knows the &#x27;right&#x27; answer. It&#x27;s great to look for the best move but it&#x27;s ok to make a bunch of merely really good moves, too. Allow yourself to accept the context under which your decisions are made.<p>Don&#x27;t forget to give yourself space. You&#x27;re CTO. Delegate the shit out of everything you can, even the stuff you&#x27;re best at. Call it a growth opportunity for your team. But if you don&#x27;t give yourself the space to make great decisions, everyone suffers. Avoid the &#x27;busy-ness&#x27; trap at all costs. That&#x27;s not your job.
lkrubnerover 3 years ago
If you&#x27;ve been CTO for 8 years, there is a good chance that it&#x27;s time for you to delegate more of the technical work to some team leads, while you focus on the wider needs of the company. Depending on how large the company is, your main task right now might be to better integrate the work of the tech team with the work of the marketing team, or inventory team, or content team. I&#x27;ve been writing about this issue a lot lately, see:<p>&quot;Should top managers focus on their peers or on those who they lead?&quot;<p><a href="https:&#x2F;&#x2F;demodexio.substack.com&#x2F;p&#x2F;should-top-managers-focus-on-their" rel="nofollow">https:&#x2F;&#x2F;demodexio.substack.com&#x2F;p&#x2F;should-top-managers-focus-o...</a><p>Many newly promoted managers stay focused on the work they used to do, but fail to give enough attention to the other parts of the business, with which they need to learn about and integrate with.
SBArbeitover 3 years ago
Pick a new-to-you technology you&#x27;re interested in, do File&#x2F;New Project... on it, and just build something. Give yourself permission to be a beginner again. Build something that no one else will see, but that you&#x27;ll regain your confidence with by proving to yourself that you&#x27;re still capable of learning and growing. You&#x27;ll see that something that took you 20 hours to do in week 1-2 will take you 20 minutes in week 8.<p>And remember: this is art, not science. We all make artistic decisions about how to do things in programming all day (we pretend it&#x27;s science or engineering... it&#x27;s not) and you will, too. Give yourself permission to do things how you want to, it&#x27;s all just a learning opportunity.<p>I did this when I turned 40 after years of being an architect... it refreshed my love for coding.
mym1990over 3 years ago
Its so hard to untangle everything that might be going on here(based on 3-4 sentences), but at the end of the day if you know you are a decent developer and you have been able to hold down a CTO role for this long, you are worthy of confidence in yourself. Not every decision you make will be a good one(and that is absolutely ok, if people working with you can&#x27;t understand that, it is on them), but one of the worst things you can do is to stop making impactful decisions out of fear that some of them will not have great outcomes.<p>If you have a mentor or someone close that you really trust, I would really sit down with them and talk through this. Slumps are expected, and everyone has different ways to get out of them!<p>Also, this doesn&#x27;t <i>sound</i> like burn out, but I could definitely be wrong.
racl101over 3 years ago
Yeah, I&#x27;ve been in a similar situation. One ugly side about being a developer I find is that if I stay away from the practice of coding for even like 3 or 4 months I feel rusty or I feel like you&#x27;ve missed out on a lot. I remember when I took off 4 months and then started doubting my moves.<p>The time I took off was restful, for sure, but the insecurity I felt was extreme. It took me another 3 months to get my groove back and just feel like, &quot;no, you know what? I&#x27;m a decent programmer and I have earned the right to be here with the other devs. I&#x27;ll catch up in my knowledge gap.&quot;<p>I always wondered how female programmers who go on mat leave cope with stepping away from it all for like a year.
giantg2over 3 years ago
&quot;I&#x27;ve lost faith in myself as a developer, how do I get it back?&quot;<p>Me too. I don&#x27;t know. Force yourself into situations where it&#x27;s sink or swim and that nobody is willing to step up to?<p>I don&#x27;t since I have a family to support. If you&#x27;re a CTO, that sounds like you&#x27;ve already made it.
RcouF1uZ4gsCover 3 years ago
I would recommend reconnecting with the fun of being a developer.<p>Make something purely for yourself, just because you want it for yourself (whether an app or a website or a desktop program, a game, etc).<p>Design and code it how you want, focusing on making it work without obsessing about doing it the right way.<p>I think that will help you recapture the pure joy of coding.<p>Once you have recaptured that, then I think a lot of other stuff will kind of get back into the right perspective.
评论 #29568140 未加载
coyotespikeover 3 years ago
I would encourage you not to think of this as a personal, internal issue. We are obligate social animals.<p>This self-doubt isn&#x27;t happening in a vacuum. You haven&#x27;t gone into depth here (and that&#x27;s fine) but it sounds like a lack of psychological safety. And even if you are the CTO you cannot create a supportive environment by yourself.<p>Who around you is calling out what you do, or making you feel (even subtly) that what you&#x27;re doing is shitty?<p>(and yes, if that&#x27;s the environment, it absolutely contributes to burnout)<p>Imagine you have opinionated or senior developers, maybe with a tiny chip on their shoulder - they know better than their idiot boss! And you&#x27;re not the sort of person who wants to ride roughshod over them. Their opinion matters to you.<p>There are absolutely ways they could advocate for their own views and express disagreement without making you feel stupid.<p>If anything like this sounds right (just spitballing after all), I don&#x27;t know what to do without more details. Gonna be hard to say &quot;be nice&quot; without sounding like &quot;don&#x27;t tell me I&#x27;m wrong.&quot; But not impossible.<p>Wishing you the best.
Metriconover 3 years ago
As CTO, your primary responsibility is leadership, so assuming you have other development staff, your Principle Engineer&#x2F;Senior Architect&#x2F;Lead Developer (or multiples of these in a larger organization) should be providing you with technical options. Your job should be to weight the pros and cons of each within a larger perspective of resource impacts and return on investment. The technical solutioning should be delegated and then affirmed by your direction.<p>If the CTO title is more ceremonial (or your organization is very small) and you are actual performing the role of the most senior developer, know that there is no “right” solution to any software development task. Any working solution outweighs any theoretical optimal solution. The only real metric that matters is that each time you make a decision that it is better than the last one; where better is an amalgamation of (personnel * knowledge * skills * metrics ) &#x2F; time available.
shadowgovtover 3 years ago
You&#x27;re a CTO.<p>By definition, if what you&#x27;re doing is working, it&#x27;s the right way. There&#x27;s nobody higher up the chain to tell you otherwise.<p>If it&#x27;s not hitting the goals you&#x27;re setting for yourself, you&#x27;ll need to determine if the goals are unrealistic or if the approach you&#x27;re taking to reach them is unrealistic (as CTO, that&#x27;s often more of the job than writing the actual code).<p>It&#x27;s hard to be at the top; it often feels like &quot;working without a net.&quot; I changed companies to avoid that feeling when I was younger, and it&#x27;s possible that&#x27;s the right move. But if you stick it out, I just want to share that &quot;working without a net&quot; feeling only diminishes if you build a net for yourself (in the form of process you can use to determine if anything is working).
mwattsunover 3 years ago
The highest level of mastery is realizing how much you don&#x27;t know and that nobody knows anything compared to what there is to know.<p>Beyond the feeling of unease that comes from the above realization, who is the voice the back of your mind who is critical of your code or your technical decisions? Is it an old voice from childhood, a parent or a teacher, or is it current, your peers for example? These voices are sometimes triggered by events going on in your life, work related or not.<p>Is it really your code or is it that you don&#x27;t work in a supportive environment? Perhaps someone is gunning for your job and being subtly critical in ways that are getting to you.<p>You might want to look at &quot;egoless programming&quot; and work on getting your ego out of your code and into the competitive workplace where it is more relevant.
poulsbohemianover 3 years ago
Maybe it&#x27;s a small company &#x2F; tech team, but I have to wonder if you are experiencing these feelings because as CTO, your time as a developer is really in the past. What I mean here is - sure, in some companies the CTO is still a hands-on-keyboard role, but over time, your role as a hands-on developer <i>should</i> begin to diminish and your responsibility becomes to delegate those duties to people in your organization you trust. Your responsibilities and skill set move away from low-level technical. If that upsets you, then I&#x27;d question perhaps you&#x27;d be happier in an individual contributor role and not in a Cx0 &#x2F; managerial role. That isn&#x27;t to say that a CTO role isn&#x27;t technical, but that it is operating at a different level.
spirover 3 years ago
- maybe do a fun, small coding side project<p>- possibly your thoughts and feelings might be hormone-related. If male, consider getting T checked?<p>- optimistically, maybe you have built such a strong team that you doubt yourself in their context and it&#x27;s time to move on :)
rocquaover 3 years ago
Get help. Someone to talk to. Maybe a therapist but probably a coach.<p>I&#x27;d suggest looking up a local independent coach. Maybe ask around for references. If you can get the company to pay for it, great (should be worth it to them). Otherwise pay for it yourself.<p>You have thought about this a lot, and come to a big realization. You need an outside sounding board to help you think through the implications and figure out next steps. A coach seems like a great fit because they are aimed at personal development, whereas a therapist is for fixibg things. It doesn&#x27;t sound like you need fixing.<p>(Saying this because of personal experience with coaches)
DarthNeboover 3 years ago
You could try focussing on other facets of the tech industry, rather than the one you are currently surrounded with.<p>Meet-ups, hackathons etc are good ways to stay up to date on diverse topics &amp; letting your brain work on new stuff instead.
评论 #29568082 未加载
curiousllamaover 3 years ago
Some good advice here. One thing you may want to consider is that CTO of $x MM company and CTO of $100x MM company are two completely different roles. As different as engineer vs manager.<p>If you haven&#x27;t actively adapted over the last 8 years, this may just be the result of being in a job you don&#x27;t like. Whereas regular-exec work might be a lot of management, architecture decisions, etc., high-level-exec work is more pure politics, storytelling, and resource allocation.<p>There&#x27;s a reason a lot of startups replace their sr execs every 10x-100x growth period or so.
评论 #29569633 未加载
tmp_anon_22over 3 years ago
Being a CTO and doing dev creates a ton of cognitive dissonance that takes a lot of mental energy to process. I would look for mentors who can talk you down off the ledge when needed, and help you establish habbits and rituals to better separate the areas of concern in your day to day life.<p>Also appreciate that most thoughtful engineers are their own worst enemy. Its a sign that you&#x27;re good that you even care. Find a way to taper back your own self-criticisms because after a certain point they are inaccurate and not helpful.
dokemover 3 years ago
I&#x27;ve been thinking about how in much of software engineering there is no &quot;right&quot; way to do anything. The only &quot;wrong&quot; decisions are those made without adequately considering all the tradeoffs or made without much thought at all. I would say your role as CTO is not to know everything and make unambiguously &quot;correct&quot; decisions all the time. It&#x27;s to make sure the right questions are being asked and considered when technical decisions are made.
raxxorraxover 3 years ago
Well, look at the positive side, as a CTO you probably don&#x27;t have much time to code anyway.<p>Jokes aside, did something happen before? Did a software not perform or caused problems? You say growth is fast. Sounds good and that means to make compromises here and there in software that might not fit your aspirations of quality.<p>Is this a new position? Or did you see a topic that was just beyond you in any conceivable way? I guess making wrong decisions comes with the job, but as long as business is good...
评论 #29567960 未加载
drbojingleover 3 years ago
My first though though when you say these things is: I wonder what the company culture is like? The environment could be toxic if your feeling so much doubt.<p>I think being a CTO brings it&#x27;s own unique challenges, perspectives and context. You were a developer. Your not exactly one now and that has to be considered. For one you have context that developers don&#x27;t and they may not understand that. It also depends on the specific situation. Good code, &#x27;right way&#x27;, it often just translates to &quot;my definition of right or good&quot;. Lots of subjectivity to software development, as weird as that sometimes feels. Lots of ego and ego is a problem.<p>In my experience a group of developers can believe something is right very strongly and be completely wrong about it and that really sucks because we&#x27;re social animals and, for better or worst, concensus is often at play in decision making.<p>No idea how to fix your specific issue but I think it requires openness and sharing and accepting that different people have different opinions on what&#x27;s correct and everyone has to accept that it differs from person to person. Did you want to share anything specific? Not sure if it&#x27;ll help but it might give you more insights to get a set of different opinions from outside your usual circle.
jkingsberyover 3 years ago
I highly recommend Kent Beck&#x27;s keynote talk from RailsConf 2015: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=aApmOZwdPqA" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=aApmOZwdPqA</a> (or if you prefer, a more recent blog post with a similar message): <a href="https:&#x2F;&#x2F;medium.com&#x2F;@kentbeck_7670&#x2F;accountability-in-software-development-375d42932813" rel="nofollow">https:&#x2F;&#x2F;medium.com&#x2F;@kentbeck_7670&#x2F;accountability-in-software...</a>. Software development is hard, and it&#x27;s easy to do things the wrong way. The thing to do is figure out how to do things that give you confidence you&#x27;re doing things the right way.<p>In some ways, it can look bad for someone in leadership, like a CTO, to get called out for not doing things the right way. At the same time though, if you and the leadership in your company have hired the right engineers working with you, even if you are the CTO hopefully people working with you know more about specific areas than you do, and as CTO you can help make sure that things fit together. So what if you get feedback on how to do things better? You as CTO have a chance to set an example to others on the team for how to receive feedback constructively.
throwaway52423over 3 years ago
Maybe it&#x27;s burnout, but those hipsters that will call you out for not doing things the &quot;right&quot; way, will one day fly to the next flower. You&#x27;ll probably stay and do the work, come rain or shine. Just stop worrying too much, the fact alone that you worry about doing shitty stuff or called out puts you in another category than those who really do shitty stuff. Btw, humans do shitty stuff all the time, it&#x27;s our thing.
rramadassover 3 years ago
My sympathies. You are merely suffering from work overload and a little-bit of burnout + &quot;Imposter Syndrome&quot;.<p>First off, DO NOT RESIGN from your post of CTO. Your Experience, Knowledge and Seniority is what got you that role, so no need to give up something which you have earned and which can be made more manageable by changing perspectives, work habits and learning.<p>The basic problem is that as you went up the career ladder you took up more load without shedding any. A CTO does not have to be a Super-Duper Developer (there is simply not enough time) but needs to know enough to understand the product&#x2F;service. The CTO is a &quot;Technology Strategist&quot; i.e one who can understand Technology deeply, see how it can affect Domains&#x2F;Markets and how to marry the two. You need to be somebody who can connect the dots and push towards a goal. The view is overarching and not local i.e. you &quot;see the forest and not just the trees&quot;.<p>So dial down your desire to be a &quot;nitty-gritty Developer&quot;, understand broadly what every role (IC, Tech. Lead, Architect etc.) entails, interact with them all and only take responsibility for the &quot;Global Company Strategy&quot;.
ghiculescuover 3 years ago
Hey OP, sounds like we&#x27;re in a similar boat in terms of role, tenure, experience, and (guessing from username) age. My email&#x27;s in my profile, if you want to trade notes or just vent feel free to reach out.<p>I think you&#x27;re getting so much terrible advice in this thread, from everyone attacking you for writing code. You should be writing <i>more</i> code if that&#x27;s what you like to do. I spend about two thirds of my time writing and reviewing code, take the lead new features (core and experimental), fix bugs, and generally work on whatever I find the most fun and think will be the most useful for customers. You can do the same and still lead a very large and fast growing company. This idea that as a leader you should abstain from doing real work is nonsense and results in bad leaders.<p>If you find yourself stressed about the code you write adhering to everyone else&#x27;s standards, I&#x27;d suggest 1) not worrying about everyone else (easy to say &#x2F; hard to do), or 2) finding a commercially valid excuse to make a new repo and try some fun ideas out there. If the ideas are good, incorporate them into the main codebase and get back to what you do best.
literallyaduckover 3 years ago
Technical Managers move to Non-technical over time.<p>Here is another secret, no one has the right way to develop. There are many development styles and some produce better short term or long term results.<p>Unelegant code that works might be just the thing until more robust, better architected, unit tested code takes its place it all comes down to the purpose. A small one off hacked together solution for on boarding might be better than spending three months to &quot;get it right &quot; it all depends on risk appetite, project standards, and the scenario.<p>Don&#x27;t act like you know better if you don&#x27;t. Listen to other developers ideas, they might have input you haven&#x27;t thought of.<p>Always Be Learning, not as catchy as always be closing, but the path of a developer is a path not a destination. You can always make progress.<p>Fear of failure or being called out as a fraud shouldn&#x27;t stop you. Remember everyone makes mistakes, no one is perfect, lots developers think they write the best code in their shop, and would critique your code even if you objectively were the best developer of all time.<p>Learn the industry standards as you can and shore up your weaknesses with good underlings that will help you learn.
yumaikasover 3 years ago
If you&#x27;re a CTO, why are you building out features, if I may ask? Shouldn&#x27;t most of that be delegated to devs under you?<p>In any case, it sounds like you might need to try to find a community of folks to help mentor you, and act as sanity checks? At least, that&#x27;s my thought.<p>Though with everything that&#x27;s happened in the last two years, it may just be burnout, in which case rest is probably the best approach.
globalise83over 3 years ago
The truth is you aren&#x27;t a developer any more, you are a CTO. You are responsible for making key technology decisions on behalf of your business, and for building a team of people under you who can successfully execute your technical vision. The way to get out of your funk is to let go of your previous existence as a developer and to embrace the very weighty challenges of your new role.
Tooover 3 years ago
Maybe the company simply don’t have a well defined product and business model?<p>Some places try to create solutions for things that don’t have a problem. Being caught in the middle of such a requirement chain will make you doubt yourself. Especially after you realize it is a bullshit idea to begin with, yet still have to keep a smile on, both in front of your subordinates and your investors.
thewileyoneover 3 years ago
As a CTO myself, I can commiserate. I&#x27;m still a decent developer but I&#x27;m also a decent project manager, systems architect, software architect, tester, business analyst, software engineer and sysadmin, not only because I have my hands in all of these roles now but also because I&#x27;ve done these roles in my career. I&#x27;m also a decent salesman, service delivery manager, business strategist, etc.<p>Unfortunately, when you step into a CTO role, skills-wise, you have to become a generalist to do your job better.<p>If you&#x27;re losing faith in yourself because you feel your technical capabilities is diminishing and so is your perceived value to the organization, I fully understand. You need to reevaluate what your value in your role. Is it important that you&#x27;re the best developer? To me, no. As others have pointed out, your job is to make the better decision in a sea of decisions; I say better and not best because sometimes the best decision is not the right decision for the business.
cloverichover 3 years ago
Lots of great answers so far. Consider also that a CTO of a 5 person, 15 person, 30 person, and 100+ person (etc) company is not the same role, despite having the same title. So I think if you start at 5 and stay CTO as it grows, it is pretty natural to feel like you are always fighting to adapt -- you are. And likewise if the role begins to outgrow you, that&#x27;s par for the course. In general when I think of CTO I don&#x27;t think of them as programmers really, but more as leaders who play a role in recruiting, landing deals, setting (broad) technical direction and thinking years out. E.g. &quot;Should we build or buy this thing that will take 2 years to do, based on the market, our competition, and who we have at the company.&quot; I think its natural to lose your core development skills. You can always get them back if you want. But that will be a different job of course :)<p>Good luck!
tmalyover 3 years ago
I saw two videos related to this that gave me pause to think.<p>First was that when you are higher up the chain, you should not be making decisions on small stuff. You should be delegating to the smartest people that report to you.<p>Second, in the executive level, you should be focused on strategy and identifying industry trends, not on doing day to day grunt work.
评论 #29605136 未加载
sleepysysadminover 3 years ago
I recommend you build a Java-based logging utility that is secure.
评论 #29568511 未加载
wruzaover 3 years ago
When you’re a ~linear developer (regardless of seniority level) working on tasks and issues without time limits, you only know your own craft and seal every hole the boat may theoretically have. But when you see the whole business picture, and how dynamic it is, or when that is pushed down to you chaotically and unfiltered, i.e. not reworded as your CTO+ would do carefully, the anxiety of vagueness and indecision may come in. E.g. there is a feature which has to be done “yesterday” and “will probably live for only few months”, so it’s obvious to just hack it into the code. But as a tech guy you know all the implications of this way in the future. But as a CTO or a guy who sees more, you also <i>feel</i> this “yesterday need”. These two facts usually mix together into shitty trade-offs, shitty side being pushed from other CxOs.<p><i>If</i> this seems to be the case, the solution is to care less of that chaos and care more of your developer’s craft, which you seem to still have more affinity to. It is your role. Push the anxiety back to where it belongs by doing&#x2F;planning things the right-most possible way and negotiating it to the forces which drive it ahead “like crazy”.<p>There <i>is</i> a balance between growing like crazy and turning all limbs into cancerous tumors. You may find peace of mind in finding it and messaging it back to where imbalances originate from.<p>I would ask myself in this positon what do <i>I</i> want as a pro (hard one), whose responsibilities I take on me without profiting from it (not only money-wise), make it clear what will happen to me, to the company and to the next guy if I just leave, what are both good and bad sides of how things work now, think which points of that list should be fixed, which should be added, in the circumstances, and evaluate possible outcomes. I mean not which I can “live with” today, but which <i>should</i> [not] be there strategically. And finally, I’d detect the source(s) of trouble and message them publicly-directly about the structured issues from that board. It’s a huge reflective&#x2F;collective work, which would serve good both me and the company.
cleandreamsover 3 years ago
I&#x27;ve reached different performance levels in different environments. It&#x27;s a bit embarrassing to see how the environment impacts me. When I feel the confidence and encouragement of others, my capacities increase and I out perform, and when I don&#x27;t, I sort of &#x27;shut down.&#x27; I suspect it is because I grew up in a verbally abusive household and I go numb. That is what it is, and experience has shown me I can&#x27;t just snap my fingers and get over it. It&#x27;s okay to require a positive environment. It&#x27;s okay to change jobs to get it. BTW I have reached high engineer ranks at FANGs. I have also noticed that when the environment is negative and I am working hard, I reach burnout more quickly.
TruthWillHurtover 3 years ago
A counter argument if I may -<p>When I was CTO I built the MVP and coded at first. Then after adding engineers we started shifting the architecture to their designs (because it&#x27;s important to allow people to be creative and own things, right?) and I started feeling like a sub-par engineer, not creating sophisticated code as they did.<p>Well, turns out they overcomplicated things, focused on complex problems rather than end-to-end feature delivery, and waisted a lot of time rebuilding things that wete better (albite simpler) in my MVP.<p>For me, the takeaway is - trust yourself. You know best.<p>It&#x27;s not the same lesson for everyone, some people are too controlling, but it seems you and I are closer to the other end of the spectrum.
maxk42over 3 years ago
If you&#x27;re &quot;CTO of a company that is growing like crazy&quot; then you shouldn&#x27;t be writing code anymore. You need to develop your management skills. If you can&#x27;t do that, then it&#x27;s time to step aside.
adamcharnockover 3 years ago
I try and say this as much as I can, and I’m going to say it here: therapy is great. I highly recommend it, just take some time to find a therapist you get on well with.<p>This is in addition to the other advice here, not instead of.
jl2718over 3 years ago
This is called executive wisdom. You are seeing things clearly now. Most ideas are bad. Most execution is sloppy. Just because you can does not mean you should. Your primary job is to kill all ideas except the one thing you are absolutely certain of. Do that one thing. Over-do it. Then do it again. Be certain that there is no possible way that anybody could do it better.<p>Edit: I probably should have said to kill all projects&#x2F;features&#x2F;goals that you are not absolutely certain of. Ideas for achieving the same objective in a different way, are probably good risks.
0xbadcafebeeover 3 years ago
I think you have a couple choices:<p>1. Stop developing. Then you don&#x27;t have to feel judged for dev work.<p>2. Stop CTOing. Then you&#x27;re &quot;just a developer&quot; and you can go back to doing work as a team, where your own personal opinions or decisions should not override those of the team. Being &quot;wrong&quot; is fine, because whatever decision the team comes to is &quot;right&quot;, and you all cooperate together to accomplish the shared goal, right or wrong.<p>3. Continue to be a CTO, continue to write code, but go to therapy and find out the source of your fear, then figure out how to cope with it.
munificentover 3 years ago
Whenever I experience this anxiety, I have learned that the cure is almost always better feedback.<p>If I&#x27;m worried about the performance of my software, but I don&#x27;t know which things to optimize, I need to use a profiler.<p>If I&#x27;m worried that my code changes introduce bugs, I need tests.<p>If I&#x27;m worried that a design isn&#x27;t the best set of trade-offs, I need to share it with people whose judgement I trust and get their feedback.<p>I&#x27;m not a manager, so I don&#x27;t know exactly what feedback looks like at your level, but I&#x27;d suggest involving more of your team and collaborating on decisions more.
bluesideover 3 years ago
I had a CTO in your same situation. His remedy was to schedule more meetings.
pezzanaover 3 years ago
&gt; When I look at a new feature I just think that I will make it shitty or get called out on not doing things the &quot;right&quot; way.<p>Why are you implementing features as a CTO? Isn&#x27;t that what your team is for?
simonblackover 3 years ago
That sounds somewhat like &quot;Imposter Syndrome&quot;.<p>All of us have to combat that Syndrome at some time or other. For many of us, it strikes more than once.<p>In my case, I&#x27;ve had it strike in several of my &#x27;professions&#x27;: Pharmacist, Programmer, Pilot.<p>I&#x27;m beginning to suspect that &#x27;Imposter Syndrome&#x27; is a normal &#x27;Rite of Passage&#x27; - on moving from mid-level to a higher-than-normal level of expertise in that particular field. You get the &#x27;Am I good enough to match those others who are already in the upper echelons of the field?&#x27; doubts.
im3w1lover 3 years ago
&gt; When I look at a new feature I just think that I will make it shitty or get called out on not doing things the &quot;right&quot; way.<p>You will likely get called out whichever way you make the decision by people tunnel visioning on one side of the coin. Getting called out doesn&#x27;t mean the decision was wrong. Your goal should not be that no one calls you out. Rather it should be to be able to say: Yeah I took that drawback into account.<p>&gt; CTO of a company that is growing like crazy.<p>Well if the company is growing like crazy then you must be doing a lot of things right?
RickJWagnerover 3 years ago
Walk 10,000 steps a day. As you walk, listen to various podcasts that touch (not direct-hit) on your workspaces.<p>What you&#x27;ll get:<p>- Brand new ideas (new learning)<p>- Confirmation of ideas you already hold, but weren&#x27;t 100% on<p>- Knowledge of some ideas you held that were wrong (without anyone else knowing!)<p>Also set aside a little time to do some &#x27;fun coding&#x27;. Maybe Go or Erlang or C#. Something that&#x27;s a little close to the metal, but not mind-numbingly difficult to get going with.<p>Good Luck. Given a little time spent right, I&#x27;m sure you&#x27;ll be bursting with confidence in no time.
mixmastamykover 3 years ago
There&#x27;s a STTNG episode or two where it becomes known that Captain Picard is just kinda winging it, while looking confident.<p>Regarding large software systems there almost never one right answer. At times we need to make decisions without perfect knowledge. Some portion of those decisions will be suboptimal of course. Whereby we make more decisions to hopefully improve the outcome. It&#x27;s the nature of the problem.<p>Perhaps you have &quot;decision fatigue?&quot; Sounds like a nice vacation is in order.
评论 #29580389 未加载
randomNumber7over 3 years ago
Beeing a bit self critical is a skill and i think it&#x27;s actually good for a CTO. Defenitely better than the opposite.<p>Maybe search on some colleagues where you can discuss technical things at eye level. You beeing CTO doesn&#x27;t mean you have to know everything better (imo, dependent on the company culture it may backfire).<p>Maybe it&#x27;s something unrelated and you are just a bit depressive. I can easily imagine that happens to a lot of people with all the reduced social contacts due to covid....
bhagyashover 3 years ago
What I can feel is that you aren&#x27;t able&#x2F;wanting to keep up with the rapidly evolving technologies. Maybe CTO and success has put you in a comfort zone. Maybe after being CTO of a crazy growth company you feel you&#x27;ve made it. Maybe what you&#x27;re doing doesn&#x27;t fire you up anymore. Maybe you just got lucky and opportunistically became CTO. You can either continue this stable, secure life and slowly decay or change course, whatever that may be.
评论 #29573075 未加载
NoPicklezover 3 years ago
Firstly, I think its excellent and of great benefit that you are a CTO that has experienced what your fellow developers do.<p>However, you&#x27;re the CTO and your role realistically shouldn&#x27;t be developing, but it should be weighing up the decisions your team is making as THEY develop, building connections and looking at the forward strategy.<p>It sounds to me that you made the move into the CTO role, without fully making the break with what you used to do in your previous role as a developer.
tdrdtover 3 years ago
Can be anything.<p>But from my own experience: it might have to do with lack of energy.<p>It sounds like you are responsible for the decisions you make. If you don&#x27;t have a lot of energy you don&#x27;t have energy to deal with possible bad outcomes. That&#x27;s when you start to overthink your decisions to protect you from energy loss in case you made the wrong choice.<p>So check your energy levels.<p>And if the responsibility is too much for you be honest about it. Involve others to make the decision.
belowmedianover 3 years ago
I&#x27;m going through something similar at a much smaller scale (startup CTO of 2 years, not much growth). It&#x27;s been enough to make me want to quit software engineering altogether. It sucks.<p>At least your company is growing and you know that you are a decent developer.<p>Maybe you can take a sabbatical. Talk to your partner if you are on good terms. Make sure to explore your options.<p>Hope you find a way to move forward and regain your confidence.
lordnachoover 3 years ago
Do you discuss your technical decisions with your peers? That might give you some validation. I chat all the time with people about what techs to use.
评论 #29569132 未加载
oriettaxxover 3 years ago
This is a smart brain thinking: I am inadequate!<p>This is 100% normal: you are comparing yourself to the world nowadays and, since you read HN, to many real brave people (I am scared myself too ahahahah).<p>My advice is to cool down and tell to yourself: &quot;developing is not rocket science&quot;... but practice, a lot of practice (as in any art) is needed: no practice, no speed.. no result, which is as in any field. :)<p>do not be too hard on youself
throwaway81523over 3 years ago
You might call in a consultant as a &quot;technical therapist&quot;, to talk over your decisions and issues, technical challenges in the company, etc. That&#x27;s a lot of what they do. If you&#x27;re feeling lack of confidence, does that mean things have been going wrong? Alternatively maybe there are some engineers in your company who you can trust having those sorts of conversations with.
ankurdhamaover 3 years ago
&gt; When I look at a new feature I just think that I will make it shitty or get called out on not doing things the &quot;right&quot; way<p>Fix your expectations. Perfect things don&#x27;t exists. Don&#x27;t get trap into the idea of perfectionism. In retrospective, everything will look like &quot;not doing the right thing&quot;, don&#x27;t take that personally, that&#x27;s how retrospective works.
diarmuidkingover 3 years ago
I think if you have been CTO for 8 years and its growing like crazy (and your growing your team) your doing a good job as CTO - at that team size its not really the job of CTO to make individual contributions - the job is more to find new talent for the team, to nurture existing talent on the team, and to make sure that good technical decisions are being made.
fdschoenemanover 3 years ago
I don&#x27;t have advice or answers to any of your questions. I don&#x27;t know if your situation will get better or worse. I appreciate the humility implicit in your question, and it makes me feel a little better about related things I&#x27;m dealing with in my own life. Thank you for that, and I&#x27;m rooting for you to get where you want to be.
sjg007over 3 years ago
Does the company have product market fit?<p>If not, don&#x27;t worry. If you do, don&#x27;t worry. Perfection is the enemy of good enough.<p>You want to hire developers who will take your vision and turn it into good code even if that means rewriting your code. And every <i>developer</i> will rewrite your code to make it their own. They will also always complain about your code.
sabhiramover 3 years ago
It is so much easier being an engineer than being responsible for engineering direction.<p>The first group is afforded the &quot;ask for forgiveness not permission&quot; mantra, while the latter is left with &quot;fall on the sword&quot;.<p>This leads to generally higher pressure and less feedback since you are kinda sorta pioneering and not just following hand-me-down instructions.
ramsundhar20over 3 years ago
You need to slow down and enjoy life. I too had a burnt out, now partially recovered but still it’s difficult times.
bionhowardover 3 years ago
not having blind faith in yourself is a really good thing because it makes you humble and willing to learn. Shitty work isn’t the end of the story because you can improve it over time. Doubting your decisions helps you avoid fooling yourself.<p>How do you escape the funk? Realize the funk is useful and normal, and it always was!
spaetzleesserover 3 years ago
You have to accept uncertainty and mistakes. When you look at super successful people like Musk, Jobs or Gates they all have a long list of major screw ups but they just kept plugging along and did the best they could. If you expect yourself to always make perfect decisions you will lose your mind over time.
jn78over 3 years ago
thanks for asking, i feel you.<p>few months ago i went through a similar self-trust downturn. i had a nice salary, complete decision making freedom, great team, booming market.. i was getting the job done, but i felt like shit and couldn&#x27;t trust myself with anything..<p>now i&#x27;m in a process of figuring things out. i&#x27;m not there yet, but it turned out the problem we were solving stopped being interesting to me. that made me rely on &quot;best practices&quot; and i stopped being creative. couldn&#x27;t come up with brilliant&#x2F;scary shit to do, everything was so predictable..<p>if you have shitty problems to solve, or not interesting to you personally, you won&#x27;t be able to engage.<p>if developing makes you happy, then find problems worth solving in the first place. some time off helps, find some scary things to do. satisfaction is on the other side.
pkrotichover 3 years ago
My initial reaction is you’re a CTO not a developer. Perhaps you’re trying to play both - something got to give if that’s the case given the leadership overhead.<p>As others have mentioned- hire the best and empower them. If being a developer is your passion then perhaps you should consider giving up the CTO role.
throwbynight38over 3 years ago
I think if you were not at that company, someone else would be making the mistakes. I think the fact that you are still there after 12 years, and consider your decisions so critically says that you are good at what you do.<p>As a Disney princess once said: &quot;Let it go&quot;.<p>Forgetting is just as critical a skill as remembering.
kaetemiover 3 years ago
There is no right way. Anyone who calls you out on doing things the wrong way, is wrong. There are better ways.<p>Except, if you&#x27;re not listening at all to suggestions from colleagues, then you may be doing things the wrong way. Or when the code is just failing at doing its task.
kkjjkgjjggover 3 years ago
Maybe there are just too many options these days? Every day a zillion new technologies seem to appear that you are supposed to use, so that you are &quot;doing it right&quot;. While most of them may be cool, YAGNI still applies.
michalf6over 3 years ago
Are you keeping yourself physically fit?<p>Are you taking care of your body?<p>Are you sleeping well?<p>Are you eating well?<p>Also, consider checking your hormones. Age and stress will move your thoughts in this direction. There are ways to counteract though.<p>Mind and body are inseparable, one influences the other.
codr7over 3 years ago
There are as many ways as there are developers.<p>Dealing with infinite unknowns is just part of the package, the reason most can&#x27;t cope, the reason we&#x27;re paid relatively insane amounts for what we do.<p>So say my 35 years in the trenches at least...
PicassoCTsover 3 years ago
Build little things that work, with no economic pressure. Join a Open Source project and build something people could need or love. Not big, just a little feature, a little help.<p>Seek contact to those using your software.
andixover 3 years ago
This sounds a lot like burn out or depression to me (I’m not an expert on that field!). Get yourself checked. It happens to the best, especially now during pandemia.<p>Read about „imposter syndrome“ and „decision fatigue“.
Donckeleover 3 years ago
Dude, resign and take some time out. Don’t fret, plenty of opportunities.
accountofmeover 3 years ago
It has been said elsewhere in this thread, but dude, you are management, not talent.<p>Keep abreast of stuff and the winds of technological change, but hire people to code and get them to make the outcome you want.
thrownaway561over 3 years ago
What is hot today is cold tomorrow... everyone uses google to code... everyone copies and pastes stuff from stackoverflow... github copilot and autocomplete are life savers...<p>stop being hard on yourself
Graffurover 3 years ago
I&#x27;m not a CTO but what I want from a CTO is to set a direction and make choices that we all follow. E.g. programming languages used, update frequency, SaaS products used, etc etc
daanloover 3 years ago
From a distance, it is very hard to diagnose, but try to sleep more, do more sports, take a holiday (at least 2 weeks). Al of those can help re-wire and put things into perspective.
basketheadover 3 years ago
You’re the cto. Lean on your senior engineers and ask sanity questions. That’s your job as cto, not to come with all the answers.<p>Save your design and coding for your home projects for fun.
ninjaaover 3 years ago
Being a great software developer is all about being comfortable with self-doubt.<p>If you&#x27;re not for a prolonged period of time, it&#x27;s likely burnout.
onelastjobover 3 years ago
&quot;Do something, even if it&#x27;s wrong.&quot; - eighty year-old gentleman at a poker table when people would think for too long.
readmeover 3 years ago
You’re a c-suite exec. You’re supposed to pawn that work off on someone else and then apply your cynicism to them.
rajacombinatorover 3 years ago
If you’re really the CTO of a company that is “growing like crazy”, you probably shouldn’t be doing any coding.
dredmorbiusover 3 years ago
Imposter syndrome (n): 1. delusions of mediocrity.<p>I&#x27;ve been faking imposter syndrome for the past thirty years.
Taruchoover 3 years ago
&gt; get called out on not doing things the &quot;right&quot; way<p>Who do you fear it´s going to do this?
pier25over 3 years ago
Build something for yourself. Doesn&#x27;t if it&#x27;s shitty. Just build something.
jdthediscipleover 3 years ago
Maybe it&#x27;s just the impostor syndrome in disguise?
loopsodyover 3 years ago
professionally executed K E T A M I N therapy.
Sosh101over 3 years ago
I&#x27;ve felt the same thing this year.
GhettoComputersover 3 years ago
Do you suffer from “imposter syndrome”?
marsdepinskiover 3 years ago
pick a single platform to build expertise in. start coding. don&#x27;t change the platform.
Kinranyover 3 years ago
You&#x27;re having an emotional problem, not a technical one. Therefore you need to ask a therapist, not other developers.
评论 #29569556 未加载
zackmorrisover 3 years ago
Sorry to be blunt, but you are rightly sensing futility. You&#x27;ve been working on something for 8 years, when the entire software industry lifecycle is only 2-3 years. So nearly every problem your company has solved was probably solved 6 years ago in open source.<p>I&#x27;m only saying this because I worked on a video game for 11 years. Finally got it released, at the cost of a falling out with my best friend and business partner, and we never recovered our friendship in the same way. This stuff can be brutal.<p>If you&#x27;re a CTO in name only, then you&#x27;re probably also sensing that investment in different people or tools like #nocode could have bigger returns than more code. But maybe that doesn&#x27;t sound good to investors, so you keep doubling down on the current approach.<p>I went through a massive burnout in 2018 and lost my job in 2019. The stress combined with too much alcohol and gym time finally just burned me out. Humans aren&#x27;t meant to live under continuous stress for years on end. It was like having a stroke. I lost all decision-making and problem-solving ability and could barely get out of bed for 6 months. Then the rona hit.<p>There&#x27;s hope though, because I made a full recovery. Here&#x27;s what I did, YMMV:<p>* <a href="https:&#x2F;&#x2F;www.depression-chat-rooms.org" rel="nofollow">https:&#x2F;&#x2F;www.depression-chat-rooms.org</a><p>* Split and subdivided my tasks to their most granular level in todo lists<p>* Executed the tasks at a different time or day to exercise executive function<p>* Tackled the low-hanging fruit instead of the hardest thing first<p>* Prioritized my physical needs over a job after I found the smoking gun, that gut health affects serotonin and can be sent out of whack by common foods like dairy, tree nuts like almonds, legumes and nightshades (B vitamins, digestive enzymes, kefir, psyllium husk capsules, spinach, iodine, etc, talk to a nutritionist or eastern medicine&#x2F;Ayurvedic specialist)<p>* Dedicated myself to service (donated plasma, jumped to help others in need, vocalized that I was there for people)<p>* Found ADHD TikTok<p>* Set boundaries (most important of all?)<p>* Tried something completely different for awhile (handyman for another friend during the summer of 2020) - AND&#x2F;OR - Worked on my communication skills<p>That last one might be hard to do, so if you can&#x27;t take a break from your job, I&#x27;d recommend opening a dialog with the people around you. Being more transparent with my supervisor&#x2F;boss at my current job has done wonders. It turns out that many of the people who antagonized me over the years were actually terrified that I was going to run away and leave them hanging. We&#x27;re working through a tremendous amount of projection and anxiety as a society. So it might help to flip the situation from &quot;what&#x27;s wrong with me?&quot; to &quot;how can I help?&quot; because the change in perspective might reveal the issues that your subconscious mind is warning you about.<p>In the end, it was all worth it, and I&#x27;m so much happier and more resilient now for the experience. But I can&#x27;t lie, I still struggle some days with the continuous nature of it. All I think about pretty much all of the time now is how much I just want a break. But, a bigger percentage of my time now goes to my personal development goals (bought an electric car that I&#x27;m going to take full solarpunk to drive for free) so I use mantras and meditation and envisioning a better future to push through the tough mornings.<p>Hope something in this helps!
评论 #29569213 未加载
kyproover 3 years ago
Probably the first thing that should be acknowledged here that being good CTO isn&#x27;t the same as being a good dev.<p>I&#x27;m not a CTO and never have been, so feel free to completely disregard my advise, but from what I&#x27;ve observed being a good CTO is far more about communicating effectively with the rest of the org, understanding business requirements and ensuring the development team is equipped to solve problems than being a good dev. To some extent you also need to be available to unblock devs when there are key decisions that need to made at a higher level.<p>In a smaller company you might need to wear multiple hats from time to time, but when you&#x27;re acting as a CTO your job isn&#x27;t to be a good dev and to do things the right way, but to ensure you have the right devs and architects in your team so they can tell <i>you</i> the right way to solve problems. The most you should be doing is approving and guiding their decisions. If you feel you have something to offer as a dev then by all means, share your opinion with the team, but your not there to be a dev, you&#x27;re there to be a CTO.<p>It sounds like you&#x27;re taking too much on honestly. You can&#x27;t be expected to know everything or be an expert on everything technical problem that comes your way -- that&#x27;s not what a CTO does. A CTO just needs to have a solid high-level understanding about how things come together and delegate everything else.<p>I think first you need to decide if you want to be a full-time CTO or a CTO who is also a developer. If you&#x27;re going to continue to be a developer while being CTO then you&#x27;ll probably just need to accept you&#x27;re statistically unlikely to be the best developer on the team to solve every problem and therefore from time to time you&#x27;re going to do things wrong and you&#x27;re going to need to seek help and feedback from other devs.<p>For what it&#x27;s worth a small-medium sized company I used to work for had a CTO who was also a dev (he was the first dev), but by the time I joined the team he was also the weakest dev there. Thing is, he acknowledged that and that&#x27;s why we were there. He picked up a few dev tasks from time to time where he could and when he had time, but otherwise he would trust us to tell him the right way to solve problems and let us get on with it. He was a great CTO in my opinion, not because of his dev skills, but because he trusted us and gave us the resources we needed to get our jobs done. There were many occasions I needed help from other devs on the team or even external resources and he would always make sure that help was available to me so I could do my job well. That&#x27;s your primary role as CTO in my opinion. You&#x27;re not suppose to be a good dev, you&#x27;re just suppose to ensure you have a team of great devs who have everything they need to be great devs.
tailspin2019over 3 years ago
&gt; or get called out on not doing things the &quot;right&quot; way.<p>I think this specifically might be part of what&#x27;s causing a challenge for you...<p>If you were a software developer for 4 years and then a CTO for 8, I&#x27;m guessing that you&#x27;re quite a generalist. And a pretty talented one. You&#x27;re likely able to think (and communicate) very effectively about higher level strategy&#x2F;architecture as well as work down in the detail. This is a valuable and rare skill, and it&#x27;s this ability to work at different levels of abstraction which makes you valuable to the company and not necessarily just your &quot;raw&quot; software development skills at this point.<p>Being a CTO you&#x27;re probably also a little rusty (unless you&#x27;re a very active hybrid coder&#x2F;CTO). The best developer in the world would get a bit rusty after doing what is often NOT really a software development job for a while. So if this is the case, you can cut yourself some slack there.<p>At the same time, you probably work with people, perhaps on your team, who are talented <i>specialists</i>. Not generalists. Ie. on the surface, perhaps you think they are better developers than you? (Or perhaps you think that <i>they</i> think that?). Perhaps you see them using newer technologies or design patterns that you&#x27;re not as familiar with and that leads you to doubt yourself.<p>I&#x27;ve definitely been there. (So I may be projecting a little here). As an engineering manager (sort of a pseudo-CTO in our small business) my first hire was an incredibly smart guy. The smartest developer I&#x27;ve ever worked with, even to this day. And there were certainly times when I&#x27;d doubt myself in his presence. I felt like he was often several steps ahead of me. Fortunately he was also the nicest guy I&#x27;ve ever worked with, so while he would certainly tell me if he thought I was doing something wrong, I would encourage him to do so, and always knew that it was coming from a place of good intentions. Even if I had to occasionally swallow my pride! I saw it as an opportunity to grow and as an exercise in humility too! He was often right too, but not always.<p>Anyway, I became a _much_ stronger developer and technologist as a result of having the good fortune to work with him for several years. And you will too if you have the good fortune to be working with a very smart team. Even if you doubt yourself at times. Working with people who are <i>obstensibly</i> smarter than you is about the best thing you can do in any career. And if they&#x27;re <i>not</i> smarter than you, then cool. They&#x27;re not smarter than you. Either way it&#x27;s a win! :-)<p>However. The MOST important thing I would say, is don&#x27;t judge yourself as a developer, judge yourself as a CTO. That&#x27;s the role you&#x27;re in. Some CTOs can&#x27;t code at all. So you&#x27;re already ahead of the pack. And try to remind yourself that even if you don&#x27;t use the latest fancy design patterns or technologies - this actually has very little bearing on how productive&#x2F;useful you are in your position. Sometimes those things are complete distractions and actually in reality add zero <i>actual value</i> to the business. (Sometimes).<p>With our developer hats on, we can sometimes get a little narrow-minded and work to produce the &quot;perfect&quot; piece of code that conforms to all the SOLID principles, fully tested, extensible, using the latest shiny language etc. etc. when a competitor of the business may have just thrown something together in PHP (sorry PHP people) and are still delivering the exact same outward-facing value to their customers. And their management team &#x2F; shareholders literally don&#x27;t know the difference. As long as that PHP solution is fit for purpose, nor should they. It&#x27;s irrelevant. There can sometimes be a divide between what an engineering team &quot;thinks&quot; is best vs what is <i>actually</i> best given all the context that you as a CTO may know about the business and its priorities vs the view of the world that they may have.<p>So if your MO is throwing together some crappy looking code that works. Own it. You&#x27;re the damn CTO and that&#x27;s fine. Learn from others by all means, but don&#x27;t doubt your approach either, it may be way more valid than you think. You also don&#x27;t need to be the strongest coder. You can be the best CTO in the world and be the worst coder in the company.<p>Finally, my last piece of advice is to jump on something like www.pluralsight.com and speed-watch courses in areas that you think you might be weak on. I did this during my years as pseudo-CTO to quickly get up to speed with technologies that I wasn&#x27;t necessarily working with every day, either to be able to talk intelligently about it with my team, or (at the best times) be a able to dip into coding and actually bring the team up to speed with that new technology&#x2F;pattern.<p>By absorbing online courses like that, and blogs, and HN, as well as having quite a lot of engaging side projects, I was able to stay pretty sharp and still teach my team a thing of two - even the smartest of them - even when my &quot;default&quot; state was to often feel like a bit of an imposter and have similar worries to you.<p>TLDR; You probably deserve to give yourself more credit than you are.<p>Good luck!
justinzollarsover 3 years ago
easy. Build something.
评论 #29584484 未加载
buffingtonover 3 years ago
TLDR; To be confident, be humble, help others, appreciate failure, and know you&#x27;ll never be an expert.<p>Long form:<p>The one (or last?) time I felt this way was when I had just stepped down as CTO of a well funded company I co-founded.<p>I can say today that the reasons for stepping down had little to do with my competence, though I didn&#x27;t feel that way at the time. In truth, it was 2007, and my co-founder and I realized that we were in for a very long stretch of no income, and a short runway, and that the best thing to do was to essentially go on standby.<p>Still, my confidence took a hit.<p>I took about a month off, which didn&#x27;t really help change that feeling. I enjoyed the time off, and it was good for me in general, but it didn&#x27;t change how I felt about my abilities.<p>Eventually I decided to do whatever I could to reduce any doubts I had about my competence. I started teaching people how to write code, which meant I really had to make sure that I knew what I was talking about. Teaching helped fill in a lot of gaps I didn&#x27;t know I had, but also helped me see that I knew what I was doing, at least enough to teach others.<p>I didn&#x27;t stop at teaching how to write code though. I started consulting, and managed to find gigs that let me help engineering teams communicate better, and taught those same teams how to have more robust practices around code changes, releases, failures, debugging, code reviews, etc. All the other non-coding stuff every coder needs to be good at.<p>It took years, but eventually it got really difficult to feel like I didn&#x27;t know what I was doing. It was clear I knew enough to be effective.<p>I learned another pretty important thing during that time:<p>I&#x27;m not an expert. No one is. The people who say they are don&#x27;t yet realize what they don&#x27;t know.<p>Admitting I&#x27;m not an expert does a few things: it allows me to fail and learn, and to be grateful for what I gain when I do. I don&#x27;t pretend like I&#x27;m a beginner that can&#x27;t function without stackoverflow. I just leave room for the possibility that there are often better ways to do something. I&#x27;ve learned that shutting the doors to those possibilities is a sure fire way of feel incompetent.<p>Being humble and ok failing makes all the difference. If someone doesn&#x27;t like my approach, that&#x27;s fine. Rather than defend my approach at all costs, I explain the goal, define constraints, and reduce any friction towards hearing how to improve the idea. If after talking it out my idea was still the right way to go I make sure to express gratitude for the feedback.<p>While trying to &quot;get back&quot;, a friend of mine who recently lost his fight with cancer, who&#x27;s leadership abilities and incredible software development skills were something I still hold up as my &quot;end goal&quot;, often said: &quot;It&#x27;s always good to be humble, and almost always better to be humbled.&quot;<p>I try to optimize what I do around that idea. Having a baseline of &quot;there&#x27;s always more to learn&quot; just makes things better and easier.<p>It also helps me get stuff done. It helps me have good relationships with people I work with. If someone doubts a decision I&#x27;ve made, my default mode is to assume they&#x27;re correct. They often are correct, and I grow. Sometimes they&#x27;re wrong, and it gives me an opportunity to be humble and help them grow with me. Either way, no energy is spent defending an idea because my ego says I need to. Energy is only ever spent on improving my skills and the skills of teams I lead or work with.
BrazzVuvuzelaover 3 years ago
Make something yourself, on your own. Show yourself that you&#x27;ve still got it.
popfastfulover 3 years ago
I&#x27;m also a developer,to made sideprojects that make me happy.