Hacker News new | past | comments | ask | show | jobs | submit | xenopticon's comments login

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.


Similarly, I quit my full time job last year because of too much "Agile" bullshit and useless meetings. There was a management change and my job went from being highly autonomous and very productive to micromanaged and bureaucratic, with nothing getting done anymore. I complained, they asked me for feedback, and I wrote them a detailed three-page report. They read it and told me to hide it to not embarrass management. I quit a few weeks later.

Ended up doing hourly freelancing for a small company. Never had a single useless meeting. My reports are an occasional weekly summary of issues. The rest of the time I just have a timer going when I'm actually working and I bill accordingly. Extremely productive with no wasted hours on rituals and stupid ceremonies. I get paid less and don't get side perks like free lunches or company outings anymore, but I'm soooo much happier overall.

It's like that old saying, people don't quit jobs, they quit their bosses. I would've stayed at my old org for half the pay and no silly perks if they just gave me a longer leash (and ideally a different boss) instead of making me jump through endless stupid hoops. I was one of their top performers, too, something like the 95th percentile or higher in performance reviews. I tried, telling different people all the way up to the VP of my branch how bad the situation was, but nobody listened. Their loss. Not long after, the CEO brought in completely new management again and laid off most of my peers. It was just a terribly managed org at the higher levels.

In contrast, working for small companies, there's just not the luxury of paying for useless cruft and ceremonies to make middle management look important. That's a symptom of org bloat, not effective management.


How did you find freelancing work?


Old connections.

Before that, I sent out a few dozen applications but didn't get accepted by any of them :/ Sorry, I know it's really rough right now.


I was just curious. I'm doing fine myself but it's always interesting to learn how people find their opportunities.


Oh, I see! I'll share a little more in that case.

When I first found this company, it was because my previous org was looking for a service (a headless CMS) to replace a Drupal site with. We evaluated a bunch of them and actually chose one of the smallest, least famous ones, because they had the best editor UI and they were the most responsive and helpful during the demo/initial sales call. It was a very different experience than our convo with Contentful, for example, who wouldn't even give us the time of day without a NDA signed.

Anyway, we ended up being a customer of this small company for a few years, and I spent a lot of time on their forum, both to ask questions but also answer other ones where I could. They offered me a job, but I was already employed at the time.

Fast forward a few years, I got so tired of Agile that I quit (different company by now) and didn't want to work for another big bureaucracy again. I reached back out to the CMS company and to my surprise they still remembered me. We talked on the phone for half an hour or so, and they offered me a position. No interview or screening or anything. I was lucky to have contributed in the past.

It's only been a few months but I'm still employed. Grateful and very happy with the job. My coworkers are awesome and our customers are great. It's just all so much more human than working for some big faceless corporation that doesn't care about anyone.

It's funny, actually... now I'm working with my old colleagues (from the old company) again, but from the vendor side, supporting the same website I built when I was still with them, lol. I never planned it that way, life just works mysteriously sometimes...


That's awesome.


Can you describe your last 3 freelance arrangements?


Is there something specific you wanna know? My arrangements look pretty similar: I bill per hour, clients pay me to create web applications (usually SaaS), and I work either alone (preferred) or on small teams.


I've just worked in scrum team my whole career. Do you work for your clients for 6 months+ or is it much shorter? Do you integrate with their systems or is your work standalone?


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


Interesting, thanks. I haven't looked at it in about a year. If I remember correctly, the seemingly dominant generator is OpenAPI-Generator; the one that's written in Java with lots of independent modules for various combos of language and frameworks, using Moustache templates.

Among the available generator modules, there's way too much emphasis on Node. Heaven forbid you're using C++, because there was only one generator for that and it doesn't even create code that compiles.

Trying to create a custom generator means wading through reams of duplicated and outdated documentation in various places, and never even finding a list of the data entities that OpenAPI-generator extracts from an OpenAPI document.

Later on I mentioned OpenAPI to some developers (maybe on here, even) and they agreed that the ecosystem sucked so profoundly that even bringing it up in a professional development setting might be a liability to your reputation.

