HNHacker News
TopNewBestAskShowJobs

fogetti

770 karma · joined August 3, 2016

submissionscomments
fogetti··on Ask HN: CS, still a good career in 3-5 years?
OK, so this will all be anecdotal. But what I am describing is not that uncommon. And I only worked for a very short time in the US. So if you plan to stay in the US for your whole working life than this advice might not even apply to you at all.

What you are asking and describing is happening right now. In some places around the world the industry is already an unsustainable shit-show, which offers zero financial incentive to a CS undergrad. Some such countries are Japan, Germany and Hungary.

The working hours are extremely long!!! You have to work 60 hours or more most of the time, but managers will try to sell it as a big plus (like, look you can go to all these flashy conferences and you can have kicker table + free buffet, you just have to work hard in exchange) even in face of concrete evidence that the industry in large is to the detriment of your well-being mentally and physically. This management technique is also called stick and carrot.

Also there is real age discrimination. Especially in startups. So it's really difficult to get work-life balance if your life does not revolve around the actual business that your company is doing.

If you can put up with all this shit, and you can save enough money let's say in 10 years so that you can quit, then it might be a good idea to pursue this kind of "career". But again, what kind of career is that sets it's goal as quitting in a reasonably short time.

Salary-wise your payment is gonna be slightly higher then let's say a simple journalist, accountant or let's say an average salesman, but not that great, and because of the long unpaid overtime you will basically get a quite low amortized salary.

fogetti··on Learning at work is work, and we must make space for it
The problem with your argument is: what if the organization doesn't support anyone in learning? (Just like 99% of companies and society in large) Would you say then that you are a low performer? Because based on your argument that's the only logical conclusion.

You seem to have jumped to a conclusion but I don't think this has anything to do with being high performer or not.

fogetti··on The Product-Minded Software Engineer
Sorry, but this is gonna be a kind of rant, so it's very subjective and highly anecdotal. But the post is also very subjective and highly anecdotal so meh I guess.

So what I want to say is that I've worked with this kind of person. It was exactly this type of engineer.

As a team member he is the worst kind of team player. While everyone is focusing on the actual sprint and the important tasks to be done, he keeps going around to other teams and collecting requirements for things: - which either has been already discussed and estimated before he joined the company but he is ignorant of that fact - which is supposed to be built on just his assumptions and because he is in no position to make decisions by himself he cannot really test his assumptions, and because he needs constant assistance to test his hypothesis he actually takes everyone's time on the team to work on assumptions that has no merit

At the same time for example he cannot identify the time when bugs need instant attention and need to be solved immediately so he seemingly cannot be bothered by those lowly matters of bugs and high priority things.

And because of his why? why? why? attitude even when the time is short and something has been discussed and written down in details MANY TIMES before, he needs constant repeating of every discussion because he just can't trust anything which was discussed WITHOUT HIM, his ego is too big for that.

Not to mention that he asks about product/engineering tradeoffs all the time when no-one, including him has nooo idea what are those tradeoffs, so the only thing he does is casting doubt and postponing decision making.

Not to mention that when he walks around for example and tries learning how other teams work, he is basically generating a false hope in people that he will actually deliver something soon. And oh man, couldn't be that any wronger?! Especially when he is in no position to make priorities and hiring decisions, etc, he is just basically playing a game, and this game is called politics.

This kind of person many times is just a constant waste of time. And yes, business people love these kind of person because someone finally speaks their language. The problem is that this language and communication is completely broken and misguided. Just like office politics is most of the time.

> They'll often spend a good amount of time debating hypothesizes and learnings with the product manager and data scientists

That's basically correct, and that's also how I would summarize. Let's call it the `Debate-Minded Software Engineer` instead and then I'll have no complaints. But this is not productive!!! You want to have 10 of these people on your team? In a fast moving startup? Good luck for implementing anything EVER.

Also these are the people who can never understand that some people are busier than him. So then they think: OK, instead of waiting a day, they can just go ahead and build something based on their understanding. And then they are watching with horror when somebody tells them to stop it, because there are other higher priority things to do.

Also somehow this post equates the product manager to be some kind of superman. If you ever worked outside of silicon valley you will know that even these days there are many companies, I would even say that's the majority of companies, where projects are built and delivered with big upfront design, and there is no follow-up on the release or anything like that. There is a select number of people in the design process and if you are not invited to the discussion, then you will never have the chance to impact the product even the slightest.

And one more thing. Since this post is just speculation and it's extremely anecdotal, let me share my anecdotal evidence too.

Even when someone looks like the ace that the post describes, my experience is that these people are not that fast! They are either as fast as everyone else, or just mediocre in the technical side of things. So the only way that I saw these people to operate is that they put in extreme hours outside of working hours so that they can get the info, the context, etc which they need to look smart and having insight.

And here is the real problem? Why would you or anyone suggest this kind of modus operandi? Isn't most engineers' life overworked and miserable enough? You guys in Silicon Valley have to understand that people outside that bubble in other countries have shitty salaries and no work-life balance, so the incentive to put in extra hours and be the superhero of the company is almost zero, even though WE HAVE TO DO THE SAME JOB ON THE SAME QUALITY LEVEL as you guys in SV.

I wish we would stop idealizing these kind of imaginary roles and positions in the industry because this is extremely damaging to our profession. Especially to those people who are not that successful then the post's author.

What would be much more preferable to see a post from the same author that he describes in detail why engineers choose not to be like the person he described. That would actually show some humility and actual respect to everyone in the field.

We don't need a bullet point list to become something else that we are. What we need though is scaling back and tuning down the voice of people who think that there is one true shiny way of product development.

fogetti··on The Product-Minded Software Engineer
I am sorry to play the devil's advocate but aren't you one of those with their own agenda's too? It's just matter of perspective how to judge yourself vs others, and putting yourself into the `good guys` camp seems biased to me.
fogetti··on Shibboleths that get you past the initial script stage
> “But I’m not a shareholder!” A surprising amount of Americans are shareholders in large financial institutions. Do you have an IRA? Does it invest in e.g. mutual funds? If you own a mutual fund or index fund, you are highly likely to beneficially own fractional shares of US financial institutions. Someone who owns 0.01 shares is a shareholder; welcome to the magic of capitalism.

I like this guy. He has great insight, this is very well put :D

fogetti··on After WeWork, SoftBank’s Startup Bookkeeping Draws Scrutiny
But isn't that how valuation works works by definition? Why is this model of financing under scrutiny only now???? Blows my mind...
fogetti··on After WeWork, SoftBank’s Startup Bookkeeping Draws Scrutiny
Well then maybe you should do the same thing first to set an example? Because what the OP describes is actually pretty much real. I would suggest you to check out Guy Standing and his research first.
fogetti··on After WeWork, SoftBank’s Startup Bookkeeping Draws Scrutiny
> "They pump up valuations to get higher returns to look good to investors" says Eric Schiffer

Seriously??? Who, even with half a brain could not understand that that's how venture capital works by definition???

fogetti··on Phoebus Cartel
You basically described what's wrong with caputalism in general. And I agree. Everybody shits their pants when there is a statue erected for the big leader but somehow noon really seems to care about the impact of big Corp to the same effect which is EXTREMELY troubling
fogetti··on An update on YC China
You mean as childish as the ordinary YC investors? You are right about that then
fogetti··on Unlike Babies, the Best Managers Come with Instructions
It seems you imply there are imperfect managers but there can only ever be perfect developers. I would be the happiest person on this planet if that would be the case. Excellent communication skills don't help if the listener is sub-par.
fogetti··on Unlike Babies, the Best Managers Come with Instructions
Your message really needs context otherwise it's just a random rant.

BTW no-one is deploying managers out of thin air. At least not in startups. What I can often see instead is that someone in the higher-ups needs OKRs, and he also wants to know your performance (and also others' on the team) so that he can decide who deserves a salary raise, and he would like to read a summary report about the highest priority project's progress during last week. Plus he would like someone to represent the team's technical standpoint next week when meeting a prospective client, plus he needs someone who goes around the team and asks what bothers them and what would the team like to see changed in their work environment, plus he also needs someone who hires new team members, plus he would also like to organize the mentoring of the junior members and would like to see someone be involved in the product roadmap discussions from the engineering side to make strategic decisions, plus he wants to build a new team and he wants to understand who would be the best candidate to participate in it, etc. The list goes on and on.

So who will do all these things? Most devs absolutely hate doing these things because it's not technical enough for their fastidious taste. Designers and PMs OTOH have no technical knowledge to make strategic engineering decisions on higher level than the individual level (and not even on the individual level many times).

fogetti··on The manager’s schedule is holding remote work back
The problem is that priorities are still to be managed. And there is no such thing as 10 people decide one priority. It's always one person who decides the priority either by signing a contract, pushing a button, committing some code, etc.

For this reason there will always be command and control, since an organization becomes dysfunctional when people act against decisions based on made-up priorities which are way mis-aligned with the real priorities which were decided.

Anyone who thinks otherwise is delusional. Of course there are different types of management styles like servant leadership for example. But that still doesn't change a damn thing. Now instead of the most aggressive person signing the contract, pushing the button, etc, now a nicer fellow signs the contract, then commands every one else to follow.

And having knowledge work on the table doesn't really change the equation either. That's why almost all IT companies these days use OKRs. An objective is to be set by managers and checked upon later (a.k.a command and control).

fogetti··on PostgREST
This is still a horrible idea.

No IDE support, no debugging support, poor language choice. It's just simply screaming NO NO NO NO NO NO NO on every level of the framework.

Not to mention that these days it is more important than ever to make the code also executable in cloud environments like GCP Cloud SQL or AWS RDS.

> You don't need an ORM to control your database.

You are actually wrong about that and you are basically the living proof that I was right. You didn't even try to address what I was writing about object relational impedance mismatch and inheritance.

> you can leverage PostgreSQL rich functionality

I think this is a slightly outdated world-view. As I mentioned above these days the most important driving factors are not what a specific DB vendor supports but mostly what the cloud providers do. And many of the cool things are only supported by plugins in Postgres anyway.

> you can do data transformations with plain and short SQL

You guess what? You can do the same in ORMs too! In any language which has a Postgres DB driver! No one is stopping you from that.

fogetti··on PostgREST
Inherent architectural flaws: - Complete lack of separation of concerns: you can see this by the terrible idea of simply slapping a transformation procedure to a non-specified part of the codebase. Every time you do this you end up having to maintain a codebase which has no architecturally defined place anywhere. See: https://postgrest.org/en/v6.0/how-tos/casting-type-to-custom...

- There is no ORM that you can control. It doesn't mean that there is no transformation needed though. It just simply means that you lose control over it. All the work which were once under your control now is handled by the database layer. Of course you can go to that layer and change the logic of the framework yourself (by sending strangely formatted HTTP requests according to the doc), but then you gain nothing by using this framework. Of course this problem stems from the same fact that there are no separation of concerns. So basically the framework is simply ignoring the fact that there is an inherent object relational impedance mismatch. Of course the authors are aware that there is a mismatch but they simply sweep it under the rug by saying that:

  "The PostgREST URL grammar limits the kinds of queries clients can perform. It prevents arbitrary, potentially poorly constructed and slow client queries. It’s good for quality of service, but means database administrators must create custom views and stored procedures to provide richer endpoints."
This will come back and bite you in the ass when you try to work with anything slightly complicated like inheritance for example. So the authors basically dump every single person in the world under the category of poor programmers, and they offer their excellence in place of your lack of skill or talent. Go, figure! I am always very skeptical when I read something like this. See: https://postgrest.org/en/v6.0/api.html#resource-embedding

https://postgrest.org/en/v6.0/api.html#custom-queries

- No testability: pl/pgSQL is a really poor language to write unit/integration tests for, mostly because it's ancient and it's procedural and there are no native frameworks to do so. Of course you can use pl/Python and others, but then again, why would you when you can write the same thing in Python without embedding the code in Postgres, and the Python ORM would take care of having the same performance on the database level for you.

- Lack of tools for migrations, etc. The list goes on.

fogetti··on How Not to Bomb a Job Offer
While I appreciate the time put into the article this is all speculation. Reality is most companies simply look at the average industry salary and pick that number as an offer. If the candidate doesn't accept it、 companies simply look elsewhere. End of story. Most companies are not that miserable to find new employees even when there is a labor shortage.

The only exception I can think of is being an expert of a specific field. But then again、that specific experience cannot be generalized for the simple reason that it is a SPECIAL case.

fogetti··on My company sold for $100M and I got zilch – how can that be?
I find it "funny" that the whole sharing and startup economy is basically built on top of something that resembles a Ponzi-scheme (not in terms of the actual operation of the scheme, but in the way how unfair the scheme is for different people in different roles). And the fact that the software industry happily embraces this modus operandi is simply mind boggling.

As far as I am concerned this scheme with the stock options (some people call them opportunity or investment) never should be substitute to social contracts, like a monthly pay check.

I find it especially nefarious the fact that people who invest time are penalized over people who invest money. This is especially true when the 4-5 year long time investment of a developer today can be easily worth millions. And a dozen developers' time investment can easily reach tens of millions.

fogetti··on Coffee Is Hard
It's tangential to the discussion but I find it surprising and slightly upsetting the fact that people downvote someone who basically quotes the definition of a word as-it-is, verbatim. It happens quite often on hacker news.

Are the folks here denying definitions and they make up their world instead and get upset when they encounter reality, or why does this downvoting happen? I'd really like to know.

fogetti··on Microsoft launches new open-source projects around Kubernetes and microservices
Thanks for the link. I haven't heard about this before but it seems really useful.
fogetti··on Interested in improving your relationships? Try Nonviolent Communication
You can blame the person for being angry or you can blame yourself why you cannot face other people's negative emotions. I dont think that the solution exclusively lies with the angry person in this case.
fogetti··on “My Google account got suspended because of NewPipe”
This sounds like simple accusation and speculation without any proof to me.
fogetti··on Ask HN: What are weird and/or novel ways to do web UIs?
"Good design is as little design as possible." - some German motherfucker
fogetti··on Online courses vs. colleges for software engineering
This doesn't make any sense. Just like you demoted the master's curriculum and all it's requirements to pass the classes on the way, you can say the same thing about the doctorate. You put in a few more years of minimal effort before losing patience to become a professor or having any kind of tenure.

There you go. You haven't proven you bring added value.

fogetti··on I built a wind map with WebGL (2017)
I really don't know if it's open to the public or not but windguru definitely has the dataset that you described. You might want to contact them to figure it out :)
fogetti··on Serverless: slower and more expensive
I haven't thought about step 3 before, but makes sense. Maybe I should show this to the guy who used Google Cloud Functions to upload images in our previous project :)

I guess the reasoning would be that this way the actual time spent in serverless code is shorter and by proxy the service becomes cheaper?

fogetti··on The Church of Interruption
So basically they are forcing the speaker to explain the same thing as they would have continued anyway, plus they even force the same speakers to fix the interrupters' mistakes in their thinking. Why is that good?
fogetti··on The Church of Interruption
Your view is extremely simplistic and just doesn't reflect the sophistication of any abstract and complex conversation.

Especially if the topic at hand is a new territory with a lot of unknown unknowns. If no-one ever explicitly says that "OK, we covered topic one and now we move on to topic two. Is there anyone who wants to add comments?", then the conversation was not very civil, was not yet over, and whoever organized the meeting was an amateur, and let the worst thing happen: Alice and Bob change topics for no reason, instead of stopping them short.

fogetti··on The Church of Interruption
I like your approach and in general I do the same. But some interrupters just never learn.

So in some cases when the interrupter keeps interrupting I simply ask him/her: "Can I finish my sentence?" In this case whatever the interrupter does it's too late for him, because it becomes obvious that his way of communication is not welcome and he was not even aware of this fact (i.e. he lacks self-awareness), and learning self-awareness in a group setting this way makes wonders.

Also I guess you make small refactors instead of reactors :)

fogetti··on Running GitHub on Rails 6.0
It was also just a year ago when Stripe released a static type checker for Ruby: https://sorbet.org/

Only haters think that Ruby and Ruby on Rails is dead end

fogetti··on Software Architecture Guide
I don't really understand your comment. Shows your ignorance to be honest: have you ever heard of active records? Or optimistic locking? Because these are VERY tangible software constructs and Martin Fowler for example wrote a whole book about them.
← PreviousPage 6 of 13Next →