HN user

xenopticon

131 karma

freelancer, ruanmartinelli.com

Posts4
Comments28
View on HN

I'm building a set of tools to work with OpenAPI specifications in teams.

Some of the workflows I'm trying to unlock:

- Track every breaking change pushed to your API and notify your team on Slack and e-mail

- Generate a changelog from your OpenAPI automatically

- Generate mocks for every endpoint to share with your frontend person/team

- Public, private, and password-protected API reference pages to share with partners

Here's a link: https://frevo.dev (still in early access)

Freelancing fixes this.

I have a no-recurring-meetings policy, all clients are informed upfront. I overcommunicate and post regular updates on Slack, etc. I had zero issues with this so far (e.g. a client dropped me because I refused daily standups).

I've found that, once people have a clear idea of how much you cost per hour (not monthly or yearly), they tend to value your time more.

My work calendar has been completely free for over 3 years now.

I think you're right. I see a lot of tools for Node.js, Python, and even Rust, but not so much for other languages.

I'm a bit frustrated with openapi.tools too, I think they could do a better job curating and keeping the tools updated. Their issues page on GitHub makes it look like they are not actively maintaining it. I actually bought openapi.cool this week and I'm thinking of building my own version of it.

To offer a different perspective, I believe the ecosystem around OpenAPI has vastly improved in the last year or so, at least in my technology stack (Node.js & TypeScript).

- I am currently building a product in the space and I've got competitors tackling the problem from many different angles

- Lots of tools & libraries to choose from when working with OpenAPI specifications (yes, lots of outdated stuff too)

- New platforms like Platformatic are making big bets on OpenAPI and building features around it

- People are using OpenAPI specs with ChatGPT to make custom integrations

For code-generation in particular, there's a handful of libraries that use OpenAPI specs to "glue" the backend and frontend together in different ways (ts-rest, openapi-fetch, openapi-types, orval, feTS). Many startups also offer seamless OpenAPI -> SDK generation.

It's an obvious resource at this point, but this site[1] is a good starting point.

[1] https://openapi.tools

I'm not a fan of setting multiple resolutions (hardcore focus), so I've only set one for this year: to get 1 (one) paying user for my SaaS app.

It didn't help that I finished building it in November, but well... here I am still waiting for that one Stripe notification.

Next year I'll try something easier, like running a half-marathon or something.

Django 5.0 3 years ago

constant communication between backend and front-end devs

Curious, are you doing anything in your code-generation workflow to solve this specific pain point?

I really, really like Are.na.

I cannot recall how many hours I've spent there going deep into some rabbit hole, browsing pictures of old Sony devices from the 90's.

The only reason I stopped using was because, like many modern apps, I couldn't get over how slow it got over time. I wish someone built a mix of Pinboard and Are.na, where you could save your things - including media - privately and explore what other people have been creating, while still being fast.

This reminds of a 17yo boy in Brazil who learned how to program on broken smartphones.

The phones were seriously broken. One had a faulty touchscreen in the middle and the boy could only use it upside down with a reduced screen size. He described in a Twitter thread[1] all the struggles he had with the broken phones.

His story got picked up by the media[2]. He was hired by one of the biggest fintechs in Brazil and has been working there since then. He also got many donations, which helped him buy a new computer and finish reconstructing his family house.

[1] https://twitter.com/cezarpauxis/status/1343934072440156160 (pt-BR)

[2] https://www.bbc.com/portuguese/brasil-56337365 (pt-BR)

Two things that worked well for me:

1. Work on your hobbies _before_ your actual work (or when you feel rested the most).

Don't spend all of your "prime time" in your job. In the morning, when I am rested and focused, I dedicate the first one or two hours of the day to work on my things. Of course this pushes my schedule and I finish work later, but at the end it feels like an accomplished day. There's no feeling of guilt because you "only worked on your job". This of course only applies if you have a flexible job.

2. You cannot do everything at once.

I had very similar goals as you in the beginning of the year. I was trying to write posts for my blog, learn my partner's language, study for the Terraform associate exam, and exercise daily. All combined with a moderately demanding job. We simply cannot have that many things in our buffer. Try to focus on what's more urgent or important for you. Do one or two things at a time.

I guess you are tired of intrusive ads?

I run a blog myself and the money that keeps it running comes exclusively from my pocket. All the content is free and fully accessible (no paywalls, reading quota, etc.). I build the website and write the articles during nights and weekends.

I share your discontent with the current state of things. However, I plan on having a small piece of real estate on the page with an ad banner as long as it's privacy-focused, non intrusive and doesn't hurt performance.

Writing well 6 years ago

Oh, I meant that one! My bad, English is a second language for me.

Writing well 6 years ago

People don't read on the internet, they only skim. Short sentences are better for that.

Writing well 6 years ago

Doesn't this depend a lot on _what_ and _where_ you are reading?

I suspect people have completely different styles when reading e.g. a fiction book on a Kindle vs. a tutorial about deploying a Docker container. I wouldn't be surprised if generation/age played a factor too.

The problem is that the big companies are not interested in phone numbers and names. The real gold are the connections - who you talk to more frequently, who are your real friends vs. random people you added, etc.

I went full JS three years ago from a Java/Spring background and never looked back.

As a solo developer I noticed a huge increase in productivity and the time it took to ship code to production. My use case is a SaaS application with ~50 users.

Coding skills did improve but I think that's just a natural progression for everyone and wouldn't attribute it to a specific language.

Pros: very open community, lots of learning resources, no enforced standards.

Cons: it's easy to get things wrong, keeping up with new libraries is intimidating.

Tip: start small, create a twitter bot or something, use ES7

Avoid frameworks like Meteor, React etc. they're a rabbit hole that will paralyze you from shipping and getting to revenue.

I agree with the part where you say to avoid tools that don't paralyze you from shipping and getting revenue. On the other hand, I think that if someone is fast and productive with React or Meteor, that is the tool he/she should be using to build anything.

1. Don't quit your job if you can't live off savings for at least a year. Having a job allows you to have a safe base to experiment ideas without the burden of making profit.

2. This is business, forget about the tech stack you are using or finding the perfect tool. Your main goal is to create value and make someone's life easier. My advice is to use the tools you are most familiar with, this will allow you to be productive without worrying about things like "which chart library is the best for Angular 2 RC 5". There are successful business that started out with a spreadsheet.

3. Be aware of survivorship bias. While Levels apparently succeeded bootstrapping many of his businesses (and I think he did), there are hundreds of other people that you'll never hear the name of who failed miserably and wasted many keystrokes on launching a failed product.

4. "Perfect is the enemy of good". Ship things fast and don't be afraid of doing things that don't scale like processing payment, hard coding a few things (if you know what you're doing) and even calling users to get a feedback on your product.