Hacker Newsnew | past | comments | ask | show | jobs | submit | elmarschraml's commentslogin

Depends a lot on your situation:

Does "CTO" mean you are the tech lead of a small (single team) engineering organization? Then everything written for staff engineers applies. E.g I've heard good things about "Staff engineer's path" by Tanya Reilly.

Does "CTO" mean you are leading an org that is too large to be hands-on with tech, and need to build an effective structure and culture? Then I second the recommendation for "an elegant puzzle" by Will Larson.

Or does "CTO" mean that you switched from being an engineer to managing a team of engineers? Then everything for new managers applies, for starters I'd recommend "Becoming an effective software engineering manager" by James Stanier, or "Engineering management for the rest of us" by Sarah Drasner.

For some good general material, I'd also recommend the resources that Gergely Orosz makes available for subscribers to his "pragmatic engineer" newsletter. Those are templates for the kind of documents and processes you will most likely need - if you're new to the role, you will not go too wrong by using them, and if you want to create your own they are excellent starting points.


And maybe CTO means “the founding programmer of a new startup” in which case my advice would be to stop reading and start coding :-)


There's always time to read, you can't only code. E.g. I run a lot so I get through a hell of a lot of audio books.


I don't think the parent comment means only code, never learn. I think their intention was to not worry too much about the "CTO" title and instead focus on building the product at hand.


Yep. When building a startup you’ll find a lot of well-meaning people (in books or in person) who really do nothing but distract you. YC got it right, you should make something people want. Everything that’s not either making something or finding out what people want is just going to slow you down.


Too reductionist.

You must "sharpen the saw".

This takes many forms including adequate learning / training for self improvement as well as investment in your tooling that will pay dividends on delivering faster or with higher throughput.

These are second and third system effects that require intention to monitor or measure but the effect is real.


Of course nothing is black and white, but if you have limited time/money then you want to get to ramen profitability fast and you simply don’t have time for business model canvases, the perfect employee option scheme, a scalable k8s setup or a perfect CI/CD pipeline.

There’s so much stuff that feels important and valuable, but so little of it really cannot wait until after your wheels are off the ground.

When you read postmortems of startups that didn't get enough customers, often it’s this stuff that actually went wrong. Too much time spent on other stuff than “build something” and “that people want”.

To my experience, it’s difficult to resist all that good advice that’s all over the internet, books, accelerator programs and the like, and saving it all for later. People will tell you “you should get $PETPEEVE right from the start” for every imaginable pet peeve (all the way from legal stuff to unit tests to SEO) and they’ll be very convincing. Trying to resist this is not reductionist, it’s super hard.


It is survivorship bias. Because the companies get to a point where unimportant things are important and you spend years in that second phase, the learnings are upside down. „If only we would have solved technical problem X from day 1 we would have so much less hassle in the years to come.“ Except that solving problem X on day 1 instead of shipping what the company did might have killed the company. I see this in a lot of second time founders, where startup 1 was successful - „this time I‘ll really avoid my mistake X.“


Sure. But the point was that if you're a team of 1 engineer, even if your title is CTO, time spent learning "how to be a CTO" when you don't have any team whatsoever is time not spent building the prototype that needs to demonstrate $XX value/growth by YYYY-MM-DD in order to survive.

Learning is always encouraged, but you should be learning to solve the problems you're about to face. Learning to solve problems which aren't going to be obstacles in the near or mid future isn't helping you in your immediate circumstances. Sometimes the immediate circumstances aren't much of a concern, but when they are, you need to be sure you're learning with that in mind.


Any advice is going to be reductive when measured against the reality of building a startup. While learning and continuous improvement are table stakes, I think the GPs advice is much better to get first-time founders overall. "Sharpening the saw" is likely to feed perfectionist tendencies, or send them into dopamine learning loops online. There's a reason that "bias for action" is treated as a highly valuable trait in founders.


I'd say the time for sharpening the saw was before you started the company. The next opportunity to invest into best practices / long-term is when the company actually has some traction.


The entire point of sharpening the saw is that it is continual though. It doesn't have to be a major investment or long-term, in fact it explicitly references "Daily Self-Renewal". I believe the original comment branch just meant don't worry about "what's applicable to the CTO".


And honestly, pre product-market fit my advice would be not even coding, but iterating in an extremely scrappy way (read: Google Sheets, Jupyter Notebooks, no-/low code, handwritten invoices) until you have people paying for your product and not churning after the first month. Everything else comes secondary. For every company that didn‘t manage to scale their tech and teams fast enough, there‘s 100 that die by „building and they will come“ a polished app with great UX through 4 ecosystems that get launched to deafening silence.


