Our organization has a policy that it hires developers on 3-year contracts, and renews them no more than two times. So when you have reached 9 years in the org; when you have become intimately familiar with the domain, and the codebase, and the way the org works etc., you are out.
I am still incredulous that someone has thought that yes, this is exactly how an organization should manage its software engineers.
I 'worked' for my own high school's IT dept, a few hours a week, as a student. It was an amazing experience working with those guys. I learned so many things, from how to punch, terminate, and run cables to how to set up a Ghost image and deploy it en masse across the district.
One day one of the old macs was showing the frowny face in a in-session classroom. Boss sent me down there with specific instructions: "pull out the hard drive and beat it really hard with the handle of this screwdriver". I was like: "?" and he was like, "just do it".
So I go down there and let myself in, trying not to interrupt the class. I climb behind the computer on a cart and pull out the HD. I beat it with the handle, like a good 10 times. Of course this got the class all riled up. I blushed, but told them this was normal operating procedure. Plug it back in and it works. I was (secretly) as amazed as everyone else in the class.
Back in the IT office, I say it worked. IT boss smiles and nods. I ask how. Well as it turns out some of those old hard drives used a vegetable oil based lube that seizes up if it's not used for a while. So if you bash it it un-seizes and starts turning again.
Anyway great times, fun memories. We all got our CompTIA A+ certifications at the end, but don't ask me what IRQ number is for the parallel port these days.
It works best for prototyping and rapidly testing ideas.
I joined a startup that didn't have any deep coding skills - but had a great idea and vision for a product. They had made a pretty decent prototype with Bubble and could quickly implement suggestions from the beta testers.
When I joined I instantly suggested re-writing it in a "real" stack. But when I dived into it, there was a lot of built in features of Bubble they were using that would be a pain to write or integrate. The rewrite would take some time.
Instead we launched with the Bubble app as it was. It targeted a niche market, and that market came flooding in - it really proved there was demand for the product and the feedback helped shape the end result - months ahead of where would have been if I re-wrote it.
But as the app grew we ended up with "spaghetti no-code", slow loading times, crazy hacks, giant bundles (that we had no control over)... but again, it was good enough to launch with and validate the company, and it was fast to try out ideas.
We eventually did a full rewrite once we were happy with the overall structure of the app, but the process changed my perspective on the value of no-code tools in the right hands.
At 1 year: Be kind. You don't know everything; accept that the devs around you might know things you don't. Focus on making things better. Try to add value.
At 5 years: Be kind. You don't know everything; accept that the devs around you might know things you don't. Focus on making things better. Try to add value.
At 10 years: Be kind. You don't know everything; accept that the devs around you might know things you don't. Focus on making things better. Try to add value.
I have 23 years experience now and the advice hasn't changed yet. Maybe it will next year.
The story of the selbees, a couple who made ~8m for themselves and their community from gaming a lottery, is a great read [0]
Jon Wertheim: You saved all the losing tickets?
Marge Selbee: Saved them in big totes.
Jerry Selbee: Big plastic totes.
Jon Wertheim: There must have been millions.
Jerry Selbee: 18.
Jon Wertheim: $18 million worth of losing tickets. And you have those?
Jerry Selbee: Uh-huh just in case we had a physical federal audit.
Marge Selbee: We had the upstairs of the barn. I stored them in one end and in the other end. And then I thought, "Oh no, this floor is gonna fall through." So then we stored them down in the pole barn. And we had probably 60, 65 tubs of tickets.
Poor man's sleeps (various NOP loops) are just that. In all cases you should try and utilize on-chip sleep instruments, timers most probably.
On a Cortex-sized MCU that is most probably as simple as installing appropriate interrupt handler and launching the timer by writing appropriate data to some register(s).
The best products happen at the intersection of an existing niche you are some level of expert in already and a technology that has not yet been adopted in that niche.
I've found one approach work very well with my mentees:
- Figure out which "special interest groups" you are part of beyond software engineering. That can be "aquarium owner", "coffee lover", "morning person", "diligent grandson" — the less technical, the better.
- Among these "niches", find the ones that could benefit from a transfer of technology, like (spitballing here) "teachers who work from home" (education niche) + "automated submission and pre-grading of homework" could work (digital document collection and rule-based checking logic), or "aquarium owner" + "nitrate cycle tracking IoT device" (hardware-enabled analytics) + "optimal light scheduling" (machine-learning-supported recommendation engine).
Do that for all the groups you're part of, and you will find lots of ideas that aren't just "scratch-your-own-itch". They are 'scratch-an-itch-you-understand-and-know-how-to-remedy'.
I liked that. I am am 68 and although I 'retired' last year (from managing a deep learning team at Capital One), I stay active. Currently I am writing a combined iOS and macOS app (so I needed to spin up on Swift and SwiftUI, and how to use built in support for building deep learning models, instead TensorFlow which is what I am used to). I recently published a book on the very cool Hy Lisp programming language (you can read it free at https://leanpub.com/hy-lisp-python).
I get inspiration from my father. He is 98 and has taught himself 3D animation and video editing, and keeps himself very busy creating videos for the international right to die organization. (He was a physicist and is still a member of the National Academy of Sciences.)
So, for all you young 50 year olds, I say to you: it is not over until it is over :-)
I cannot not stress this enough. One of the things I do to mentor talent is to affirm two things:
First, the relationship is a merely a meeting of minds. If it's useful for you to be around and they find you useful to be around then you have a job. If that ever stops, it is irrelevant what the past is: you will be gone whether it is by your choice or not. At one point, labor unions were the means to fix companies, but that has long since passed in the U.S.
Second, the term "Human Resources" are perfectly named. A resource is something that is explored, extracted, exploited and expended. H.R. is not your friend. Their job is protect management's goals. You are a resource and fully replaceable.
Here's the recommendation I give to students when they ask me this question (it's a common one!):
You come up with a brilliant idea, you obsess over it, you Google some info, and on your screen lies your idea, being done by someone else, for the last two years. You’re all too familiar with that sinking feeling in your stomach that follows. You abandon the idea almost immediately after all that excitement and ideation.
First (as already mentioned), existing solutions prove your idea — their existence proves that you’re trying to solve a real problem that people might pay to have solved. And it proves that you’re heading in a direction that makes sense to others, too.
Second, and this is the biggie: The moment you see someone else’s solution, you mar and limit your ideas. It suddenly becomes a lot more difficult to think outside the box because before, you were exploring totally new territory. Your mind was pioneering in a frontier that had no paths. But now, you’ve seen someone else’s path. It becomes much harder to see any other potential paths. It becomes much harder to be freely creative.
Next time you come up with that great idea, don’t Google it for a week. Let your mind fester on the idea, allow it to grow like many branches from a trunk. Jot down all of the tangentially related but equally exciting ideas that inevitably follow. Allow your mind to take the idea far into new places. No, you won’t build 90% of them, but give yourself the time to enjoy exploring the idea totally.
When I do this, once I do Google for existing solutions, I usually find that all the other things I came up with in the ensuing week are far better than what’s already out there. I have more innovative ideas for where it could go next; I have a unique value proposition that the other folks haven’t figured out yet. But had I searched for them first, I never would have come up with those better ideas at all.
Finally, I’ll say this: if you see your idea has already been done and you no longer care about it, then it probably wasn’t something you were passionate enough about in the first place; it was just a neat idea to you.
Lift weights and perform intense physical activity to exhaustion.
Don’t smoke tobacco or cannabis. Don’t really drink either.
Meditation.
12-step work.
Wellbutrin (bupropion) has helped me out of holes.
Have close friends to confide in.
Say what you’re thinking. Don’t say what you’re not thinking.
Follow pointless dreams in some measure. For me, being able to buy a legendary Husaberg FE 570 motorcycle was an impossible dream, until I tried going for it. Managed to do it on a startup salary over the course of a year. It has brought me deep spiritual satisfaction.
Help others.
Be humble. Ask to be humble. Ask for your ego to be smashed.
Judging from the lack of clarity in his post, he doesn't seem to know what his own product is. But he sure knows that he is the new CEO (he mentions it a few times). And he certainly thinks the successes of Fog Creek somehow reflect on him - in fact he talks about that more than the product.
Yes. This seems like a situation where individuals should be blamed, not an entire group, who may not even be aware of the actions of specific individuals. If the group is aware of the actions of the individuals and sanctions it, then that's a different scenario.
> The FSF fired her because they thought she, rather than the assholes bullying her, was causing the FSF potential damage. As a result, she was fired from the FSF.
It also seems worthwhile to understand what is the other side of the story about this.