I consider anything before OAS 3.1 useless because it bafflingly prohibited you from applying a description to a reference. This means if you defined a data structure and used it in various places throughout your API, you couldn't annotate each use of it... largely defeating the purpose of the entire document. WTF! A blunder of that magnitude doesn't inspire confidence.

Looking at the page you mentioned, check out the list of server generators. Almost none are up to date. Once you whittle it down to the ones that support OAS 3.1, you wind up with most languages being unsupported.

And finally, the OAS editor I was using, StopLight Studio, has been discontinued; it was never updated to OAS 3.1 anyway. I haven't found a non-Web-based replacement for it, and that resources page doesn't list one that I can see.

Thus far, it's still looking pretty weak.


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.


This is super cool. Many startups are offering OpenAPI -> SDK, but I've never seen anything that generates a command-line tool.


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.


Personally, I found focusing to be far worse than not focusing. People don't do resolutions because if they did them, then life would change. Not necessarily by a lot, but something changes. If you had finished building it in February, you'd have to figure out why it hasn't had one paying user. And now that you've built the app, you can still bring the resolution forward next year, but hesitate to.

So I find the lifehack is to have two targets. You procrastinate on one then do the other. You take baby steps to avoid selling that app and end up doing the half marathon.


> 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 should have been more specific, the codegen alleviates a large portion of back and forth that would have otherwise been spent asking the backend devs things like “why isn’t this working”, or “what has changed”. There is still a lot of communication involved, but it relates more to the business objectives and less annoying fiddly things. For my current project the backend devs are using a cumbersome enterprise stack - the one saving grace for me being that they have swagger (OpenAPI) docs. As a front-end dev the codegen really helps to shield me from a lot of implementation specific backend stuff, as if the interface changes I am going to be informed about it from the Typescript compiler. Also one really great feature is that specific values for validation, such a min/max character length are also exposed and generated with the codegen so that is also another bunch of variables that I can worry less about when I implement clientside validation.

I’d really recommend taking a look at the tool I linked. I see a bunch of end-to-end Typesafety tools mentioned like GraphQL, Protocol Buffers, etc, but they seem overly prescriptive to me, and most of the time you are gonna be working some basic REST service and an OpenApi/Swagger doc is the best you are going to get from the backend devs.


SEEKING WORK | REMOTE (EUROPE) | 15-20 hours/week

Node.js specialist with 8 years of experience.

I work together with organizations of all sizes to build and scale Node.js applications, as well adopt Node.js into their technology stack.

More info: https://bit.ly/3hdKv6C


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.


We share the same experience.

I'd love to join a network/platform that allows for plugging in private backends for hosting media content while simultaneously allowing sharing lists and other boards


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.


This is the correct answer. The number of hours you can be productive is limited. Frontload your hobbies before work. Interestingly enough you won't underperform at work as much as you would think.

For me it used to be work 100%, hobbies 0-10%. By frontloading my hobbies and doing them first, it's now work 90%, hobbies 90%. A good net gain. At the same time my happiness has increased by a good 20%, because as you know, no one feels great watching TV for 3 hours.

The reason why this works is, if you work like a semi-normal human even if you are tired you will do the thing. However hobbies, being "optional" you will skip. By flipping things around you still have that push to perform well at work, so it stays relatively the same.

By the way, with kids, frontloading becomes even more important.

Edit: I try to have 5 main todos every day. 1 work, 4 hobbies. It averages out to about 11 hours (work being 8). I use my "hour" of lunch to play guitar, which is another hobby of mine, but it's the only time I can squeeze it in.


This is why companies enforce early morning hours so you cannot do this. It's literally physically impossible. And/or will ruin your social life since you will be sleeping when others are socializing.

Any bright ideas to apply when you have to run to work early?


I know people that wake up at 3-4am to do their farm work before heading to their day job. You will end up going to sleep earlier though. But for some people, that's what it takes.


Is there evidence for your claim? Not trying to argue against it, but it'd be interesting to know if work culture literally tries to sabotage personal development in order to squeeze out more productivity from employees.


It doesn't have to be framed so negatively. Companies want to buy your prime time, and the market is priced for prime time hours.


Pick up a hobby you can do on the train or bus. Books and learning apps like the OP mentioned are ideal for this.


I started waking up 2 hours before work for avocational activities, and that gradually became 4 hours before. I feel as sharp as a razor once I wake up. Granted, I have to be asleep by 10, but I don't stress about working on my side projects after 9 hours of work. I can fill that time with audio books, cooking and working out.


> Interestingly enough you won't underperform at work as much as you would think.

I don't believe this, and I don't see how it squares with "the number of hours you can be productive is limited."

If I'm paying an employee $150k, and he says "the number of hours I can be productive is limited," and then I hear he's waking up early before work to put in 3 hours on a personal project... I'm going to assume that means I'm losing somewhere approaching 3 hours of his productivity.


I pay for results, not "productivity."

I'd much rather have an employee work on personal things first then come in refreshed vs burning out and never recharging because I'm demanding their peak "productive" hours.

Every employee I've had that has medium or larger scale hobby outside of work (both in and out of domain) has been a better hire than those who don't. They attack problems differently, they're better organized, and have never complained about burnout.

However, teams that have had a string of mandatory meetings in the AM are measurably less productive in my experience. I think there's something to this.


> I don't believe this, and I don't see how it squares with "the number of hours you can be productive is limited."

If i had to guess, i'd say people don't perform well for 8 hours a day. A significant portion of people's butt-in-chair is just that, a butt in the chair. For sake of discussion, lets say only 5 hours of real work is done during that 8 hour stint.

So i think the real question is does 2 hours of side-work before the 8 hour butt-in-chair impact the 5 hours of primary-work? Because if 3 hours are wasted in your 8 hour butt-in-chair, they _might_ not matter where the waste/mental-breaks/whatever are allocated.

Ie, if you mentally need a break from the 2 hours of work, during your butt-in-chair time, perhaps that's a net-wash with other time-wasting behaviors already taking place.

All hypothetical of course. I do know that i've seen numerous studies about how efficient we actually are over 8 hours of butt-in-chair. It's not pretty.


Good thing what he does outside of work isn't any of your business. We should make decisions based on outcomes rather than our assumptions.


Fine. Then when his performance declines it's going to be the first thing I ask him about. My point is more about the juxtaposition of saying "I have limited productive hours in a day" and "because of that, I'm going to spend them before my paid job."


Then if his performance declines below what is expected of that grade level...

Fixed it for you


Of the top of my head reasons why both things can be true at the same time:

1. "All other things equal" applies to productivity pool.

A happier person or a more flexible thinker might gain productive hours.

2. With hobbies you (probably) have to do everything by yourself.

At work you can lean on others for decisions, graphic design, frontend/backend and other things that might drain you more (because its not your expertise)

3. As others have said: Hobbies are optional

Which probably affects you eventhough you _might_ still have productivity-reserves

4. Work is SO much more than 100% productivity.

Meetings, social time, administration, clean-up, etc... might be things you can do while not 100% focused.

And as others have said, everyone will be better off if you start valuing outcome, employee happiness, and other things as well.

It comes of as kindoff entitled to presume that all personal productivity it something that you as an employer have "lost".


If you're measuring your employees productivity in hours, you're doing a dis-service to your employees and yourself.


No, I'm measuring them in results. But the whole point of the OP was that you have a limited number of results per 24 hours. If that's true, then surely generating results on your personal project before work means you'll generate less at work?


Again, you have to define what is the expected results, and meet up with salary and other things.

You can't just demand all of the results.


I'd like a job that pays that much. That's basically double my salary.


I would never work for you. Also $150k is really low, even for a junior position.


Wow, now I feel bad. I have 7 years of experience and I am just now nearing the $150k cash level.


Before you go through the trouble of feeling bad, make sure to ask about the cost of living.

$150k in the US Midwest is a lot better than $300k in SF or NY.


Great point about the hobbies. Too many people are tied to the clock for when to do things. Get up at 6, go to work at 7, be home by x. Time is relative. I plan to now switch my clock to do my hobbies first. Thanks for the suggestion.


Remote work is a blessing. I don't miss the office, not the commute.


Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: