HNHacker News
TopNewBestAskShowJobs

edw519

73,784 karma · joined February 21, 2007

submissionscomments
edw519··on Ask HN: Laid off today for the first time, anything to be wary of? Advice?
Truth be told I was planning on quitting at 3pm during my bi-weekly one-on-one with the CTO, so I'm taking it in stride/happy.

Happy? You should be ecstatic. You just won the lottery!

What you would have received if you had quit at 3pm: nothing.

What you will receive because they beat you to it: 4 weeks pay, 5 weeks benefits, 26 weeks (potentially) unemployment. I dunno, something like $10,000 to $20,000.

Count you lucky stars and enjoy your lottery winnings. I wish I could figure out how to do that.

edw519··on Ask HN: If you were to switch career, what would you do?
Stand-up comic.

I would never have to write a thing. After all these years in enterprise I.T., I have enough material for life.

I'll just tell them stories from real life at work. I doubt I could write anything nearly as funny as what actually happened.

Example:

  Jimmy: I closed 7 tickets this week. How'd you do?
  Kim: I had a bad week. I opened 2.
  Boss: We have too many open tickets!
  Kim: Don't blame Jimmy and me. We closed 5.
(I'll be here all day, folks.)
edw519··on How terrible code gets written by perfectly sane people
Assuming that good process fixes bad people

Corollary: Assuming that good process doesn't restrict good people.

This is one of my biggest pet peeves: management decisions that don't account enough for outliers; that is, their best people. Management has never done it, therefore it cannot be done. This, as much as anything else, drives your best developers away.

Give us the hard stuff to do and let us alone to do it. That's all we ask.

Otherwise you're left with terrible code.

Great post. You struck a lot of nerves. Thank you, OP.

edw519··on Show HN: Publish a Markdown website in 5 minutes
Thank you for this, kristerv.

At first I agreed with many of the other posters, that this just had more overhead than it needed, so I didn't take it seriously.

But when I saw this comment, I got it.

It's an MVP! You launched it before it was ready, but not before you were ready. Which is exactly what we're supposed to do. Grow a thick skin, share it, and take your lumps. This way, your baby will grow up much faster than it would have it you went it alone.

Many of us here, including myself, are too chicken to do that as early as we should. Thank you for showing the way.

Respect.

edw519··on Silicon Valley’s “megacommute” even worse than L.A
I'm definitely valuing that over "being in the industry".

You ARE in the industry.

For every programmer in Silicon Valley, there are x of us not in Silicon Valley. And there's probably little correlation between whether or not you're in Silicon Valley and the coolness and value of whatever you're building.

I love visiting but I can't imagine living there.

edw519··on Bill Belichick Throws in the Tablet
This is what inevitably happens when you have a solution looking for a problem.

I have 2 "systems" at work...

One includes email and a white board with index cards taped to the wall next to it.

The other includes Jira, Confluence, Infor, Sharepoint, Word, Excel, Powerpoint, Adobe Illustrator, GIMP, Skype, Webex, Success Factors, and a whole bunch of other stuff.

If I don't need all this horrible shit to build software, why would anyone need any of it to play football?

edw519··on Show HN: Ascii to SVG

  WW    WW    WW    HH     HH    YY      YY     ??
   WW   WW   WW     HH     HH     YY    YY    ??  ??
    WW  WW  WW      HHHHHHHHH      YY  YY        ??
     WW WW WW       HH     HH       YYYY       ??
      WWWWW         HH     HH        YY        ??
       WWW          HH     HH        YY        ??
edw519··on Ask HN: When are you considered a “senior” programmer?
Whatever it takes to best satisfy your customer. That's it.

No, I'm not being snarky, so hear me out...

I've met and worked with many developers over the years and lots of them have become very good with technology and user domains, but still have struggled to "crack the digital ceiling". These are brilliant people who have achieved serious things, but are still not recognized by the big decision makers as "senior", whatever that means.

Then there are a select few who always get the big gigs, big money, and big reputations. Why? Because they best satisfy their customers. There are lots of non-technical skills that help them, but I think the biggest is their ability to separate the signal from the noise and zero in of the most important things to work on and to get them done. It's almost like they have "satisfiability radar". And this rarely requires any special technical or people skills. All they really have to learn is a good grasp of the technology, a deep understanding of the customer's domain and business, and the ability to get things done through others. And how did they develop them? By good old fashioned grunt work, whether digging into the bowels of the system or getting up off their butts and relentlessly going around finding out whatever they needed to know.

Once you've figured out the best thing(s) to work on to best satisfy your customers, got them onto the decision makers' radar, and found a way to get them done one way or the other, you are no longer a dev or even a senior dev. You're now a digital rainmaker, the most senior dev of all.

edw519··on The Programmer’s Guide to a Sane Workweek
Finally, you'll need to have the self-confidence or stubbornness to choose and stick to a path that most people don't take.

You don't need self-confidence or stubbornness, just commitment to your principles...

I have never worked more than 40 hours per week for anyone else. Ever. I arrive at 8. I leave at 5. I don't work from home.

Except for emergencies.

My definition of emergency: If someone is dying or their production software isn't working. That's it. Anything else, I'll be in all day tomorrow and will be happy to talk about it then.

All you really need to do is reach an understanding with your manager about your boundaries and the definition of "emergency" at the beginning.

If they want to pay 40 hours for more than 40 hours of work or have a different definition of emergency, they I'll work somewhere else.

It's really that simple. I've been doing this for almost 40 years and have never had a single complaint about it.

And I'm not sure which "most people" OP knows, but "most people" I know have a philosophy similar to mine. We'll do whatever it takes to get the job done, but we won't be suckers.

OP, do you really need a whole book for this?

edw519··on What to Do When Your Colleague Creates Spaghetti Code
“How can I get Bill to stop writing spaghetti code” is only superficially a technical problem. In reality, it presents a human problem.

Actually, it's a management problem. Management must establish and enforce proper process and culture.

Necessary but not sufficient:

  1. Code standards, determined and agreed upon together
  2. Peer review against those standards
  3. Requirements Definition policies and procedures
  4. Function Specification policies and procedures
  5. Unit Testing policies and procedures
  6. Technical debt policies and procedures (when to grandfather)
None of this has to be that complicated. When the rules are understandable, logical, and everyone agrees to play by them, this takes the monkey off everyone's back. You don't have to worry about approaching Bill about his bad code. You have a "business framework" you can rely upon to take care of that for you. Then no one's the bad guy. This is just good basic I.T. management.

Spaghetti code by others is the norm. I have maintained the shitty code of thousands of others. If they're gone, I cuss them all day long. If they're still here, I'm nice. I help management build the processes needed so that I can stay nice. I do my job. I expect management to do theirs.

edw519··on Technical debt as an opportunity to accumulate technical wealth
I look forward to that book! (Although I'm not really sure I would classify anything I mentioned as "technical". I think it's all "CIO-discussable".)

Welcome to Hacker News, Andrea, and thanks for making such a nice contribution on your first day. If your motivation ever ebbs, just let me know. :-)