Tbf I believe this depends a lot on the product category. Uber could do this in their first few months but eg Retool couldn’t.


Obviously some ideas can’t be tested without writing some code, but it’s more of a mindset than a strict playbook–many programmers (myself included) tend to bias towards wanting to write code and avoid sales conversations until the thing feels “done”. Tech message boards are littered with programmers trying to justify why their app has to have a full polished build that will take a year before they can begin selling it.

When you get in the habit of asking yourself, before building, how you can learn the most about what people want with the least amount of code, clever ideas often come to mind.


Heh I was going to mention Google sheets. Great database that doesn't scale, but before you're close to worrying about that you have a lot of answers.


this is perfect advice which i can't agree with enough. that is unless the founders insist on a flawless UI... then you are in for a world of pain

never understood why teams of literally 1 or 2 devs are always forced to try attempt to acheive the visual quality of apps like instagram, whatsapp, etc


> never understood why teams of literally 1 or 2 devs are always forced to try attempt to acheive the visual quality of apps like instagram, whatsapp, etc

For the same reason those kinds of places have more managers than workers… it’s a vanity project.


Haha, for sure. I wrote about that contrast here a few years ago: https://www.mooreds.com/wordpress/archives/2555


His productivity will shoot trough the roof, when it moves into deleting code.


:-)


> For some good general material, I'd also recommend the resources that Gergely Orosz makes available for subscribers to his "pragmatic engineer" newsletter. Those are templates for the kind of documents and processes you will most likely need - if you're new to the role, you will not go too wrong by using them

One word of caution: Engineers and EMs read these newsletters and even management books, too.

It’s not hard to see when your leadership is just parroting things they read from a book or newsletter and trying to pass it off as if they had deep leadership experience. Engineers are good at seeing through cargo cult leadership.

I suggest that if you embrace a practice found in a book or a newsletter, be transparent about the source. Encourage people to read more about it in the book or newsletter where you found it. Don’t try to pass it off as a management technique you invented or pulled from deep background experience, because it feels disappointing to the team when someone realizes their CTO is just parroting things from a newsletter or blog and trying to hide the source.

Also, don’t get into the mindset that having read a lot of books or blogs or podcasts or newsletters is a substitute for experience. Some of the worst leaders I’ve had were those who would lord their book knowledge over everyone as though it made them the confident expert on everything, while we could all clearly see that the extents of their knowledge started and stopped with what was contained in the books they read. Books contribute bits and pieces and give suggestions to add to your corpus of knowledge, but if you treat them like definitive, all-encompassing sources of wisdom then it’s going to be clear to people that you don’t really know what you’re doing. Be honest and stay humble.


That's a very good point. A "CTO" can mean any mix of managerial, leadership and technical responsibilities.

It is my assumption that a CTO is usually coming with technical background already except when he/she is a cofounder and they got technical domain as a result of division of responsibilities. But I am suspicious of startups where none of the cofounders come from technical background.

That leaves managerial and leadership. IMO, if you are a CTO, managerial is something you can hire other people to do for you as your technical organisation grows and leadership is something you should really be focusing on.

You can have flourishing technical organisations with the CTO being a poor manager but a good leader but very unlikely with a CTO with good management but poor leadership skills.


Even if you're effectively 'just' a tech lead of a small team, like I am, it's still a very different job than being a tech lead of a small team in a larger company. You are at the top level of the small group, so you end up being involved in a lot more non-tech things than you think you would be.

