Ask HN: What was your most humbling learning moment?
532 points| spcebar | 1 year ago
I only recently learned how to correctly raise and lower window blinds--I had been doing it wrong my entire life. It was maybe the dumbest I have ever felt, and was a humbling reminder of how much I don't know about how much I don't know.
Have you had similar experiences?
[+] [-] hu3|1 year ago|reply
I've seen entire teams burn so much money by overcomplicating projects. Bikesheding about how to implement DDD, Hexagonal Architecture, design patterns, complex queues that would maybe one day be required if the company scaled 1000x, unnecessary eventual consistency that required so much machinery and man hours to keep data integrity under control. Some of these projects were so late in their deadlines that had to be cancelled.
And then I've seen one man projects copy pasting spaghetti code around like there's no tomorrow that had a working system within 1/10th of the budget.
Now I admire those who can just produce value without worrying too much about what's under the hood. Very important mindset for most startups. And a very humbling realization.
[+] [-] jaydeegee|1 year ago|reply
[+] [-] projectileboy|1 year ago|reply
[+] [-] mablopoule|1 year ago|reply
EDIT: Totally agree about the 'important mindest for startup', I had a similar eye-opening experience, working in a startup with 'cowboy' code that was actually quite good, but I had to unlearn a bit of stuff I read as a junior/mid-level developper.
It was code that was well-architected, had well-concieved data structure, and had business value, but every "professional" coder would deem bad-quality, since it had no unit test, did some stuff unconventionally, and probably would have many linter warning.
[+] [-] stavros|1 year ago|reply
Always write the simplest thing you can, but no simpler. Finding that line is where all the art is.
[+] [-] jjmarr|1 year ago|reply
The logical implication of technical debt having an interest rate (i.e. It costs more to fix something later than now) is that like money, features have time value. This is what makes it worth it to incur technical debt.
Thinking about the implied interest rate of technical debt makes it easier to rank what should be prioritized for a fix. High interest debt should be paid off first. But you might also focus on refactors that reduce the interest rate, such as by modularizing your code so it's easier to replace down the line.
[+] [-] bicx|1 year ago|reply
[+] [-] surfingdino|1 year ago|reply
[+] [-] buffalobuffalo|1 year ago|reply
[+] [-] lr4444lr|1 year ago|reply
Some of these projects were so late in their deadlines that had to be canceled
Speed is really important a lot more often than devs like to acknowledge when a company is small and fighting for its life to get revenue, let alone become profitable, and the code debt is often worth it. Fixing the code debt itself doesn't need to be any more thorough than necessary either.
[+] [-] sevnin|1 year ago|reply
[+] [-] Simon_ORourke|1 year ago|reply
Compare this to another colleague, with an almost exactly similar use case, who just downloaded an open-source LLM, wrote some glue code and set it loose in production. It's not pretty but it (mostly) gets the job done.
As the old addage goes "Perfect is the enemy of good".
[+] [-] spoiler|1 year ago|reply
There's overcomplicated, there's too basic, and then there's simple.
I think it's fine adding just enough complexity and abstraction to make something malleable and manageable in the future
[+] [-] boznz|1 year ago|reply
The code is not brilliant, it is full of technical debt (as thats what happens when companies grow and change) but is still perfectly maintainable.
I have been watching the herculean effort of three different teams to replace this system, carving off the low hanging fruit to NetSuite and React/Java applications while repeatedly delaying the core system while they agree on standards to use.
I stick around as I am quite close to retirement now and the employees and the company are good to work with and don't deserve me to abandon them. At this point I genuinely want the projects to succeed so I can move on as there are many small companies still out there that I can make a difference in even with my age, single man risk and obsolete software.
[+] [-] tictacttoe|1 year ago|reply
But at least in science roles it hasn’t happened yet. Rather, I keep seeing instances of bogus scientific conclusions which waste money for years before they are corrected.
Being systematic, reproducible, and thorough is difficult, but it’s the only way to do science.
[+] [-] axegon_|1 year ago|reply
[+] [-] typ|1 year ago|reply
[+] [-] jasfi|1 year ago|reply
As a struggling solo tech founder, I'm in awe.
[+] [-] dev-jayson|1 year ago|reply
I can't even add a logger without having to refactor the whole 2000 line class while writing a whole-ass unit test for it. It's been a full year and I still have to deal with this sort of crap on a weekly basis.
The most ironic part is that most of the devs that cooked the spaghetti are now either in upper management or in the same devOps team that's demanding us to clean the mess up.
[+] [-] datavirtue|1 year ago|reply
Instead it's combative code reviews where everything has to enter the code base perfect.
Makes me sick.
[+] [-] skepticATX|1 year ago|reply
Almost everything else about code is subjective, but value is objective.
[+] [-] tcarnell|1 year ago|reply
JUST_DO_IT (add value, fast) <-----------------------------------> WHAT_THE_BOOK_SAYS (enterprise arch etc etc)
The BIG problem is the total misconception that:
> JUST_DO_IT = bad engineering
> WHAT_THE_BOOK_SAYS = good engineering
In reality, the quality of execution is independent of the development approach - you can make a complete mess of either approach, however, the WHAT_THE_BOOK_SAYS approach WILL cost you a LOT more time and money to discover your team has messed up it and WILL cost a lot more time and money to fix.
My experience is that, just as your product evolves & grows, your engineering strategy should evolve and grow. There's a good reason why fortune 500 companies will have enormous IT teams, using enterprise cloud technology... and there's a good reason why successful tech start-ups do the exact opposite.... but hopefully, the startup will become a fortune 500 company.
[+] [-] deadbabe|1 year ago|reply
[+] [-] khazhoux|1 year ago|reply
By that point, the fast team would be on their third iteration.
[+] [-] mynameishere|1 year ago|reply
https://en.wikipedia.org/wiki/Architecture_astronaut
...bikeshedding is when you have that all-day, all-teams meeting where marketing and design and management argue about whether to put X content in the header or footer.
[+] [-] bch|1 year ago|reply
[+] [-] bloomingeek|1 year ago|reply
The operating system computer was a JC8520, which was running a version of MS-DOS. All commands had to be typed in correctly or nothing would happen. While operating the plant, several commands had to be entered every shift, since the owners didn't purchase a very automated package.
In the interview for the data center job, I was asked if I had any experience with Windows. I didn't understand the question because I wasn't aware they were talking about a computer operating system! So, I replied at the office building I worked in there were outside contractors who cleaned the windows.
After my reply all seven of the interviewers were all grinning and I was aware I said something they weren't looking for. One of the men politely told me Windows was a computer operating system. My reply was, "Oh, I see."
When I returned home I told my wife what happened and we shouldn't get our hopes up. To my utter shock, a week later I was offered the job, which I took and after some training, learned something I didn't know before.
[+] [-] nicbou|1 year ago|reply
I have met more people like that while travelling. I felt badass riding my motorcycle super far, but wherever I went, there was a greater badass riding along. Some of these travellers were on much longer journeys, on much smaller budgets, on a much worse bikes, riding offroad all the way, camping every night. Some were on bicycles, going around the world under their own power. I was just a rich tourist with a great bike who slept in hotels.
In a way, meeting those people was liberating. I will never be a world champion at anything, so I might as well play for the love of the sport.
[+] [-] DoreenMichele|1 year ago|reply
So we set up a TV down there and it's a rental so we don't want to drill holes anywhere and I'm talking to my 8 year old about going to the store, buying like 100 feet of cable and running it the long way around the outer wall of the room etc. when he says "What about the hole (in the wall, directly behind the TV and the other side is the stairs)?"
To be fair, he spent time in that room and the opening in the cement block wall or whatever was full of insulation, so it wasn't obvious, but man did I feel stupid for a minute.
And then very relieved because we already owned a long enough cable to set it up through the hole in the wall. The 100 foot cable would have been a bit of a financial burden and going to buy it and then run it the long way around would have eaten the rest of my day and this was resolved in minutes because I always encouraged my kids to ask questions and didn't treat them like that was "disrespecting my authority" or something.
[+] [-] eru|1 year ago|reply
[+] [-] Dangeranger|1 year ago|reply
[+] [-] rpgwaiter|1 year ago|reply
It all came to a head when my employer was demoing some software that used my API and none of what they were trying to show worked because of multiple unrelated bugs in my code, causing us to lose this very large client. I somehow kept my position, worked with other departments to formalize QA processes, and started regularly communicating with the API users.
Before I was just making software for nobody with 0 stakes, the reality of having actual people, entire revenue streams dependent on my code being reliable didn’t fully register. At my previous (and only other at the time) employer I was basically a paid seat filler. I spent a lot of work hours making personal projects, it felt like going to work and getting paid to make hobby code.
I’m glad I was able to learn from the experience and it didn’t put me out of work or anything
[+] [-] mr-wendel|1 year ago|reply
I was sure the right thing to do was to report it to the CEO (there wasn't anyone else higher in the hierarchy to consider) for certain chastisement and correction. I was commended and the sysadmin got a browbeating.
I definitely did right by the policies in place. However, not too long after I realized there was certainly a better way to handle it and my behavior had more to do with scoring points than doing the right thing.
This was also someone who went out of their way to mentor younger employees and help kindle a passion for this line of work. I was a major beneficiary of this, so I look back upon that incident with nothing but regret.
[+] [-] snipethunder|1 year ago|reply
[+] [-] wnolens|1 year ago|reply
[+] [-] zerr|1 year ago|reply
[+] [-] bhy|1 year ago|reply
[+] [-] oblib|1 year ago|reply
After listening to me for a bit he quietly said "Well, you can learn something from everyone if you focus on that."
I spent a couple days pondering that. At first I tried dismissing it because he wasn't there when the guy I was whining about was blabbering on and on, and he didn't know the guy, but it kept bugging me and after a few more days it occurred to me that if he was right I'd been missing out.
Just a few days later the guy I was whining about came by again and looked at the work I was doing told me he knew a guy who could do most of that for me and it wouldn't cost as much and I could get it done a lot faster. So I went and talked to the guy, and sure enough he could do it, and do it faster and better, and it cost me a lot less.
I ended up making a lot more money on that work, and the company I was doing it for was thrilled with the changes. And since then I've focused what I can learn from others, even those who tend to annoy me.
[+] [-] wanderingmind|1 year ago|reply
It made me realise that success is not because of what you are capable of. To, most extent its about how you fit into the system and work it to your favor.
So, while I'm still curious and interested to learn (why else to visit HN), I have stopped feeling bitter about my efforts not providing the returns. Its just the way world works.
[+] [-] talkingtab|1 year ago|reply
There was a wood cooking stove and a second older wood cooking stove. We decide to start using the second wood cooking stove for more heat. There was one problem, the stove would smoke. My friend climbed on the roof and cleared the snow away, and we tried to seal leaks but it kept smoking.
One day I came back from drilling a hole in the ice to get water - through 24 inches of ice. I noticed something funny.
When I opened the door, the old wood cook stove stopped smoking. When I closed the door the stove started smoking. I stood there trying to understand. Opening and closing the door over and over. Open the door, no smoke. Close the door, smoke. I started to wonder why it would stop smoking and then it hit me.
The cabin was on fire. When the door was open it got enough air to burst into flame. No smoke. When the door was closed it smoked. I still remember standing there opening and closing the door. Over and over. What an idiot. But I learned something.
We looked underneath the cook stove. The reason there was a newer one wood stove became clear. The firebox on the old stove had rusted through. So coals from the wood were falling through the rusted out part onto the wood floor. We got a fire extinguisher and sprayed it. Then got piles of snow and packed it under there too.
That old adage "where there's smoke there's fire". Not quite accurate.
[+] [-] AndrewKemendo|1 year ago|reply
As SIO you are statutorily responsible for the joint worldwide intelligence, communication system (JWICS), maintenance, security, growth, interruptibility, etc… in addition to managing all Perssec for SCI holders, and maintaining control, security and for CNWDI as well as ACCM.
I was fresh home after a deployment to Iraq and thrown right into dealing with the Yp-Do crisis in SK and the Japanese Tsunami and Fukushima fallout that we had to provide HA/DR support for.
I was 28 years old with a one year old at home.
As part of maintaining security, I would regularly get inspected as you would expect for any manner of things. There is a special security team that lives at the defense intelligence agency primarily but also they have them for NSA and other organizations, that would do white hat penetration tests on secure information facilities, like all the ones that I was responsible for (I had a half dozen physical locations to manage).
One of these tests was during a large scale exercise. Two civilians who had perfect credentials, were trying to access our primary headquarters SCIF. At the time I think I was managing a top-secret briefing preparation and so I delegated access control, and interrogation of these two people to another Lieutenant, as well as the actual special security officer who was an E6.
They had previously tried to penetrate all of the other places on base, but failed.
The process for getting access to a SCIF if you are not housed there is that that you send a visit request from your home security office to the visiting security office which will then transfer clearance details so that you can understand what access levels to give these people.
About a month before their visit, there was a new guidance released saying that all visit requests had to have a digital requst in 100% of cases whereas are previously you could just print out your details and bring them with you, The special security officer would then look them up in a system (I won’t name), and then it’s up to the security office whether they give you access or not.
My Special Security officer and my lieutenant came to me and said they have everything that they need per the requirements that we were operating under, and that they were comfortable giving them access to a terminal where they could do what they needed to do.
I said “that’s perfectly fine however LT I want you to sit behind them basically and make sure they don’t walk off or do anything more than I’m giving them access to.”
So for like 30 minutes, we had two people in our SCIF who logged onto JWICS, we’re being actively monitored and were able to send an email and then logged off and left.
The next week, my commander asked me to go to a meeting and the penetration team briefed to the whole base how they got into all these places including my SCIF and one other facility
The good thing was, we were basically written up with flying colors, and this was the hardest possible test that they were able to get through and so everybody was generally happy with us.
This was really just one of those things where it was a specific detail that we were not up-to-date with but didn’t have any major defense in depth risks.
[+] [-] jv22222|1 year ago|reply
I was given the camera and sent in to the mosh pit to film from that perspective. After the show I gave the camera back to him. He said, "where's the footage?"
I had been "filming" looking through the view finder, but I had forgotten to press record.
Gutted.
[+] [-] protocolture|1 year ago|reply
2. Being able to break into a 24 hour data centre because the data centres building management just didnt give a shit. Turns out they had fired all their staff and were leaving the DC empty until they liquidated. We managed to get our kit and bail. But like physical security provided by a third party is ephemeral.
3. I used to lock my bike to my tool shelf. A thief came along and used my hacksaw from my toolshelf to break my bike lock and steal my bike. Thieves will use anything available, not just what I want them to use.
4. Had 2 console windows open. First to a Junos device on my desk. Second to a Junos core router. I reloaded one, and didnt realise I had reloaded the wrong one until we lost an entire state. Multitasking invites risk.
5. Customer had a huge failure. Kept insisting they would rebuild completely, but would routinely beg for just one more dodgy workaround just to keep them going. They never rebuilt. That network is perma fucked. Customer promises are worthless.
6. Much like 5. Customer got bought out by a larger firm. Began to raise new deployments by escalating to the after hours noc, pretending that new deployments were actually failed existing sites. We asked them to stop and they never did. If theres a large enough financial interest customers will just ignore contract and good practice to make the payday.
[+] [-] meristohm|1 year ago|reply
[+] [-] koeng|1 year ago|reply
It’s humbling because all my life, I’ve been really good at technology - I specialize in biotechnology and manipulating DNA, but am also fluent in programming (mainly python, go, lua) and am able to build hardware - even helped run a robotics startup for a while. Anything related to technology and science comes easily and naturally to me. This isn’t to brag, but just a fact that learning things has mostly been something I do way, way faster than my peers.
But I’ve never danced before, or done anything that required that particular skill set - then realizing I’m real bad at it. Seeing all my peers learn faster and be better, with the same amount of study and practice time, and really trying my hardest and just not being good at it. I’m really thankful for this experience! And I really enjoy dancing, and will definitely keep doing it!
[+] [-] Stratoscope|1 year ago|reply
I was working at Tymshare, maintaining the assembler and linker for the PDP-10 or the Sigma 7 (I don't quite remember which).
The linker had a bad habit of leaving unused memory uninitialized. Every time you linked a program, the binary would be different. Functionally the same, but they wouldn't compare byte for byte. So my manager asked me to make sure the linker zeroed out all unused memory.
After linking a program, the linker printed a message something like this:
The "bytes free" were that unused and uninitialized memory.The linker was a mess of spaghetti assembly code, and it was a real pain to find and fix all of the places where it failed to clear memory.
My manager knew what a hassle this task was, and he was a chill dude. So just for fun I added a temporary message meant for his eyes only:
I figured he would get a laugh out of this and then I'd remove it.Unfortunately my manager wasn't the first to see the message. His manager was giving a demo to a customer, and they were the first ones to see the message. Oops.
[+] [-] kennu|1 year ago|reply
For instance, I learned that you should never trust what a customer says about reusing their existing code without actually looking at the code first. You can end up having to rewrite the code, and then have a dissatisfied customer, because the new code doesn't have the same problems as the old code and produces different results. It doesn't matter which one is correct, since the old code was already used for years and everything is based on it.
So the humbling experience has been not to become too optimistic and overconfident after some successful projects. You will become the bad guy if you over-promise and can't deliver, even if you feel someone else is actually to blame. Every time you start something new, you have to check for yourself what the requirements and conditions truly are before accepting a deadline. And you can never trust the documentation or description of an existing system without also looking at the actual system.
[+] [-] jnsie|1 year ago|reply
There were so many learnings it's hard to know which is the most important, but I know that I am not cut out to day trade, I know that shorting is a fools game for (most?) non-institutional investors, I know that if it sounds too good to be true ("day trading will make you rich!") then it is and I know that even people of regular intelligence (I'd be average give or take) can do really stupid things. Never again. Never again!
[+] [-] zamalek|1 year ago|reply
[+] [-] _boffin_|1 year ago|reply
I had been a personal trainer for awhile when I got a new client. An eighty something professor who taught Dante’s Inferno, Italian, collected degrees, and was actively pursuing some field in psychology (forget what one).
For about 6 months, we’d work out on Saturday mornings and he’d always ask of my adventures since we last saw each other. I’d regale him and that was that.
One morning after going though it all, he asked, “what else is there?” or something. Whatever it was, it stopped me in my tracks. I couldn’t answer. That question hit me harder than a freight train.
At that moment, I realized there was a massive issue with myself. I wanted a change, but a) didn’t know what to change, b) how to change, 3) how to feel about myself. We continued to work on him and his goals, which was to bench 135 safely. He got to his goal. ;). He also helped me to get to mine, which was to focus more on internal validation and be happy with self.
I was able to shift from heavily skewed external validation to external validation probably being now around 20%-30% and the rest being internal.
Because of him, I was able to embrace myself and lean into the information seeking snd knowledge gaining person I am today and get to a level that someone with my academic background should not be at.
A quote that I came up with many years ago that explains all of this and the transformation I had, “you’re not going to change until the pain of change is less than the pain of staying the same.”
One other one too. From him, the professor. I have severe adhd and can read the same sentence 50 time and not remember what I just read, if it’s not something I’m highly interested in. I came to him and told him that it’s so damn boring and it’s just a fight to sit there and attempt to read it.
He gave me a mind shift: instead of thinking how it’s important or exciting to you, try to imagine why the author of it thought it was so exciting, to where they spent their career learning about that subject. That allowed me to completely change how I read and that too has helped me more in the past years than I could imagine.