edw519··on Technical debt as an opportunity to accumulate technical wealth
I really wanted to like this post. It's well written. With passion. Using a common metaphor (a house). And about the biggest elephant in the I.T. room today.

But I couldn't. Because it just skated on the surface of the iceberg.

OP is right. Technical debt is a huge problem that requires significant mind shift to address. And I can't find a single thing here that I'd disagree with.

There's a lot of academic theory and cheer leading here. And true, it's requisite to any further discussion. But what I would love to see are specific prescriptions:

  How do you train to avoid the sins of the past?
  How do you enhance process (peer review, QA)?
  How do you conduct post-mortems to organize the attack?
  How do you decide what to black box and what to rewrite?
  How do you prioritize shoring up the foundation and keeping the lights on?
  How do you find tools to automate the process?
  How do you make technology decisions to set the new path?
And probably most of all:

  How do you fix the broken data supporting all this bad code?
Because any treatment of code without diving deeply into the underlying data structure is too myoptic to be of much value.

I've estimated that half of the bad legacy code I've ever encountered would never have even been written if the data were properly structured in the first place. This isn't a discussion of DBMS technology, but a comprehensive treatment of how the business operates and how it's supporting data must be structured, regardless of technology. Fix the data and the code becomes a much more manageable problem to attack.

Of course, maybe OP just didn't get that far.

Nice article. I'd love to read the sequel, about 5 levels deeper.

edw519··on Seattle C.E.O. Who Promised $70,000 Salaries Wins Suit Filed by Brother
MAJOR FAIL!

Losing brother: “I am shocked and disappointed with the decision and I will be considering my options.”