Your peers are not other engineers and engineering managers like you would be in most situations, but marketers, product people, designers, PMs and so on. Who is the founder and ultimate authority (CEO) and if you are a co-founder or not also really changes things. A founder CTO is also very different from a non-founder CTO. Co-founder conflicts is a huge thing to manage, (see https://flocrivello.com/co-founding-considered-harmful/ ) because at a small size even as a non founder, you're pretty close to it. You should decide upfront if you're going to approach the job as another effective founder or employee and communicate that to founder at the start as part of a conversation.

I made the transition from staff eng to eng manager to CTO at a small startup, and each one is still a very different job even though the skill sets transfer greatly. I code way more at the startup than I did as an eng manager too. Several things I would suggest:

1. You're an exec, even if your company is tiny, and how it works is different than being a manager. Concepts like the 'first team' https://www.michaelvizdos.com/resources/first-team and 'getting on the balcony' matter way more than when you're in a purely product & eng organization: https://www.bettermanager.co/post/move-away-from-the-dance-f...

2. Don't be shy about getting exec coaching, and having the company pay for it. We did that and it was very helpful.

3. Read Radical Candor (updated edition!!!), but also read it with a bit of a grain of salt, realizing the title and advice was chosen because the writer wanted to balance their general high agreeableness with a counterweight that goes too far for the typical person IMO, which the writer writes about that exact dynamic in the second edition.

2a. Learning to be properly direct is super essential, especially at small sizes where its more make or break based on how emotionally deluded you are. The people you are working with need be able to handle you being real with them too. If they cannot, move on, it's that important.

4. Expand your skill set, do everything technical. If you're a backend engineering manager, expand your stack to all parts of the business. That means the back end, the front end, data, analytics, observability, devops, AI models, performance tracing, etc. I started as a mobile eng with previous backend experience, and I wish I expanded sooner so the company had those things on lock sooner, especially in the data analytics side. Engineers hate analytics, embrace it fast to counteract that tendency.

5. Gergely, Will Larson, etc are good resources, but also note they come from what I call the "Uber strain", and thus structure a lot of their experience and advice based on formative years working at Uber. I also worked at Uber when they were there and I recognize a bunch of Uber-isms in their writing.

A good chunk of what they talk about is how to be successful at a place like Uber. Something I've realized later with them is that other companies can be pretty different, and what they espouse sometimes might not match. But on the other hand, Uber's work culture came from previous strains of silicon valley tech culture, especially google's due to the top engineers being from google and setting up their promo system to match googles (vs lets say apple) and the knock on effects of that. Something about that place made people get really good at understanding what is needed to succeed in tech leadership and write about it, I guess it's kind of a paypal mafia effect.


Devastating.

Ever since I met him as a young developer, when he was speaking at a local user group, I made it a point to catch any talk he gave at any conference I was at. He was one of the few people who combine huge competence and deep experience with being able to speak and communicate them really well.

Plus, he always came across as someone who was utterly professional, yet manages to stay human, accessible and deeply committed to their values - the kind of person I aspire to be.


Second the recommendations for "an elegant puzzle" and "the manager's path".

Cant believe this one has not been mentioned yet: "Becoming an effective software engineering manager" by James Stanier (https://pragprog.com/titles/jsengman/become-an-effective-sof...) - a good book, and very specific for exactly your situation.

Would also like to mention my own podcast "Ask an engineering manager" - more focused on SWEs, but also has some episodes about how to be an Eng Mgr, e.g. https://askanengineeringmanager.libsyn.com/017-typical-mista...


Thanks for mentioning my book. Indeed, it's written exactly with that moment of time in mind: the "OK, so I want to do this. But how?"


I enjoyed an Elegant Puzzle but often felt it was targeted at a step above first time management, with topics on having interview pipelines, org design, etc. But it was still a good read.

His follow up book on Staff Engineering I think is a good read for first time managers. It lays out the other leadership path, which is helpful both for understanding where you fit in and the other leadership path you can guide your reports towards, based on their trajectory and interests.


Here is how that press release should have read:

First paragraph: Get to the point (layoffs are happening) immediately, and state the concrete reasons why they are necessary.

Second paragraph: Thank the people being laid off, call out some of their good work, and talk about the things you are doing to help them find a new job.

Third paragraph: Mention the steps you are taking to avoid having to have layoffs again. Be as specific as possible. When mentioning "focus", that means focusing on one, possibly two, very specific things.

Last paragraph: Motivation for the future. Renewed commitment to making Firefox better.


Location: Munich, Germany

Remote: yes

Willing to relocate: no

Profile: Engineering Manager

Experience: Software engineering background (Java, Web), project management experience, Consulting/Requirements/ProductOwner, Solution Design and Architecture. Recruiting, training and mentoring junior devs. Domain knowledge in ecommerce, PIM and DAM.

Resume: https://elmar.files.wordpress.com/2020/01/schraml_elmar_resu...

Email: [email protected]


Skills are tactics. Dealing with a recession is about strategy.

Most importantly: this is a time to focus on reducing risks, rather than maximizing profit.

This is a crappy time to start a startup or being a freelancer. Keep your job, build your skills, save money, and start in a few years.

Think about your job's security: Pay attention to your employers annual/quarterly reports. Which industries does your employer sell to? Travel, restaurants, hotel, retail, small businesses will be the worst hit, with little money to spend.

This is also a bad time to change jobs - depending on your local laws, it probably is much, much easier to lay off someone who just started.

Maybe broaden your skillls. In good times, it is more profitable to be a specialist - e.g. much better to be THE leading expert on scaling wordpress, rather than an all-purpose linux admin. In bad times, when jobs are scarce, being less of a specialist increaes the number of jobs you are suitable for.

Save money, lower your burn-rate, extend your runway - usually meant for start-ups, but this goes for your personal finances just as well

Become familiar with laws and benefits from the government for unemployment, lay-offs etc - if you should happen to find yourself unemployed, know what you have to do, how much assistance you can expect.

That being said: If you have a high risk-tolerance, and can afford to, now is also a great time to start a business or to invest, simply because nobody else is, so there is much less competition for everything.


I work for a university as a teacher. What do you think the economic implications might be for a university in the coming months? I can see less new people enrolling next semester, current students refusing to pay the same tuition if it's going to continue being all online etc.


I work for a company where universities are pretty much 100% of our customers, so I'm curious about this also.


i think as folks have less money and the good times of the last market boom are over, they will more deeply consider the value add that high priced universities may or may not actually add to their life over the long run. I think a correction in university pricing is long over due.


>This is also a bad time to change jobs - depending on your local laws, it probably is much, much easier to lay off someone who just started.

Counterpoint: this is a great time to change jobs. There is much higher upside on equity packages.


What's that ole Soros quote? Something like "when others are greedy, be cautious; when others are cautious be greedy"


Having them do a code review (about 10-15 minutes), i.e. have a short (about 50-80 lines) piece of real code, that I have prepared with plenty of problem, messes, non-idiomatic code, or little ugly things.

NOT a test as in "find the 10 hidden mistakes", but an invitation to talk about ways to improve the code. I make it clear to the candidate that it's not about the syntax, or any algorithm, but about quality.

It's really good to see what kinds of things they care about (e.g. do they look into low-level performance, or more into things like variable naming and method length), how deep their knowledge of the language is (e.g. do they recognize non-idiomatic code, and suggest more modern approaches), if they are more of a high-level thinker or more detail-oriented etc. And of course, it nicely weeds out the (surprisingly high) number of people who cannot really program, without relying on any memorization of keywords. Plus, it's pretty realistic - nobody ever writes code on a whiteboard, but doing code reviews of code somebody else wrote is something that happens all the time.

Most candidates find that task quite fun - and with really good candidates I quite frequently learn something new myself.

I was planning to do a blog post about why and how I do that review - let me know if that would be of interest to you.


I would love to be asked to do a code review during the interview process. What a great idea.

I can imagine that another good thing about it is that it takes enough focus and is a familiar enough task that even if I’m in nervous-applicant mode, it will kick me over into acting like I’m already working there.


Generally, asking opinions rather than specific technical answers.

Asking "Do you have experience with technology X" is useless - everybody knows that "yes" is the expected answer.

Asking specific technical questions is random - they might or might not have come across that particular problem. Also, in practice the answer would simply be looked up, and you don't want to hire for memorization.

Instead, ask things like"How did you find working with <technology X>? Can you compare it to <common alternative>, or <similar tech also listed on their resume>?". Or maybe "what worked really well with <technology X>? What pitfalls did you fall into? Anything for which you would, or would not, recommed it?"

This kind of info is hard to fake, gives you good insight into their thought process and priorities, or just gets people talking about their projects more easily than a generic "tell me about your work on project y".


- Savings: a few months' living expenses in a readily available cash account. What happens when you suddenly finding yourself having to pay a few hundred or thousand bucks for an emergency? Not having savings means "Panic mode / scrimp and save / have to get credit". Having savings means "a number in my back statement changes, but does not really affect me"

- Access to experts: anything from doctors to lawyers or accountants to a bike mechanic or plumber. When you're faced with a hard problem, it's really comforting to know that you can get expert help rather than having to meddle through yourself.

- Time: Could be hiring a cleaning lady, so you don't have to spend time on your weekend cleaning your house. Or daycare for the kids, so you can get a break from watching the kids and do grown-up things for a while. Or just taking an extended unpaid vacation to unwind for a bit.


Unrelated to the site, but about the patents: How can a specific games console, like the Nintendo 64, be patented?

The name of the product, and maybe some brand-specific design elements, is a registered brand, sure. But a patent is for an invention, and it's not like a specific games console is a new invention - just a variant on the existing invention "games console"?


Most of these are design patents. They cover the physical form of the console -- not its function.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: