Yes. I just had a bad experience with an online shop. I got the thing I ordered, but the interaction was bad so I sent a note to their support email saying "I like your company, but I recently had this experience that felt icky, here's what happened" and their "AI Agent Bot" replied with a whole lot of platitudes and "Since you’ve indicated no action is needed and your order has been placed, we will be closing this ticket." I'm all for LLM's helping people write better emails, but using them to auto-close support tickets is rude.
HN user
smithbits
The short version is I got lucky. The slightly longer version is that at the small company I was doing tech lead things because I learned I could get more done to help people by helping organize the other engineers. Then when my boss quit to go sail around the world I was offered his job. I was now a "manager" but initially I still acted like a tech lead, writing a little code, taking care of the database, that sort of thing. The nice thing about the small company was they gave me space to learn and lots of mentorship. I got to see all the numbers on the business side and changed from being the "Let's write something new in Rust!" kind of developer to being the "But what's the simplest thing we can do to help our customers now" kind of manager.
Then I got a call from a friend I had worked with many years agi who was staffing up a new org. He needed people and had a very big budget. This is where the "career" part came in. I had a job with people I really liked, making okay money and could probably work there until normal retirement age. The new job offer was much more risky for much more money and I was always bad about taking risks. So I took a lot of long walks with my wife and we talked about the upsides and the downsides (upside: _so_ much money. Downside: What if I'm no good at the job?) and in the end I took the job. The job was in another state and my son only had two more years at one of the best high schools around so I got a small apartment and flew home every three weeks.
It was an incredibly learning experience. My new manager jokingly explained to me that my new job was people and if I was looking at code I wasn't doing my job. I took that to heart. I met some amazing people. I went to an insane number of meetings. I also got paged awake at 2:00am to be low-key yelled at by a group of Irish people because a computer in India wasn't getting enough network traffic and had run out of entropy. I think I helped some junior engineers with stories like "Ha! You think that was a screw up, let me tell you about my friend who turned off amazon.com for 6 minutes many years ago." And I learned the trick of going toe to toe with a senior architect in a design review meeting by asking "Okay, but what if these two things I'm picking at random happen at the same time?"
In the end it worked out for me. I saw other people go from SDE to SDM and then go back to SDE after a year because it wasn't a good fit for them. They were better engineers for having spent a year in management, but they didn't like it at all. Also I'm typing all this with the benefit of hindsight and probably making it sound easier than it was. I made lots of mistakes in my career, but going into management turned out okay for me.
And now I'm trying to write a Smalltalk VM in Rust and no one in Ireland is waking me up at 2:00am. I got lucky.
For me it was management. I was an SDE who started caring more about the users of my code than about the code itself and that led me to a team lead position and that led to management at a small company and that led to management at a big company. I found I really like mentoring junior engineers and I'm a good sounding board for senior engineers. I got to spend a lot of time saying variations on "Hey, let's not do that thing that won't work, let's do something easier that will work." I also focused a lot more on my career and making money rather than most of my life which I spent focused on cool tech and that got me to a place where I could retire easily when the time was right. Now I code for fun and I still chat with former colleagues from time to time and get to say things like "Yeah, but you know option B is the right choice so go do that." None of it was clearly planned, all of it was stressful but in the end it sort of worked out.
It's worth keeping in mind that lean manufacturing and all the interesting things that Toyota did that get written up are about building cars. In software the equivalent process is compiling and deploying code. Writing software is equivalent to designing, prototyping and testing a car. So while there are many interesting lessons to learn they are about the deployment and running of code, not about writing it. In the mass manufactured automobile industry you spend more time and effort building the product than designing it. In software you spend much more time designing (specs, coding, testing, all that stuff) the product than deploying it. The lessons of lean manufacturing may not apply to design.
His shelf seems to be an almost perfect superset of mine, the only obvious thing I don't see is Fire In The Valley by Michael Swaine and Paul Freiberger, a very nice history of the early PC revolution in Silicon Valley. I should probably get him a copy so I can just use a picture of his wall with the stuff I don't have blacked out.
Networking. Every time I see a non-technical friend have to know anything about the DNS to set up a website it makes me cringe. And while we're at it, why isn't my new laptop online by default? I realize that there are tremendous problems of configuration and security, but I should be able to unbox my laptop and not care about how many G's there are what the wifi passkey is or what the letters CDMA stand for. It should be as invisible to the end user as memory management.
There's a product called the Efergy True Power meter that does exactly that. It measures mains electricity, wirelessly reports to a central server and shows you real time and historical graphs of energy usage at sub-minute resolution. http://efergy.com/us/elite-true-power-meter
When this happens in dictionaries it's called a "ghost word" and dates back to the 1800's. Here's the wikipedia page on the topic http://en.wikipedia.org/wiki/Ghost_word
I think the author is making an excellent point about needing better math in journalism. An article in the NY Times yesterday about online shopping China had this line (pulled from a press release) "Tmall.com, one of Alibaba’s shopping sites, said Chinese bought...two million pairs of underpants, which if linked together would stretch 1,800 miles..." Why should I believe the rest of the article when the author is quoting someone saying that underpants are 57 inches wide?
I'm a little confused by the conclusion that "It is up to donors to do their research and donate in a way that will maximize the support they provide for charities." I gave a 10 year old Honda Civic with 198,000 miles on it to KQED. A truck showed up and took it away and I got a tax deduction. The car ran okay but didn't pass the California smog test and the chances of me selling it to a third party were small. I got what I wanted, an old car taken away for very little effort. I chose KQED because I'm a big fan of public radio. It was up to KQED to maximise the amount of money they got for it.
I think there are plenty of really really good programmers who are lousy negotiators. For these people a 15% cut could easily be made up for by a good agent. It's not perfect for everyone, but for people who are better coders than business people it could easily be a win.
How big was the game board? It doesn't seem like running life backwards would be an obvious thing. If I have a 3 by 3 grid with the center turned on I think there are 8 choose 3 or 56 possible previous boards that would lead to that. I guess you're just looking for any possible previous board not a specific one but it seems like any decent sized board would lead to a seriously large problem space in a hurry. I also dislike puzzle questions in interviews and never use them when I'm hiring people.
[edit] Here's a cool page at wolframscience about testing for reversibility http://www.wolframscience.com/nksonline/page-1017a-text?firs...
This isn't specific to Redline, but do take a look at the RoarVM http://soft.vub.ac.be/~smarr/renaissance/ a many core research implementation of the Smalltalk VM that does some very interesting things with non-determinism. Also there are Javascript implementations of Smalltalk that run inside browsers like http://amber-lang.net/ although I haven't had the nerve to actually deploy code to users written in Amber.
Seems like the obvious PR thing for Roddy McCuish to do is go and have his meeting with Martha and her father at the school, for lunch.
And here's the IMF study it's based on http://www.imf.org/external/pubs/ft/fandd/2011/09/Berg.htm
How much of this is that the company was hugely influenced by the founder? Steve Jobs was famous for making sure all the machines at the NeXT factory were painted the same color and that no third party logs were displayed. A certain kind of OCD employee is attracted to that attention to detail and will succeed and advance within the company. Jeff Bezos is famous for the door desk at Amazon and creating a frugal company culture. Both companies are wildly successful but it seems like Bezos would make a horrible Apple CEO and I suspect that a building full of door desks would be amazingly crass to Steve Jobs. Neither is one is better, they are both successful, but I think they attract and utilize different talents. I've often wondered if Balmer's time at the top of Microsoft has been hampered by not being a coder.
We're all familiar with the "phone / phone / half day puzzle fest" interview technique but has anyone ever done any testing on it? At any large company like Google or Microsoft it seems like it would be easy to run some ringers through the process to double check it. Take someone who's a brilliant engineer and asset to any engineering organization and run them through the hiring process in a different group. Give them a cell phone for the initial phone interview and see how they do. I'd be extra curious to see how this would work on employees who hadn't already gone through the traditional hiring process (i.e. people who came in as part of an acquisition).
It's true, but you'll be competing with bubble-based companies for talent. Why do I want to work for a reasonable, growing small business with it's customers and profits when I can get twice as much money in San Francisco working at some venture funded startup? And if any of those startups are in your market space they will be offering your customers products and services at below market rate in an attempt to grow revenue without worrying about profits. Now they can't do that forever, but can they do it for long enough to wipe out bootstrapping companies?
Here's a low quality video of the factory from back in the day http://www.youtube.com/watch?v=jhfUKEu7sJ0 (The copy of the video is low quality that is, the original production values were excellent)
What are you like? Do you enjoy digging really really deep into a problem? Perhaps a big company that provides the stability to work on a problem for years is the right place? Do you like doing lots of different things, none of them deeply, but all of them well, with never enough information to make a solid decision with? Go find a startup. How are you at interacting with people? Extremely outgoing, always meeting new people? Startup all the way. Introverted and terrified of sales? (well, work on that, but a safe place to get better at it is a big company.) No kids, no spouse, no debt? Totally going to help at a startup. There's no right answer to the question, it depends on what's best for you. I've done big company and startup and independent contracting and I don't regret any of them, but I'm also having a fantastic time at my current company. It turns out that for me, at this time, the best answer is a small profitable company with wonderful people where I can make things better with computers. And don't underestimate how important people are. Your coworkers make a huge difference.
"Software engineers of corporate America are wired in a way that promotes fear. It hurts creativity and growth." I'm horrified to say that I just can't get past that bit of hyperbole.
My quest for languages that say "Yes" ended with assembly. I started in BASIC and found the strait jacket it imposed much too restrictive. Then Pascal was the big teaching language but it has it's own ways. It wasn't till I got good as x86 assembly that I felt totally in control and able to do things just the way I wanted. Having achieved that feeling 20ish years ago I've been running away from it ever since. C and C++ proved that at some size of code base even the most brilliant programmers can't do memory management correctly[1] so I love that modern language said "No" to memory management. I've worked at large software companies where the programming style guides ran to 80+ pages. That's 80 pages of documentation of how people will format their code so that it's done consistently. I love that Python said "No" to letting people format their code however they wanted. It's likely that these aren't the kinds of things that Steve Yegge is talking about, but there are a lot of things it's worth saying "No" to, and if they bug you (like they used to bug me) there's always assembly language.
[1] http://research.microsoft.com/pubs/70226/tr-2005-139.pdf
"The truth is that for some it does and for some it doesn't." A pleasantly reasonable thing to say.
But to actually be the next Bill Gates he or she will have to not get picked. Then 30 years from now the story will be "If only I'd gotten that intership at Google I'd never have started this amazing company. What? You've never heard of Google? Well let me tell you about how it used to be..."
I thought Penny Arcade broke this back in 2007 with the piece "The Microsoft Zune: 2006-2006" http://www.penny-arcade.com/comic/2007/01/10/
Almost always certainly, but I'm not sure about the perfect one to one-ness. I take enormous pride in my work. It's important to me personally that I do a good job. There are tasks I have to do as part of my job I in no way love (integrating accounting systems for example), but I do them as well as I can because I consider that part of being a software professional. Or maybe I'm being too specific, I certainly love my job at the highest level and I do find the work interesting even the parts I don't love.
"... an independent consultant with expertise in quantitative investment techniques who will review disclosures and enhance the role of compliance personnel."
I assume this is press-release-based and so pretty thin on actual information, but if someone told me they had a $242 million software error and the plan for the future was to "review disclosures" I would not be reassured.
I woke up from a dream the other morning and could still see a mini-map of my house in the upper right corner of my vision. There were little blue exclamation points for all my daily quests. Brush teeth, take shower, make breakfast, etc. I was curious who gives out the quests, what kind of rep I'm farming and what the full quest text said, but then I was fully awake and it was gone. It's good to see that a college course can be similarly rewritten.
"Surely you're not learning much by repeating JMC's flawed Ur-Lisp from 1959." No. Implementing an ur-lisp teaches you all kinds of things if you've never implemented a programming language before. It's a solid bite-sized project that's harming no one. Think I'll go write another one, maybe in Haskell this time.
<> Find out which operating system the OS class at your university uses, waaaay back in the day it was AT&T Unix, then there was Minix, these days it's usually a flavor of Linux or BSD. Find the web page for the class that has the build instructions for it and follow those. Get all the source code together and compile and run it. Now make some simple change like altering a boot string to say "Yay I did this." Don't use on of the pre-built VMWare images that just require you to type "make". Download the source code, download GCC and figure out all the configuration stuff needed to build the whole OS. Learn a little bit about each of the tools involved but stay focused on building and running whatever OS it is. Once you get that far pick one of the easy early exercises like modifying the memory manager or playing with the process scheduling algorithms. Doing all that should give you a pretty good idea if you want to really specialize in OS's and you will do very well when you do take that class.