DEV Community

Cover image for [The Exposition] I’m building a start-up the wrong way
eorn
eorn

Posted on

[The Exposition] I’m building a start-up the wrong way

Part one of many.

Background

“Senior” nodejs backend developer (~5 years professionally).

A note on quotes:
What I consider a Senior (note there are no quotes here) developer (which I’m not yet by my own judgment) (I love parentheses)

  • Pretty good or at least somewhat good at 3 types of languages, with a focus on at least one
    • javascript Interpreted: javascript, python, ruby, etc - do what you please at the expense of efficiency → language handles hard/difficult part
    • Compiled-semi-low level: java, go, c#, etc - enough freedom, but language will limit you when it’s likely for you to mess up → 50/50 handling of hard/difficult parts
    • Compiled-low level: c/c++, rust, zig, etc - almost absolute freedom at the expense of complexity to accomplish a task → you handle virtually all the hard/difficult
  • Knows basics: Computer architecture, Linux OS, Algorithms/DS, Networking, Compilers/Interpreters, Math, Databases, System Design
  • Curiosity - you won’t be a Senior for long without it. Manifestation of which are side-projects, learning new things, keeping it up, etc. Come to think, the first 2 might be the manifestation of this one. Curiosity for me is a hybrid between motivation & discipline.

Even if I program in js/node/ts solely for a hundred years I would not consider myself a Senior developer (I’m glad tech companies ‘think differently’ though)

Back to the article - "Building a start-up the wrong way". But what does it mean?

The accepted opinion is that everything should be fast: you need to build fast, ship fast, and grow fast.

The best way to do so for a solo founder from a technical standpoint is to use tools you already know: editor, programming languages, frameworks, libraries, databases, etc.

But there are a few problems there for me:

  1. I don’t want it to be a surrogate child of my job. I don’t want to have a mini-job after my real job.
  2. The language/tools used at my job are not the right ones to be used for a project I’m trying to build.
  3. I want to learn something new

The only way to escape that for me is not to change small (”Use fastify instead of express for my new nodejs app”), but to change big: new language, new environment, new surrounding tech.

At this point, I either know or can learn sufficiently fast everything I need to build a product from a tech standpoint. It won’t be the most efficient at the beginning, but it’ll get the job done, iterations will follow.

Statistically speaking most likely it’ll fail due to various reasons. I want to make failure even more likely, want to make it harder than it should be. I want to feel helpless and stupid all the time learning new things while trying to make it a viable business.

I still remember the motivation to become a software developer. Mine was the possibility of building anything I wanted from home, from any home. I haven’t really pursued this opportunity until now.

The project has 2 objectives: building a business and becoming a better developer, I (hopefully) cannot fail both.

Teaser: the next article is about particular tech decisions. Or not, don’t know yet

Twitter: https://twitter.com/eorn_b

Top comments (0)