Winning brother: “My love for my brother is unconditional...I’m thankful for the opportunity to put this challenging time behind us,”.

One of my biggest concerns the past 10 years or so has been the difficult of technology's distinguishing between "building stuff to make the world better" and "chasing nickels". This is clearly an example of the latter. Brothers in court? Disgusting.

I have always been a big proponent of free markets and sure, everyone has a right (and responsibilty) to earn for their good work, but this is just beyond any of that. Stories like this one demonstrate the worst behavior in a world full of blessings.

Frankly, I would sooner give it all up and do volunteer work before I would go to court against my own brother. Obviously, not everyone feels this way. What a pity some of us have lost our way and in the name of "something else", forgot what's really important.

edw519··on Elie Wiesel, Nobel Peace Prize Laureate and Holocaust Survivor, Dies at 87
"The opposite of love is not hate, it's indifference. The opposite of art is not ugliness, it's indifference. The opposite of faith is not heresy, it's indifference. And the opposite of life is not death, it's indifference.” - Elie Wiesel

R.I.P.

edw519··on Ask HN: What non-technical skills make a senior dev and how to develop them?
Whatever it takes to make money for customers. That's it.

No, I'm not being snarky, so hear me out...

I've met and worked with many developers over the years and lots of them have become very good with technology and user domains, but still have struggled to "crack the digital ceiling". These are brilliant people who have achieved serious things, but are still not recognized by the big decision makers as "senior", whatever that means.

Then there are a select few who always get the big gigs, big money, and big reputations. Why? Because they make money for their customers. There are lots of non-technical skills that help them, but I think the biggest is their ability to separate the signal from the noise and zero in of the most important things to work on and to get them done. It's almost like they have "profitability radar". And this rarely requires any special technical or people skills. All they really have to learn is a good grasp of the technology, a deep understanding of the customer's domain and business, and the ability to get things done through others. And how did they develop them? By good old fashioned grunt work, whether digging into the bowels of the system or getting up off their butts and relentlessly going around finding out whatever they needed to know.

Once you've figured out the best thing(s) to work on to make money, got them onto the decision makers' radar, and found a way to get them done one way or the other, you are no longer a dev or even a senior dev. You're now a digital rainmaker, the most senior dev of all.

edw519··on Mistakes Beginners Make When Working with Databases
Nice starter list. Here's more, off the top of my head:

  - failure to lock rows with pessimistic locking
  - failure to consider optimistic locking when viable
  - data sets within a table (undernormalization)
  - too much duplicate app code that should be stored procedure
  - overuse of stored procedures that should be in app code
  - appending with insert
  - appending to datasets with variable length
  - "smart" keys that can never be changed without rewriting
  - underuse of indexing to slow read performance
  - overuse of indexing to slow update performance
  - records too big for good hashing (undernormalization)
  - columns with different typed data (when DBMS allows)
  - columns with different logical data (app driven)
  - enhancing by inserting columns instead of appending
  - poor or missing audits
  - poor or missing security
  - poor or missing archiving
edw519··on Becoming a Professor
Wow, untilHellbanned, I was actually on your side in this strange thread.

Until you mentioned your 12 y.o. nephew.

You may have just set a new Hacker News record, moving up Paul Graham's Disagreement Hierarchy from DH0. (Name Calling) all the way up to DH4. (Counterargument) in just 2 replies!

http://paulgraham.com/disagree.html

edw519··on Ask HN: Do you spend more time coding or debugging?

                Analysis Programming Debugging Overhead
  ------------  -------- ----------- --------- --------
  My Own Stuff    30%       60%         10%       0%
  Others' Code    50%       10%         30%      10%
  Enterprise      10%       10%         10%      70%
edw519··on "I know how to program, but I don't know what to program"
It usually comes in a phrase similar to "I know how to program, but I don't know what to program."

"How" is about yourself. "What" is about others. Both are important, but "How" ususally comes first. The best way to transition from "How" to "What" is to trust that you have enough "How" (you probably do) and talk to enough others to understand their "What". That oughta give you plenty to do.

In the software community the rule is "don't reinvent the wheel." It's almost frowned upon if you rewrite a library when a mature and stable option exists. While it is a good rule in general, novices should not be afraid to reinvent the wheel. When it is done for learning or practice, it's totally OK to make a wheel!

Yes! The best thing I've ever done to get better ("graduating" to the next level) was to rewrite something else. Sometimes because I thought it sucked, sometimes because it was so cool that I wanted to grok how it worked from the inside out, but never because it needed rewriting. I have never learned anything reading someone else's code. I have always learned tons rewriting it.

Don't get the notion that you need to have the best idea ever before you write a program either.

I never write anything in order to get ideas. I write stuff in order to fill my tool box with enough skills and wisdom so that when I do get an idea, I'll be able to run with it.

How many of you have been in the situation where you think "I don't know what to program?" How did you handle it? What advice would you give to others in that situation?

Just write something, anything. You probably won't know where this will take you, but rest assured, it will take you somewhere you never would have found by not writing it.

Great post! Thank you, OP.

edw519··on The Absurd Primacy of the Car in American Life
I'm in Florida, too. I own a car and drive it once a month whether I need to or not. And I ride my bike about 4000 miles per year. The weather's great, it's flat, and I can always put my bike on any bus or train. My favorite part of every day.
edw519··on ASCII Art Weather

           \/\/\/\/
         /         \
        /           \
       /             \
   /\_/     0    0    \_/\
  |                       |
   \/ \      |_|      / \/
       \             /
        \  \-----/  / ---------- Brilliant!
         \         /
          \_______/
            |   |
edw519··on Cruise
Sorry to hear about all of this.

As a repeat solo founder and bootstrapper, I have an intense desire to spend the maximum amount of time satisifying my customers by helping them solve their problems. Sure, this approach often leaves a bundle on the table, but so what; lots of us just want to accomplish a lot and have fun building stuff and helping others, regardless of the payback.

I'm so glad I chose this way when I read stuff like this:

...long and sordid history...

...should own a substantial amount of Cruise’s equity...

...interfering with the pending Cruise/GM merger...

...offering to give Jeremy a lot of his own money...

...avoid a protracted litigation...

...worked incredibly hard to settle this claim amicably...

...obvious ridiculousness of it...

...incredible bummer these situations have to happen...

...least sensible professional situations...

...unfortunately these situations are not uncommon...

...I place myself at risk talking about this...

...say something before the lawyers can stop me...

...such behavior not be tolerated...

...personally involved all day on Friday...

...time pressure because of the pending merger...

edw519··on When It Comes to Age Bias, Tech Companies Don’t Even Bother to Lie
“in the tech world, gray hair and experience are really overrated,” Halligan said.

I guess once Halligan gets a little gray hair and experience, he'll realize how absurd this statement is and will regret ever saying it.

edw519··on My Passion Was My Weak Spot
In the end it’s all the same story, you get nothing or very close to nothing and meanwhile the owners of the company will get the product of your work and will make bank on that.

Nice post (as usual) Jacques. My experience is similar but my conclusion is the opposite.

Yes, I've been taken advantage of by almost everyone I've ever worked for and they got the product of my work.

But I didn't get nothing. Far from it...

I became a better programmer. A much better programmer. In fact, I'd venture to say that there was a direct correlation between how much I was taken advantage of and how much I grew.

Funny, I grew much less on the projects where I earned the most.

I pretty much knew what was going on all those years. I didn't like it, but I accepted it because I knew that in the long run, I'd be much better off.

They may have gotten the product of my work back then, but they didn't get the product of all the great work I've done since, which is worth much, much more.

In life I really believe the greatest growth comes from the most suffering. I believe the same thing is true with programming.

edw519··on Amazon Echo Dot
Exactly when did UnconventionalButTotallyLogical = CrankyOldMan ?
edw519··on Bill and Melinda Gates 2016 Annual Letter
Poverty is not just about a lack of money.

Someone who was gifted $1 million on the day he was born preaching about poverty is like someone who has never written a line of code running an I.T. department.

edw519··on Tale of Tasteless Tomatoes: Why Vegetables Do Not Taste Good Anymore
The delta between a great tomato and a good tomato is nontrivial but insignificant compared to the delta between any tomato and a Coca Cola.
edw519··on Leonardo da Vinci's application letter
Aaah, feels like a good time for me to recycle an oldie but goodie from #245 here: http://v25media.s3.amazonaws.com/edw519_mod.pdf

If it worked for Leonardo da Vinci, maybe it could work for me. The next time I’m looking for a job, I’ll try this:

“Most Illustrious Proprietor, Having now sufficiently considered the specimens of all those who proclaim themselves skilled developers of applications of business, and that the invention and operation of the said programs are nothing different from those in common use: I shall endeavor, without prejudice to any one else, to explain myself to your Company, showing your Management my secret, and then offering them to your best pleasure and approbation to work with effect at opportune moments on all those things which, in part, shall be briefly noted below.

1. I have a sort of extremely light and strong functions and modules, adapted to be most easily ftp’d, and with them you may pursue, and at any time combine them with others, secure and indestructible by standard mean time to failure of hardware and denial of service, easy and convenient to compile and catalog. Also methods of unzipping and storing the data of the customers.

2. I know how, when a website is besieged, to shard data onto the cloud, and make endless variety of mirrors, and fault tolerant disks and RAIDs, and other machines pertaining to such concerns.

3. If, by reason of the volume of the data, or the structure of the btrees and its indexes, it is impossible, when conducting a search, to avail oneself of sub-second response time, I have methods for benchmarking every process or other function, even if it were interpreted, etc.

4. Again, I have kinds of functions; most convenient and easy to ftp; and with these I can spawn lots of data almost resembling a torrent; and with the download of these cause great terror to the competitor, to his great detriment and confusion.

5. And if the processing should be on the desktop I have apps of many machines most efficient for data entry and reporting; and utilities which will satisfy the needs of the most demanding customers and users and consumers.

6. I have means by secret and tortuous scripts and modules, made without leaving tracks, to generate source code, even if it were needed to run on a client or a server.

7. I will make secure firewalls, safe and unattackable, which, entering among the hackers with their utilities, there is no body of crackers so great but they would break them. And behind these, software could run quite unhurt and without any hindrance.

8. In case of need I will make big properties, methods, and collections and useful forms, out of the common type.

9. Where the operation of compiling might fail, I would contrive scripts, functions, routines, and other parameter driven processes of marvellous efficacy and not in common use. And in short, according to the variety of cases, I can contrive various and endless means of data entry, reporting, and storage.

10. In times of low revenue I believe I can give perfect satisfaction and to the equal of any other in maintenance and the refactoring of code public and private; and in guiding data from one warehouse to another.

11. I can carry out code in Javascript, PHP, or C, and also I can do in network administration whatever may be done, as well as any other, be he who he may. Again, the intranet app may be taken in hand, which is to be to the immortal glory and eternal honor of all your customers of happy memory, and of the illustrious house of Google. And if any of the above-named things seem to anyone to be impossible or not feasible, I am most ready to make the experiment in your data center, or in whatever place may please your Businessperson - to whom I comment myself with the utmost humility, etc.”

edw519··on Ask HN: How can I stop forgetting “things”?
Have less stuff.

This may seem like a snarky answer, but I'm deadly serious...

Your mind should be spending it's energy processing important thoughts, not constantly doing read-seeks for the "frivolous". It's trying to tell you something. Listen.

Do whatever you have to do to make that transition as much as you can. I did years ago and it's probably the best thing I ever did to improve my ability to get things done.

edw519··on Ask HN: So I'm being let go
Disclaimer: Twice your age and just getting warmed up.

So I'm being let go

Congratulations. Being let go can sometimes be a badge of honor. Anyone who has never been let go has never pushed the envelope enough.

After 10 years at my local newspaper

Wow, that's way too long for anyone, anywhere. Be glad that this is working out that way for you. It's not the 10 years at one place that's the problem, it's all the other stuff you missed by being in that shelter. Now's your chance to discover cool things you may have missed.

I'm nervous, scared, and somewhat excited.

Change "somewhat" to "very". You should be.

I'm competing with younger, new grads.

No, you're not and you shouldn't think of it that way. There's plenty to go around for everyone.

it will force me out of my comfort zone

Good! That's the best way to grow.

I'm a jack of all trades master of none.

So am I. And it's worked very, very well for me. We have too many specialists and not nearly enough people who can visualize the forest and the trees at the same time. They are the ones who make big things happen.

I've always taken that as an insult rather than a compliment.

Wrong. See above.

So HN, what advice do you have for a 30 year old who's about to embark on a new adventure?

Have fun. Stop worrying. Find something you love and give it a shot. At 30, you're still a baby and you have opportunities that you may not have in 5 or 10 years. This is a blessing in disguise. Treat it that way.

← PreviousPage 6 of 34Next →