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

To make this process safer I usually recommend:

  1. Put all new code behind feature flags that are off by default in production.
  2. Make rolling back easy.
  3. Have extensive unit and integration tests.
Some of the deployment steps could be automated even further -- maybe the CI server automatically deploys Staging after a successful build.

See the books Accelerate: The Science of Lean Software and DevOps, and The Toyota Way for more.


> Put all new code behind feature flags

How is that even possible? A comma change in a feature can break things, are you going to put that change behind a feature flag?

"New code" isn't just "new files/functions", so it's not always feasible to keep it behind flags, unless you use a "copy on write" methodology to all code.


Parent commenter probably meant putting new features behind a flag. I work for a major feature management company and we heavily use our own platform. Yet we don't put "all code" behind feature flags but we do with features. It's nearly impossible to put "all code" behind feature flags.


Right, basically this. If you're shipping something new that could affect production, put it behind a feature flag so the code paths that are already live are unaffected. Continuously ship small changesets so that it's easy to roll back if necessary.


> If you're shipping something new that could affect production…

Which, again, is everything. I’m all for feature flags, but they cover very specific cases. There are many changes that feature flags cannot cover. The addition of the feature flags itself can introduce bugs. They are a great feature but only one small piece of protecting production.


I subscribed to the golang-announce Google Group RSS feed in a Slack channel and was wondering why I didn't see the Go 1.17 announcement.


We're enjoying LeanPub for publishing Production Go (https://leanpub.com/productiongo).

You can write in Markdown, and sync with git. You can set a minimum price, but in our experience people often pay more.

A couple of notes:

  1. The ability to have a book be "in progress" is not necessarily a good thing, because you can get stuck in unfinished mode (like our book :().
  2. You can publish a print-ready PDF (https://leanpub.com/productiongo/print) but you'll need to purchase an ISBN separately (if you want).


When I was learning in university, How to Design Programs was the textbook: https://htdp.org/2020-8-1/Book/index.html


There are 2 edx courses based on the book too for those who prefer video instruction.

[1] https://www.edx.org/course/how-to-code-simple-data

[2] https://www.edx.org/course/how-to-code-complex-data


Early in my career I saw a large legacy project that was riddled with bugs turned around after a senior developer insisted on having unit tests. No one else believed in the value of unit testing, so he added them on his own in his free time. Occasionally another developer would push up some code that broke the senior developer's tests, and he gradually got the upper hand because he now had proof that his tests were finding real problems.

Everyone started writing unit tests, and the code broke less. Developers became more confident in deploying, and eventually most PRs looked roughly the same: 10-20 line diff on the top, unit tests on the bottom. If there were no tests, the reviewer asked for tests. It became a fun and safe project to work on, rather than something we all feared might break at any moment.

I've since started insisting on having them as well, especially when I'm using dynamically typed languages. A lot of the tests I write in Python for example are already covered in a language like Go just by having the type system.


I programmed the first 10 years of my life in compiled statically typed languages (C, C++, Java, etc), then I needed to start programming in Ruby for production environments and initially I felt "naked"; I felt so insecure when building something and not having it compiling successfully. That's when I really got into Unit Tests, bugs as stupid as "vlue" instead of "value" typos can plague your codebase in languages like javascript, python, ruby, etc; and testing is the only way to find them (other than... in production errors).


Genuine question -- how does adding wheels to the Mac Pro add value? I figured most people would just plop it on a desk.


I worked with a guy who had a DIY walking desk. Part of his setup involved leashing his tower like a dog and taking the whole mess around the block to work out tricky problems.

Poor guy would’ve been bound to his desk without the wheels.


I doubt you would want to be dragging a $50k Mac Pro around the block.


The guy was a 10x engineer. He was looking into medical tourism to have a feeding tube put in so he could fuel w/ Soylent.

Management would consider a $1k set of wheels a bargain to keep him happy.


??? He doesn’t sound right to me


This was a funny bit, ...right?


This comment is excellent.


If you work on set or Back stage or on tour. Not all editing and design work is done in an office.

I've worked in sound/lighting and we rack mount some machines in wheeled racks so they can be used to test/control/mix on any larger AV rack.


Thanks, that makes sense. If you don't mind me asking, what's your take on the cost of the wheels? As someone who has worked in sound/lighting, are they something you wouldn't have thought twice about buying?


Online classes can work, but it makes sense that students are frustrated by courses put together quickly due to unforeseen circumstances.

I've been a student of Georgia Tech's online Master's program for a few semesters now. They've had years to iterate based on previous students' feedback. I am learning an incredible amount for a decent price. But it is a Master's program and involves a lot of self-motivated research. Also, it costs roughly $850 per semester (if you take only one course). I'm not sure I'd have done it if it had cost thousands.


Gt's master in CS prices are, I think, the biggest reason for a large refund for this online half semester.

Where in state tuition is $13k a year, out of state is $33 and a masters program is $10k total (or $1700 a year based on the same calculations)


GT's MSCS is a totally different instruction model. It's all MOOCS, not focused online learning with regular sized classes. Most of the classes have 600 students in them.


Online classes are $8 a month and usually better quality than most uni lectures. If people wanted online classes they would've avoided uni altogether.


This is not what many people here seem to think it is. A real lawyer's take: https://twitter.com/openargs/status/1254873718855208960


ITA used to advertise puzzles on the MBTA (public transit) in Boston and I emailed in a solution when I was a university student. Looking back, it seems like an effective way to find candidates with a sense of curiosity for problem solving.

I eventually got an offer, but chose another job. They were acquired by Google soon after, and I sometimes regret not taking it!


I stumbled across another amazing resource a while back - recorded mock interviews:

https://interviewing.io/recordings/Python-Google-6/

I'm not affiliated with this site, I just thought this was a great idea and well executed.

I used to lean toward the "studying algorithms, data structures, whiteboarding, etc. is useless since I'll never actually need them" ideology until later in my career when I realized that worst case (for me) I can take a break from building CRUD apps and refresh my CS fundamentals. I enjoy speeding up code and then asking myself, "can I do better?" each step of the way, trying to make further improvements.


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

Search: