it reminds me of the time I "hacked" a strip poker game on my C64. I noticed some files on disk had a number after them and assumed they were images. I just reversed the numbers and voila, I started out with a naked lady that gradually got clothed. I didn't really care to learn poker anymore after that.
This part resonated with me and took me back to when I was picking up PHP on my own and breaking apart a Wordpress installation, file by file, line by line, method by method. Has some good "first principle" vibes to it.
Early days of programming were sure facinating. Small businesses using other small businesses to write custom software. Lots of tinkering and hacking. Interesting times.
Loved this one. When I was mid-20’s I found myself in a “how much” situation as well. Thankfully I had the gumption to “go for it.”
I had found a solution to save the business 100k+ when another contractor charged 10k+ and failed to complete a job because the business couldn’t pay them any more. The thing is, once I started digging into it, the other contractor had done 95% of the work; It just needed a nudge to get finished. But As far as the business was concerned, it was 0% done because it was an all-or-nothing situation (either it worked or didn’t).
I did the final 5% and charged $3,000. I presented it as “I can fix the problem for 3k.” Was that completely fair to them I sometimes wonder? I don’t lose any sleep over it — they had a problem and I fixed it. I think it was wrong for the first contractor not to finish the work up and deal with a final invoice rather than insisting on pay in advance and abandoning them that close to the finish lone.
As far as the business was concerned I was a very cheap solution, and I made an hourly rate of about $2k per hour.
It's crazy sometimes the gap between an appropriate hourly pay and the monetary value of the output. I'm sure OP would have come up with something in between as well, but being put on the spot and caught completely off guard like that for the first time I think the $100 was a fine deal.
The business was pretty strapped for cash (they had to pay me $3k over two payments).
But yeah, it was a 100k problem. All or nothing. Either it was fixed or not. The previous contractor had completed 97% of the work, had billed $10k, and then left when the company wouldn't pay any more.
I swooped in, finished the last 3%, got all the glory, and charged 3k. The business thought I was a miracle worker.
To be clear, the previous contractor did a crap job communicating with the business to explain how things were progressing and made it look like this would be a black hole the business was throwing money into. Had the previous contractor said "we're really close, we just need a little bit more money" the whole thing likely would have resolved without my intervention. But communication matters, I suppose.
That's just economics. It's just like Apple or Samsung "magically" deciding that the price to fix your broken screen is just slightly under what it costs to buy the same phone used.
I really liked this story, and it resonated with me. My programming career began in much the same way, at about the same time.
The only non-computer job I've ever had was my first, a six-week stint at a Burger King, and I was desperate to never do that again. I undersold my skills often, and got in over my head just as often.
It was a great, if sometimes painful, learning experience.
If by "change" you're asking, "when did I stop underselling myself and getting in over my head" then I am not sure I could identify a single point in time where that happened. It's been an improvement on a continuum.
Those early years certainly felt painful but in retrospect provided valuable concrete experience in negotiating, marketing, and self-assessment. I learned how to figure out what others really wanted, how much they should be willing to pay to achieve their goals, and (probably most importantly) whether or not I could deliver. That period of time, when computers were exploding into small businesses, was a little magical when it came to freelance programming.
Now, ~40 years later, I find myself applying those learned skills at my current job every day. I got lucky.
My apologies if I misunderstood your question and blathered on about something else.
Again we see similar issues that motivated RMS to create the free software movement. The buy bought a program but did not had the ability to read or edit it, today you will get a DRM on top of the program and some TOS that would say it is illegal to even attempt to get pass the DRM. Video game crackers show this DRMs will eventually get broken so the industry switch to services instead, now you are really screwed , you can't flip a bit to fix an issue or you can wake up and the software is now updated with nice new bugs or pointless UX changes.
I really liked this story. Im much too young to have been around for it, but I feel like this era of computing must have been kind of magical where there was a lot of access and no walled garden nearly to the scale of a google or apple where the obfuscation just requires a flipped bit.
I'm old enough that my heart fluttered when he mentioned the "ELF II" development board! That's some serious old school magical stuff. That used car salesman was incredibly lucky to snag such a hacker, who had no fear of jumping into hex dumps and flipping bits around, for solving problems.
Some things were also pretty hard back then (a few years later but still). When you were too young for university and your environment was not academic, getting access to information was so difficult. I remember when we made a school trip to London and I spent all my savings for programming and computer graphic books. There was no wikipedia, no scihub, no blogs, no Github. New coding or hacking e-zines were treated like gold and sometimes I spent multiple months of my savings to get 1 book!
The luck and the postscript really resonated with me. For more than 30 years now, I've been telling people I hit the jackpot: Computer programming is something I'm really good at, that I enjoy doing and that pays really well. Very few people get all three.
I had to work summer jobs though, starting at 15: road crew, pounding spikes on the railway, lumberjack. I'm not sure I would have been better off for not having those jobs though. I learned a lot about what the average person does to get by and about how much alcohol gives me minor alcohol poisoning.
The author said in a postscript that he was worried about seeming elitist. I didn't think it was elitist at all, and I completely understand why it was a good choice for him to write BASIC code.
However, I also did manual labour in the summer when I was ~20. There was nothing wrong with it. I would certainly recommend a brief stint of it to a young person, especially if you are training towards a sitting down/talking type job.
You are outdoors, you end the day physically tired but with mental and emotional energy for other things. You gain skills and improve your health and fitness. There's usually a good atmosphere among the workers. And you get to point at something concrete and say 'I helped put that up/knock that down/repair that'.
Part of why it didn’t come off as elitist for me is that everyone had their own story; his dad was relatable, his mother supportive and he wanted to not disappoint them. The car dealer guy sounded awesome and not at all like someone he looked down on.
My parents made a similar deal with me, when I was 18.
"Manual work" for all but 3 weeks of the summer was indoors for me, in factories -- mostly cleaning and assembling. There was a good range of jobs, from boring, tough work more-or-less alone, to a place where everyone seemed to chat while they worked slowly as the summer was usually a quiet period.
In the final job, I took a half-day off to collect my exam results. Going into work afterwards, people naturally asked what they were -- all A grades. It was difficult not to feel apart from many of the staff from that point. The owner's daughter was the same age and also working the summer at the factory, and her results weren't good enough to go to university.
I only had phrases like "look at you with your fancy words", which (in Britain, depending on tone) can mean something from "I'm impressed you remember words like that", to "I don't understand you" and "you seem to think you're better than me".
1. Would this still be possible today? It's a certain timeframe (for software) where this was possible. Today it's things like SAP, integrated systems and DMCA on top of it (or Excel).
2. I did the menial route and am still happy for it. Flipping burgers, cleaning dishes, repairing truck tires and cleaning office buildings. It's a different sort of grit and stamina than the one that gets you far in your office career, but I still look back fondly on the lessons about hard work. It was also an introduction into diversity. I've met people on those jobs the 16-year old me never met before, and since. For me the lesson is: whatever my kids will do in jobs on the side, it pleases somebody enough to give them money and them enough to do the job it's a worthwhile lesson.
> Would this still be possible today? It's a certain timeframe (for software) where this was possible. Today it's things like SAP, integrated systems and DMCA on top of it (or Excel).
There's still a lot of utterly awful, sloppy business software around, especially for SMBs.
I run a "CTO-for-hire" service with about 25 devs, product managers, and designers. I'd say at least a quarter of what we do is dropping in to rescue projects that have gone bad.
We're often treated like gold just for showing up, doing decent work, and bailing them out of a problem.
There's tons of work out there like this if you grow a reputation for being good and trustworthy, and you're willing to work through those really hard moments of everything being broken with no reason why yet. I'm 40 years old, and still just got the rush of excitement last week as I solved a major production problem for a company after a string of late nights. It's just fun.
2. Totally agreed about the value of other types of jobs as well. I will treasure my teenage and early 20s experiences as a Pizza Hut cook, Grocery cashier, and bet-taker at a race track for what I learned about those industries, how people work together, and the differences between intellectual and manual labor. As a salesperson, I also STILL reference knowledge from my experience in those industries when talking about new projects.
I’d be curious to hear opinions on how much he should have asked for—what could he have gotten away with and still landed the job? Would $1,000 (in 1982 money) have been too much?
I think he picked a good number. It clearly wasn't $1000 of effort. Jim may not have been interested in hiring someone who, like his previous software guy, was looking to shake him down for as much as possible.
$100 in 1982 is about $275 today. $1k ($2.75k today) feels high to me because of the combination of unknown teenager and the fact that programmer pay was relatively lower in 1982. And if you scale that up to $4k per week that’s $11k per week in today’s money which feels pretty crazy for a teenager. $400 per week in 1982 is a salary of like $60k in today’s money. At 20 hours per week that sounds like a good deal.
In the late 1980s I did computer work for a small business and was paid about $9/hr. It wasn't really programming though, more of an operator job with some hardware maintenance/troubleshooting mixed in as needed. My first job as a programmer, in the early 1990s, paid $32k base plus overtime and a yearly bonus.
I love stories like this. I have one of my own, actually.
When I was first getting into IT I started sending out CVs. Mine was terrible. I had been working in call centres for years at this point and all my "experience" was basically self-taught, so not really experience at all. As a result my CV was void of any actual content a hiring manager in IT would want to read, thus it was binned a lot.
I applied for a job at a nearby network hardware repair place. They needed someone to look after their Cisco kit and about 30 Debian Linux systems. I was attracted to the mix of responsibilities so I applied, sending in me not-so-good CV. I was eventually asked to come in to have a chat after waiting about a week to hear back from the place.
At the end of the interview, Bob (let's call him), said I was more knowledgeable than the RHCEs that were coming through his door. This was nice to hear, but then he said something that really made me smile...
Apparently my CV was worse than I thought. It was so bad, that Bob literally put it in the bin under his desk. About four days later, Bob was reading through a local Linux User Group (LUG) mailing list and he saw a name he recognised: mine. So he opens the email and reads the thread in which I helped another LUG member compile a sound driver for their kernel. The instructions I gave worked.
Bob was impressed but he couldn't quite remember where he had seen the name. At this point the business owner, John (heh...), was standing besides Bob's desk and noticed my CV in the bin. He pulls it out and reads my name across the top. The penny drops for Bob and I get the call to come in and have a chat.
>> Bob was reading through a local Linux User Group (LUG) mailing list and he saw a name he recognised: mine.
I had the opposite happen.
I took a job doing some programming, some Linux administration, some helpdesk. I came across a convoluted database setup, nobody in their right mind would run multiple servers on the same machine this way... After researching the issue, I found that it was totally unnecessary, and likely a holdover from an earlier (like 15 years earlier) version of the software, because now it was natively support.
During my searching, on a mailing list I found a message from my now-boss. Asking how to do the exact thing they were still doing. And a couple messages from developers of the software basically saying, "If you did it this way, it would in theory work, but it won't ever be supported"
When I was younger, I inherited a lot of old PC hardware from my father. One particular motherboard had a massive gouge through the heatsink for the southbridge, and I could never figure out why.
One day, I was trying to get Mac OSX to run on this particular system, and on page six of google search I finally found a guide to configuring the BIOS for this board that actually worked! It was one of the very first boards that supported UEFI (iirc, before the spec was fully ratified), and the documentation was very incomplete.
I dug a few pages deeper in the thread, and the same poster was describing the poor design of the heatsinks and how they interfered with the full length PCI cards that were used in pro audio at the time. The same poster described how they carefully prized the aluminum heatsink off, screwed it to a board and used a dremel tool to make a slot just wide enough for the card to safely fit.
That was strange... I had exactly the same groove cut in my heatsink...
I had a parking light burn out on my car. Went to the car store, and a replacement bulb was $$. Perused the lamps on tags in the aisles, and found one that looked the same but had different "ears" on the side.
Bought it, and filed off the ears so it would fit in my car's socket. Worked perfectly, for a small fraction of the price.
Of course, my car is full of aftermarket parts, so I am used to making "adjustments" to get them to fit.
I had to look up what a parking light is. It sounds totally unnecessary to me, but I'd say that about a lot of things put in cars after the 90s.
Probably not important in this case since it's just a light for parking, but lights for cars cost more due to having to meet exacting DOT standards/testing. I wouldn't do this with a brake light or real headlight.
Parking lights are a lot older than the 90s. In Riverside, IL, they have "historical" streetlights that inadequately illuminate the streets (or at least did in the 70s). As a result, it was required if you were parking on the street in Riverside after dark that you left your parking lights on.
Apparently the light setting I always skip past is parking lights and I never knew. I always found the headlights/reverse lamps adequate in the dark though.
True ... we just moved on from a car build in 1999 to one build in 2011 ... got the "non-extra" version which was half the price.
We still got an AC and bluetooth connectivity.
What we did not get was a multimedia center, a panorama roof, seat heaters and fancy front lights.
I can see that you quickly get used to that ... but tbh I think that most of these are just to justify a higher price because the actual service, getting you from A to B, has not changed in 30 years.
I came to post this. The offset ears on the bulb base are used to specify either a dual-filament bulb, such as tail lamps and brake lamps combined, or high-resistance, low-wattage parking lamps that are designed to not run down the battery while the alternator is not charging.
> But heck, even a parking light will flatten the battery if left overnight.
Nominal modern car batteries are about 12.6 volts. I wonder if the high-resistance bulbs will completely dim once the voltage drops to a specific threshold, say around 12.0 volts. If they do, then they should leave just enough charge to crank, as most starter motors can safely crank over with about eleven and a half volts (and all the way up to over 14 volts).
About every 6-9 months, I'm searching through error logs looking at odd messages, or trying to see why we have some obscure configuration parameters set, when I start reading something relevant-looking on a Blogspot blog.
It becomes uncannily relevant, even to the point of familiar IP addresses or pathnames in the blog, at which point I realize it was written by my predecessor.
The obscure parameters are usually obsolete, and were required because they were running the very latest versions of the software before the defaults matured. The blog was something like documentation at the time.
It once happened to me that I had a really hairy issue with a sound card driver. After half an hour of web search I found a conclusive answer, written by none other than myself, but four years prior.
There was a thread on HN a week ago [1] about "How to write a resume that converts" and the most voted comment starts with a sentence "The importance of resumes has been overstated for many years now, and I look forward to the day they are phased out entirely."...
People always say that, but only one of the full-time jobs I've had in my thirty-year career has come from networking. In one other situation I was the guy who got several former co-workers hired, all at once, a frankly freak occurrence I still don't quite believe actually happened. My current job, I was contacted out of the blue by the team's manager on LinkedIn. Most of my jobs have come from being active on the Internet, or else from applying cold.
* I co-founded my first company with people I met at university.
* We got our first investor thanks to a chance encounter between said investor and one of my co-founders at a bar.
* When we exited that company, our investors lawyer arranged a meeting for us with another of his clients, who hired us.
* One of the execs at that company hired me for his next startup, and introduced me to his brothers, so I could work part-time for them until he got funding.
* One of my co-workers at that company was one of my co-founders at my next company, and our other co-founders were friends of that person. One of them had worked for the VCs who invested in our first round.
* [I went to Yahoo for a couple of years -- no connections there.]
* The general counsel at my last pre-Yahoo startup pulled me into my next startup.
* [I then went to a web dev agency, no connections there]
* The co-founder of the company I worked at before the web-dev agency contacted me about some contracting, and I ended up joining full time (my current job)
So Yahoo and the web dev agency are the only places I've worked over the last 26 years where my resume has mattered. Even then, at the web-dev agency I name-dropped one of people who'd hired me previously, and it impressed them, so who knows how much my resume really mattered there either.
Many people do get hired cold, but it is the last choice of anyone hiring. If you know the right person you skip to the front of the line with no competition.
>People always say that, but only one of the full-time jobs I've had in my thirty-year career has come from networking.
Funny, only one of the gigs I've gotten in my 30 year career has come from not networking...my first one. Every job after that has come about because of people I know recommending me for the job.
This has been super helpful over the past 15 years as I've been an independent consultant. In fact, I went indie because I had a network.
I don't need to look for gigs anymore, people come to me. I turn down way more gigs than I can take. And I haven't had to have an actual interview for a job in over 20 years.
I'm sure this isn't the norm, but it certainly makes work life a lot easier.
> People always say that, but only one of the full-time jobs I've had in my thirty-year career has come from networking.
Does that not just imply that your network wasn't that good but not necessarily that the adage "who you know more is more important than what you know" is actually false?
I have the opposite experience. I have never landed a job that I didn't already have a good contact and recommendation for, of course that is probably because I have never tried.
My first summer jobs were with people my dad knew. The first actual programming job I got because I happened to be tagging along with my friend who had a job interview.
From there on in I got jobs mostly because I had a friend inside vouching for my talents.
This also goes the other way, I wouldn't join a company where I don't have inside information on how shit actually gets done.
I think that is often true, but I work for a Fortune 500 company and did not know anyone who worked there before getting hired. In the 20 years I’ve worked there I’ve been involved in tons of interviewing potential hires. Every single one got their foot in based on their resume. I’ve never seen anyone hired because they knew someone at the company. I’m sure it happens, I’ve just never met anyone it has happened to.
I have had mediocre experiences, at best, with people bringing in people that they knew from outside the company. There were positive exceptions but usually it ended up being a kind of weird political move that increased divisions in teams. Like there was the group that knew each other from outside and everybody else. something to be wary about
This is really an unhealthy and flawed understanding of what is a necessary part of life. The problem is how to find good people, and the more society downgrades objective measures of excellence, the more people need to rely on personal recommendations. It's not that people wouldn't take a stranger for a job, but when there is a lot of uncertainty, they can't absorb the risk of the stranger not being qualified. So they will always prefer someone they know is qualified over someone who they don't know is qualified but might be better.
The above is as necessary and unsurprising as rain falling to the ground. There is no other way that things can work. Thus the practical advice you can give someone is not only to learn something but to widen their professional network so that there are many people who know they've learned something.
It is the exact same thing in a big bureaucracy. You have to know how to sell yourself, which just means you need to successfully communicate your accomplishments. Too many people do great work, but they don't communicate their accomplishments, and then they are surprised that less qualified people are promoted over them, and they grow cynical or resentful when it is really their failure at communication that has caused the problem. Like many things in life, it's better to be mediocre at two necessary things rather than excellent at one and skipping the other. But no amount of righteous anger about the unfairness of life is going to change the fact that people are not omniscient and that talent is hard for strangers to evaluate.
> the more society downgrades objective measures of excellence
I'd really rather go with "the more society discovers that we don't know how to obtain objective measures of excellence". We really don't have good tests that can fit in the interview slot for a lot of software engineering jobs.
You can say this over and over again, but that doesn't make it true. It is just a wish of how you want reality to be, and the US is sufficiently wealthy that people can indulge in these delusions and still put food on the table. For a while - there is a lot of wealth and human capital to destroy before things start to break down. These types of delusions are what makes it harder for newer people to enter fields and so inhibits human capital formation. Getting rid of grades in schools or giving different races different grades, getting rid of standardized tests, etc, this all destroys information and human capital. It also makes the nation less competitive when it competes against the (majority) of the world which does not suffer from these delusions and is more interested in acquiring human capital than destroying it for the sake of some equality myth.
You wrote a lot about the issue in general without actually addressing the claim. We don't have an objective measure while interviewing software engineers. Any too specific test will fail on some good hire during an interview. On the other hand generic tests need to adjust as you interview so they're subjective.
I think the issue is rather that many people have a hard time of communicating the skills they have in a way the other side actually gets the level you are at via simple text.
If they already know you, you can skip that step and the risks involved. Depending on your personality and flaws however it might also be a negative thing if people know you : )
Last time a headhunter managed snatch me was weird. I wasn't really active before deadline because I was on a holiday trip and the headhunter said "it's okay, let's call after your holidays". I wasn't actually looking for a new job but couple of the buzzwords sounded promising so I ended up having calling one of those chitchat calls with the headhunter which then led to a chitchat with the company guys.
When I was meeting the company guys, I'd updated and printed my puny resume in case they would've wanted it but realised they had "my resume" already. Basically the headhunter had copy pasted my puny LinkedIn profile data into their some sort of resume template and the guys were thinking I was actively looking for a new job.
Weird coincidences but ended up taking the job and haven't regretted after 2,5 years.
I wonder if the headhunter used a geek code[0] to resume generator?
Alternatively I wonder if a modern version of geekcode could be created with a service that automatically compresses a submitted resume into a comprehensible string of Unicode characters?
A geek code based on distributed peer review (no blockchain) could be very elegant. A kind of shared CV encompassing gitlogs, third party reviews, customer satisfaction, and actual "thinking when it matters" ability recognition.
Where are the semioticians when we need them? Syntax, grammar, pragmatics, all develop at a rate of knots, but we still use a subset of ASCII for the vast majority of our symbolic computation. Could we do better than a joke from the nineties?
As someone currently wading through resumes and kinda worried about missing some one like this, here's a tip to anyone else like you: The purpose of a resume is to get you hired. If you have something like an incredible technical sound driver support email chain like that... put a link to it in your resume. Yeah, your resume has standard fields, and those are indeed sorted on by HR, so don't leave out the skills & experience... but otherwise, the resume is free form. Generally not prose exactly, but free form. Link to ANYTHING you think will help you get the job.
And don't just say "I participate in some LUG"... that can mean you show up to the meetings once every couple of months to eat the free food. Show your helpfulness in an email chain. Show a project that you did with them with a link that explicitly says you did a big portion of it. If no such link exists, get one created!
By no means do I promise wonders if you do this. HR filters may still eat your resume. But if you do get through to a real human, they may look at those things, and the ones who will understand what this means are the ones you want to work for anyhow.
If you've got the skills to pay the bills but your resume looks like any other high school dropout's, I can tell you, from the other side of the desk, you've given me no way to tell any different. It may stink that all we have are resumes in the initial process... but at least that resume is under your control. (Mostly. Sometimes it gets chewed on. But speaking for myself, I'm looking at raw resumes straight from the candidate and that's not uncommon.) Don't be afraid to use it, and don't be afraid to toot your own horn, that's the whole point of this particular document.
(Similarly, to the extent possible without lying, don't say "I participated in some project" as your work experience. Write something you did in the project. Don't say "I participated in a billing system upgrade", say how you rewrote the UI in React to conform to accessibility standards and made it run 10 times faster than before and customers uniformly loved it and paid lots more money or whatever. "Participation" could be "I had my hand held for every bug as I struggled to keep up" and it could be "I stepped up and took more responsibility than anyone expected and almost single-handedly completed the project, freeing up the other developers" or anything in between. Unfortunately, based on experience, I kinda have to assume the worst because it's usually right. If "the worst" interpretation of that phrase isn't right, don't leave it open to me!)
Believe me, if you're doing Linux support on a mailing list, or anything even remotely like that, you stand out, at least to the right people. Do whatever it takes to work that on to the resume somehow. The "standard resume form" is a skeleton to be fleshed out, not a straightjacket of form.
This. This is why I always encourage people who I mentor to have a skills section.
My first job I got the interview because at the time I was attempting to turn a snowmobile into a hovercraft. I had plans and everything.
I put this on the resume.
The first question in the interview? "Look, if nothing else we had to bring you in to ask. How the hell are you planning on turning a snowmobile into a hovercraft?!?"
The project never went anywhere, but it got me the job.
When you are involved in hiring, it's surprising just how bad most resumes are. Have a single page of highlights that are going to make me want to talk to you. The interview is the time to go deep on details, if that's how the conversation goes.
It's really hard for somebody to know what's going to appeal. Maybe "planning on building a hovercraft" looks great to you; maybe it looks like somebody padding their resume. Maybe "had a really cool email thread" catches your eye; maybe it looks like an irrelevant detail.
A resume page isn't very long, especially presented as bullet points as expected. And especially when you have absolutely no idea who it is will be reading it. I can tell you great stories about every project I've ever done, but not in a bullet point.
I have no doubt that most resumes are incredibly bad. But I'd venture to say that a substantial fraction of the resumes you think are very good will be considered very bad by the next hiring manager over.
> I can tell you great stories about every project I've ever done, but not in a bullet point.
If you can figure out some way to distill an important project down to a point or two, it's definitely going to work in your favor. A resume is not the place for great stories but it should make me want to ask.
I agree with your last sentence, although I don't think you will find anybody wanting a long resume from you. You could always provide a link to your online CV that is complete while the one you submit is an edited down version tailored to the company and position you hope to interview for.
Yup. That's life. But if you make a resume like everyone else's, you're going to get everyone else's results. That's life too. I don't have a magic solution that will guarantee you a resume so awesome that literally every hiring manager in the world will break down in tears and hire you on nothing more than your resume.
You can turn this to your advantage, which I alluded to in my original. If you want to work with people who thing making hovercraft out of snowmobiles is awesome, put it on there. If you want to work with people who think that is a strange distracting thing to put on a resume, by all means leave it off. I'm sure HN is largely biased towards the first, so let me say I'm not being snarky at all about the second and I'm totally serious; if you are interested in a banking or government job you may well have those sorts of external interests yet find it a bad idea to put it directly on your resume.
Really my main message here is, take advantage of the fact that the resume is free form and don't just thoughtlessly put your name, work and educational experience, and three one-word bullet points about your hobbies or something on your resume, and then stop, because "that's what a resume is". Put whatever will get you hired. If there isn't a standard category/heading for whatever that is, make one.
As an outsider how sends resumes, it is difficult to know what a good resume is because one has not had the on hands experience of actually knowing what others are doing. Some searching on the internet may be helpful in the end but the jobs I got so far felt like blackboxes in the hiring process.
It wasn't awful. I was a new grad though, so I had a grocery store job, some volunteer experience and then fluffed up with whatever skills were on the job posting.
Second this. And especially the "I participated in" bit - that almost immediately makes me heavily discount the value of that experience because it tells me nothing and it's exactly what someone who has had only peripheral involvements but wants to play up their importance would say.
If they get through to an interview, fine, they'll get a chance to be specific, but failing to be specific might well get them filtered out before that.
HR might not even understand what the link is about, but if they see something technical they don't understand but is related to the job, they will ask some technical person.
I got a call when I was younger because I was the maintainer of a package with several million downloads on RubyGems. It wasn't even a Ruby job, but the HR person's rationale was that "at least he's making stuff people are using".
I have seen some awful resumes, including for people with PhDs and long records of accomplishments. Even people who have been through resume writing seminars at job search organizations.
Ha! My first job was effectively through a LUG as well. In the early 2000's, I moved to a new city and joined the LUG there. A few months go by and I'm chatting with someone in the room and they ask what I do. I replied that I was going to college but also looking for part-time work. The next day, another LUG member who owned a small consulting company called me up and said he overheard what I said and pretty much just offered me the job right over the phone.
In fact, looking back at my employment history, only one of my jobs was a direct result of someone seeing my resume before they even met me.
Brings back the days of my youth in about the same era. We had a recession on in my country at the time that made student jobs in the tech industry scarce and I ended up working in landscaping during the summer to try to meet the tuition bills. One of our jobs was at the site of a rapidly expanding local tech firm (the telecom monopoly had just been forced to open the market to allow competition and the industry was beginning to boom). I remember digging holes for planting trees and looking through the tinted glass windows at a couple of guys in their white shirts and ties sitting at a terminal and thinking "some day I'll be on that side of the glass". Sure enough, after 40 years, I work for a company with offices that overlook that same building. The trees I planted are large and mature, I managed to eventually pay for my education, and I never forget my roots as I sit down at a terminal window.
The classy way of handling puns is to avoid them if they're not intended and leave them unstated if they are. It's funnier to everyone who notices that way, and less distracting to people that are just there for the content.
Instead of puns, you can substitute the synonym for the word you're punning. So instead of "I never forgot my roots" you can say, "I never forgot my tree butts" or whatever word silly rephrasing you can imagine.
The bogus file header was causing them to be interpreted as a different kind of file when opened by the viewer-editor (what we might consider an IDE today). The code wasn't encrypted at all and nothing prevented the author from reading it:
> In the editor, I could also clearly see the text of the BASIC source code for all the programs. It was there, not encrypted.
Incidentally, I find the various copy/read protection schemes of yesteryear absolutely fascinating. It seems like it always comes down to some brand of cleverness, and gives credence to the idea that there is always someone smarter than you.
Also “Never underestimate a time-rich, money poor kid”
The RDOS file system provided means for protecting files by setting attributes. Because RDOS, not being a multi-user system, had no notion of file ownership, attributes applied to all programs that accessed a file. The sense of the attribute bits was, in most cases, the opposite of that in Unix; if the bit was set, the operation was prohibited. Files were by default created with all attribute bits cleared, permitting all operations. The attribute bits, as identified by the letters used to identify them in a file listing, were:
'R': prohibited reading
'W': prohibited writing
'P': "permanent file"; prohibited renaming or deleting the file
'S': identified a "save" file, that is, one that contains an executable program.
'N': prohibited symbolic links from linking to this file
'A': attributed protected; prohibited any further changes to the file's attributes. (A file that had both P and A set became un-deletable, except by reformatting the disk.)
'I': Prohibited reading or writing by means other than direct block I/O. (This was removed from later versions of RDOS.)
'?' and '&': User-defined attributes, ignored by RDOS
thanks for this! I've always wondered what the deal was, and teen me did not do any research on why the hack worked- once I got the files visible I just moved on. It was almost certainly this RDOS attribute stuff you show here I was playing with (also I took some artistic license in the post, not really sure it was 'F' vs. 'E'.)
The fact that it's a single bit confuses me. If it was a full null byte (0x00) it would be easier to explain. C strings are null terminated, so you could assume the editor stopped reading when it hit "the end of a string" but BASIC still executed it?
Or if it was some unreadable ASCII character, maybe it worked like an EOF in the editor? But the fact that he switched it from an F to an E gives me no clues. This stuff is unfortunately before my time, I'm sad I never got to play around with stuff like this in my youth.
The byte apparently was not part of the file contents but part of a file header that was interpreted by the editor; probably encoding some kind of "file type" that was displayed differently when opened.
However, technically, switching an 'E' for an 'F' is flipping *two* bits :/
Some older filesystems, like ADFS[1] which I'm familiar with, have a "type" attribute, along with the read/write/execute (etc.) bits, as part of the directory node [2].
On RISC OS, as that page says, a BASIC file has type FFB. I remember a plain text file had type FFF.
Great story, and that approach to troubleshooting ought to be familiar to anyone that worked in IT and seemed to "magically" figure out problems (at least to anyone observing them).
One note on editing - you use the phrase "to be honest" in two consecutive sentences in the first paragraph.
Under questions you’re unprepared for, years ago at a Wall Street job a couple of weeks after a re-org my new boss calls me into his office and asks me what sort of bonus I was expecting. Caught completely off guard I quoted him the real number I had been expecting.
He smiled and said great, which let me know I had absolutely left money in the table. A trusted colleague then told me if that situation ever came up again, take your real, reasonable expectation, double it and add 20. The situation has never come up again.
Probably you meant 20%. So that's X * 2 * 1.2. Or X * 2.4. Or make it easier and say 2.5. And 2.5 is 10 /4. So another way to say this is "take your reasonable expectation, multiply it by 10 to become really unreasonable then make it reasonable again by divide it with 4".
I have a kind of similar story when I started studying in the late 2000s years. There was a company that had a specialized and really expensive measurement device. But the vendor went out of service. They changed part of their system but kept the measurement device only to find out it could not talk to the new system because the file system of the data was proprietary to the measurement device.
I got a student job at that company and one of my first tasks (and that of several students before me) was to open measurement results on the device and type them into excel spreadsheets. I did this for an hour or so until I became totally bored so I started to tinker around. The measurement device had it's own PC that booted Windows (I think it was 95 or 98) and autostarted their software in full screen/some sort of . This was easy to bypass via the task manager and running explorer.exe. I found out that the proprietary file format was simplay an MS Access file with a different extension. I tried to open it, but the file was password protected.
At this time I had little to none experience with programming or anything else that was "low level" computer stuff, but I occasionally stumbled about writeups about hacks and exploits and skimmed over them. So I was pretty sure that there had to be a hardcoded password somewhere. I started to open every file I could in a text editor with no luck. Then I got a hex editor and opened the binaries and finally, in a dll there was a password.
The next few days at this job I spent teaching myself enough Python to read the Access files and write the contents into an Excel file.
This worked and I used the free time to study/eat/sleep while getting paid for it but then one of my supervisors found out that I wasn't doing anything but still got results and wondered how I did it. He immediately put me onto another problem they had, thus starting my career as a software engineer.
This is super similar to my start. I was hired at 17 one summer to do data entry for a surveying company, by putting timesheets created in Excel into a central system for billing clients. That got boring after a day, so I figured out how to use VBA (Excel on Macintosh System 8!) and wrote a macro that I linked to a button and put on the spreadsheet template, hidden off in the corner somewhere. When I got the next set of sheets back I hit the buttons and my job was done.
I showed the bosses, and was immediately put to work on some much more interesting stuff linking Lotus Notes with SQL Server for reporting and dashboarding, and then I was off to the races.
(The previous year I'd spent the summer making concrete garden ornaments with a group of ex-cons in a shed in the back of a farm - an experience which certainly made me appreciate the comforts of doing spreadsheets in an air-conditioned office, though my muscles were never quite as good.)
Its weird how luck plays a part in all this - I remember as a Student temping for the giant Audit firm, Arthur Andersen (become accenture eventually). I was doing something like typing from one system to another. I think I found VBA and demonstrated how I could do a weeks work in a lunch hour.
My boss took one look, freaked out and I was back at the Temping agency.
We are still very far from a Software Literate society.
Same story here. Was working for a manufacturer doing help desk/support. One of two people in the dept. First task was to help someone in a different dept sort through PDF files, and rename them to the company standard format. I wrote a python script to do this instead of renaming one by one.
Got reamed because "there's no way that is accurate and it might mess something up".
They where renaming the file based on the date of review, and the creators name.... Both of which were in the damn metadata.
If your position was independent enough, you could maybe get by with a "show me a mistake, and I'll acknowledge and fix it and eat crow. If you are just guessing, go look for an error."
Or if there was storage space enough, make a mirror directory with copies renamed, so there was obviously no loss of original files, then invite them to check as many as they wanted.
I do understand that many people don't trust automation like this, I've been there too.
It wasn't the humble beginnings of my programming career (far from it), but I still ran into a similar situation in an internship at a recycling company, just a couple of years ago. "Hey we got all these daily excel sheets that someone needs to sit down and aggregate into these monthly balance sheets." A couple hours of VBA later and I had automated it.
Then a few days later, I happened to talk to someone from the accounting side about this experience. She mentioned that they were actually also tracking these same numbers and apparently had an automated system already. The production floor just knew nothing of it and had been doing the same task by hand forever. I guess the realization how inefficient organizations can be was probably the greater learning experience for me there.
Your story is probably the more common one by far. Most employers and managers (especially for starter/entry-level jobs) are incredibly insecure, and any sign of intellect or creativity scares them. I've learned the hard way to never ruffle feathers by trying to think or solve problems at full power on a job. Just do what's expected and move on.
It's also why the nimble newcomer can often disrupt and slay the giant incumbent. It's a lot easier to create high-performance environments when you have teams small enough for all members to know each other personally than when you have hordes of people and have to use lowest-common-denominator bureaucracy to manage them in bulk.
I'm doubt much of this behaviour is driven insecurity / fear of intellect and creativity - it's mainly an incentive problem IMO. If I'm incentivised to keep an inefficient manual system going, I'll fight for that inefficient manual system until the bitter end. Sending a smart but non-business-savvy temp back to the temp agency is small potatoes.
I don't think it's insecurity all the time, although I have run into people who refuse to trust an automated process because they can't see the work getting done...
I think a lot of resistance is due to, like others have said in this thread, unexpected incentives.
If someone's career progress, financial incentives, or work politics require the status quo, no changes will be welcome, and might even be perceived as an attack. (Yep, been there.)
If you miraculously can get the incentives changed, then you can make progress...
My dad did this for someone's whole team as a favour because he overheard what they were doing over lunch or something like that. Later, he met the manager of the team he'd done it for and asked if they were going to transfer any of the employees that got freed up for the work and she said "no, there's still lots of work to do and the speedup, while helpful, wasn't major."
Went to her retirement party a year later and got the truth: Her pension was tied to her salary as a manager as an average of her last three years, and her salary as a manager was directly tied to her number of reports. If she'd have given up half the team as she could have, she would have lost hundreds of thousands of dollars over the rest of her life.
There was a lot of that type of stuff going on when computers first came in and hackers here and there started optimizing things. Individual interest and politics doesn't disappear.
I have a rule that helps me be a decent human being. Automate to make my jobs easy, never automate someone else's job. Too many hot shot software developers think that putting someone out of a job is a good thing
My first job was at a local computer shop. I literally got out the phone book and called them all in order. The one that finally hired me was called ZAM.
My first tech job was web dev at a small local shop. I also got out the phone book (and performed extensive google searches) to find all of the local web development companies.
I emailed them all, and wound up with two interviews. One was a wordpress sweat shop, and the interview went poorly--the owner had not even read my resume, started my interview while on a conference call, and told me my job responsibility was to "make her happy." When she said that, I politely declined to finish the interview.
The next went fantastically, and I wound up landing that job in a 3-person shop. I loved those people, and I'm very grateful for the opportunity they provided me. I also think we provided a lot of value for some important causes, which makes me remember the work very fondly, despite being in way over my head many, many times.
What a nice story :) Reminds me of how I got my first job!
It was 1994 or 1995, I was probably 14, I had outgrown the ZX Spectrum and had a 486 at home. My dad and I were in a computer parts shop, and near us was this guy my dad's age having trouble with his own computer. He was having random crashes, and nobody at the shop seemed to figure out what it was.
My dad suggested I offer my help. We approached the guy, an architect like my dad. They chatted, and in the end I got the guy's computer home. In theory this was about "reinstalling Windows" or something.
Reinstalling Windows didn't help, and I don't know how, but I figured out that one of the four 1 MB SIMMs (this was before DIMMs!) was bad (I think by trying different combinations of 2 SIMMs at a time until I isolated the one that caused the crashes). I triumphantly announced this to the guy, got paid some trivial amount, and he took the machine away. I was proud, my parents were proud.
A couple of days later, the guy calls again. He had gone to the seller, gotten new SIMMs, and the machine was still crashing. My dad told me he had an "oh, fuck" moment right there (but he didn't tell me).
I stood by my diagnosis. I must have sounded confident enough, because the guy took the machine back to the seller again - and they confirmed that the new SIMM was also bad!
Everyone was suitably impressed. The guy offered me a super part-time job, I think 2 or 4 hours a week. He ran a small architecture/building studio, himself and an architecture student.
I was "the computer guy" for a while. I set up the LAN (all coaxial cable and T-junctions - we're talking prehistory here). I designed a logo in MS Paint. Later I got my most ambitious task: to write a system to track the monthly payments for the flats they were building.
My C++ knowledge was extremely limited, having only recently outgrown QBasic. But I took Borland C++, wrote a text-mode windowing system (with mouse support!), and the payment tracking system, which even printed invoices. Sounds impressive, it worked, and it looked OK, but under the hood it was an abomination. Off the top of my head: I didn't understand dynamic memory, so each "window" had a hardcoded limit of 10 edit fields, 10 buttons, 10 labels,...; I didn't know the first thing about databases, so the state was serialized to disk by writing the raw contents of the structs to a file ("works on my machine!"); I was oblivious to the idea of event-based anything, so the whole thing was polling constantly and possibly using 100% of the only CPU in the system - but it was the DOS time, there wasn't anything else running on the computer, so why not? :)
I kept that job for a couple of years, I believe until I started university and got a part-time dev job, then got a full-time dev job, then quit it to start and run my game development company, which I quit 10 years later to leave South America behind, and make the jump to Google Zürich.
After my sophomore year in high school, I had a summer job doing some IT work for a very small company that organized medical research. I was very familiar with Excel, which was a huge strength, but also my weakness. I hadn't truly programmed before, but was an expert at throwing together absurdly long, chained together formulas in Excel that could sanitize some data - After a few weeks of work, I ended up making a really poor Excel VBA code that had a time complexity of O(n!). It would take a few hours to churn through the dataset.
I went back this year to visit some of my old coworkers - some of whom I'm still good friends with - and saw they were using the same macro from years ago. I sat down, wrote a small Python CSV script in about 5 minutes that did what I was trying to do back then which ran in about a minute or so.
I was incredibly surprised that they were still using that from so long ago, but they explained that they just hadn't had anyone bother to fix it because they didn't know it could be done better. I'm sure your DOS program was the same, and that they didn't know any better. I wouldn't be surprised if that system was in use for another 10 years or so.
I worked in the hot Florida outdoors, with children, for about 7 years through high school and after. Minimum wage. It's the part of my life I'd most want to re-live, though I can't say things have gotten harder or anything.
I had everything I wanted. Fitness, a rewarding job, a running vehicle, friends (via coworkers), and a decent set of fishing gear.
I really don't understand why OP is proud of their story about being a lazy teenager, and then obtaining a do-nothing job before being sent on a free ride to college. Talk about being completely oblivious to your privilege.
Same here, thanks Ned, this really touched me. I was 9 yo on a hot Italian summer day of 1985 when my dad bought his first computer for the bag-handcrafting company he still has with mom. I had my C64 since 1983 and I was also quite fluent in Basic at that point, so I was super curious to see the new IBM XT 8088D in action.
The sales agent from this "big" Italian company arrived, unboxed the PC, and started to explain to my dad the default MS-DOS commands. I was sitting there sneaking the prompt commands he was typing when, while installing the accounting software (which was the selling reason) the installation utility failed with an error twice and the sales guy was in a panic. A new version of the software was shipped early that week, and this was the first live installation of it. He tried some commands, started to screw up turning the PC OFF and ON, and at the end, he was completely clueless.
That's when I've stepped in - I've gently asked him permission to touch the keyboard and once got access, I started to play with MS-DOS and found the batch file that was responsible for the installation. The guy was looking at me with an expression that mixed surprise and hope when I've found out this file was a script that was similar to Basic and I've found a way to edit it. After poking for 1 hour in tests and trials, I've finally fixed a bug on a conditional that was bringing the data loading to a dead disk path.
The guy talked with his department the same day, and a manager from the company called me to understand what I did. They were so thankful! Nobody paid me a cent for this but after that phone call, I realized my passion could also be my future job and life, and 36 years later is still true. Thanks again!
Thanks, yep I think you are right about Olivetti, but in this case the company was Buffetti, a national-wide office supplier company that moved into software in the '80s to surf the PC era, cooperating with IBM for the hardware. I think at that point that was the first version of their software, and the department didn't last a long time.
Who are these people who write software locks. Can anyone here justify it for me? It's seems to be just plain evil. But maybe i'm attacking a straw man. I don't know.
264 comments
[ 2.7 ms ] story [ 290 ms ] thread> I created a “good” BASIC file from scratch [...] Then I compared it to one of the “bad” ones.
... mate :P
I can only imagine what this must have looked like.
You could read the docs or find the right person to talk to but its just faster to poke the black box and watch it's behavior.
Aka the scientific method of debugging
1) You turn it off and then on.
2) You look at one that works.
Seriously though: are there are any other steps that everyone knows?
* change stuff at random, look for observable differences
Early days of programming were sure facinating. Small businesses using other small businesses to write custom software. Lots of tinkering and hacking. Interesting times.
I had found a solution to save the business 100k+ when another contractor charged 10k+ and failed to complete a job because the business couldn’t pay them any more. The thing is, once I started digging into it, the other contractor had done 95% of the work; It just needed a nudge to get finished. But As far as the business was concerned, it was 0% done because it was an all-or-nothing situation (either it worked or didn’t).
I did the final 5% and charged $3,000. I presented it as “I can fix the problem for 3k.” Was that completely fair to them I sometimes wonder? I don’t lose any sleep over it — they had a problem and I fixed it. I think it was wrong for the first contractor not to finish the work up and deal with a final invoice rather than insisting on pay in advance and abandoning them that close to the finish lone.
As far as the business was concerned I was a very cheap solution, and I made an hourly rate of about $2k per hour.
But yeah, it was a 100k problem. All or nothing. Either it was fixed or not. The previous contractor had completed 97% of the work, had billed $10k, and then left when the company wouldn't pay any more.
I swooped in, finished the last 3%, got all the glory, and charged 3k. The business thought I was a miracle worker.
To be clear, the previous contractor did a crap job communicating with the business to explain how things were progressing and made it look like this would be a black hole the business was throwing money into. Had the previous contractor said "we're really close, we just need a little bit more money" the whole thing likely would have resolved without my intervention. But communication matters, I suppose.
The only non-computer job I've ever had was my first, a six-week stint at a Burger King, and I was desperate to never do that again. I undersold my skills often, and got in over my head just as often.
It was a great, if sometimes painful, learning experience.
Those early years certainly felt painful but in retrospect provided valuable concrete experience in negotiating, marketing, and self-assessment. I learned how to figure out what others really wanted, how much they should be willing to pay to achieve their goals, and (probably most importantly) whether or not I could deliver. That period of time, when computers were exploding into small businesses, was a little magical when it came to freelance programming.
Now, ~40 years later, I find myself applying those learned skills at my current job every day. I got lucky.
My apologies if I misunderstood your question and blathered on about something else.
https://en.wikipedia.org/wiki/ELF_II
The RCA 1802 processor even had "SEX" and "GET HIGH" instructions!
https://en.wikipedia.org/wiki/RCA_1802
https://www.atarimagazines.com/computeii/issue3/page52.php
It was massive. Maybe 6 inches thick. I devoured it, and later bought my own copy.
I had to work summer jobs though, starting at 15: road crew, pounding spikes on the railway, lumberjack. I'm not sure I would have been better off for not having those jobs though. I learned a lot about what the average person does to get by and about how much alcohol gives me minor alcohol poisoning.
However, I also did manual labour in the summer when I was ~20. There was nothing wrong with it. I would certainly recommend a brief stint of it to a young person, especially if you are training towards a sitting down/talking type job.
You are outdoors, you end the day physically tired but with mental and emotional energy for other things. You gain skills and improve your health and fitness. There's usually a good atmosphere among the workers. And you get to point at something concrete and say 'I helped put that up/knock that down/repair that'.
"Manual work" for all but 3 weeks of the summer was indoors for me, in factories -- mostly cleaning and assembling. There was a good range of jobs, from boring, tough work more-or-less alone, to a place where everyone seemed to chat while they worked slowly as the summer was usually a quiet period.
In the final job, I took a half-day off to collect my exam results. Going into work afterwards, people naturally asked what they were -- all A grades. It was difficult not to feel apart from many of the staff from that point. The owner's daughter was the same age and also working the summer at the factory, and her results weren't good enough to go to university.
I only had phrases like "look at you with your fancy words", which (in Britain, depending on tone) can mean something from "I'm impressed you remember words like that", to "I don't understand you" and "you seem to think you're better than me".
1. Would this still be possible today? It's a certain timeframe (for software) where this was possible. Today it's things like SAP, integrated systems and DMCA on top of it (or Excel).
2. I did the menial route and am still happy for it. Flipping burgers, cleaning dishes, repairing truck tires and cleaning office buildings. It's a different sort of grit and stamina than the one that gets you far in your office career, but I still look back fondly on the lessons about hard work. It was also an introduction into diversity. I've met people on those jobs the 16-year old me never met before, and since. For me the lesson is: whatever my kids will do in jobs on the side, it pleases somebody enough to give them money and them enough to do the job it's a worthwhile lesson.
There's still a lot of utterly awful, sloppy business software around, especially for SMBs.
I run a "CTO-for-hire" service with about 25 devs, product managers, and designers. I'd say at least a quarter of what we do is dropping in to rescue projects that have gone bad.
We're often treated like gold just for showing up, doing decent work, and bailing them out of a problem.
There's tons of work out there like this if you grow a reputation for being good and trustworthy, and you're willing to work through those really hard moments of everything being broken with no reason why yet. I'm 40 years old, and still just got the rush of excitement last week as I solved a major production problem for a company after a string of late nights. It's just fun.
2. Totally agreed about the value of other types of jobs as well. I will treasure my teenage and early 20s experiences as a Pizza Hut cook, Grocery cashier, and bet-taker at a race track for what I learned about those industries, how people work together, and the differences between intellectual and manual labor. As a salesperson, I also STILL reference knowledge from my experience in those industries when talking about new projects.
The fact he DID get the job means he got the better deal in the long run.
Maybe that's because minimum wage did not scale to match inflation since 1982. If it had, I don't think $11k would sound as crazy.
To compare some prices:
In 1983 Lotus 1-2-3 was selling for $495, which is about $1320 today.
In 1988 CompuServe was charge $11 (so, over $20 today) an hour.
In 1983 an IBM 5150 was between $1565 and $3000 ($4200 and $8000). http://www.oldcomputers.net/ibm5150.html
When I was first getting into IT I started sending out CVs. Mine was terrible. I had been working in call centres for years at this point and all my "experience" was basically self-taught, so not really experience at all. As a result my CV was void of any actual content a hiring manager in IT would want to read, thus it was binned a lot.
I applied for a job at a nearby network hardware repair place. They needed someone to look after their Cisco kit and about 30 Debian Linux systems. I was attracted to the mix of responsibilities so I applied, sending in me not-so-good CV. I was eventually asked to come in to have a chat after waiting about a week to hear back from the place.
At the end of the interview, Bob (let's call him), said I was more knowledgeable than the RHCEs that were coming through his door. This was nice to hear, but then he said something that really made me smile...
Apparently my CV was worse than I thought. It was so bad, that Bob literally put it in the bin under his desk. About four days later, Bob was reading through a local Linux User Group (LUG) mailing list and he saw a name he recognised: mine. So he opens the email and reads the thread in which I helped another LUG member compile a sound driver for their kernel. The instructions I gave worked.
Bob was impressed but he couldn't quite remember where he had seen the name. At this point the business owner, John (heh...), was standing besides Bob's desk and noticed my CV in the bin. He pulls it out and reads my name across the top. The penny drops for Bob and I get the call to come in and have a chat.
I got the job.
I had the opposite happen.
I took a job doing some programming, some Linux administration, some helpdesk. I came across a convoluted database setup, nobody in their right mind would run multiple servers on the same machine this way... After researching the issue, I found that it was totally unnecessary, and likely a holdover from an earlier (like 15 years earlier) version of the software, because now it was natively support.
During my searching, on a mailing list I found a message from my now-boss. Asking how to do the exact thing they were still doing. And a couple messages from developers of the software basically saying, "If you did it this way, it would in theory work, but it won't ever be supported"
One day, I was trying to get Mac OSX to run on this particular system, and on page six of google search I finally found a guide to configuring the BIOS for this board that actually worked! It was one of the very first boards that supported UEFI (iirc, before the spec was fully ratified), and the documentation was very incomplete.
I dug a few pages deeper in the thread, and the same poster was describing the poor design of the heatsinks and how they interfered with the full length PCI cards that were used in pro audio at the time. The same poster described how they carefully prized the aluminum heatsink off, screwed it to a board and used a dremel tool to make a slot just wide enough for the card to safely fit.
That was strange... I had exactly the same groove cut in my heatsink...
Bought it, and filed off the ears so it would fit in my car's socket. Worked perfectly, for a small fraction of the price.
Of course, my car is full of aftermarket parts, so I am used to making "adjustments" to get them to fit.
Probably not important in this case since it's just a light for parking, but lights for cars cost more due to having to meet exacting DOT standards/testing. I wouldn't do this with a brake light or real headlight.
True ... we just moved on from a car build in 1999 to one build in 2011 ... got the "non-extra" version which was half the price.
We still got an AC and bluetooth connectivity.
What we did not get was a multimedia center, a panorama roof, seat heaters and fancy front lights.
I can see that you quickly get used to that ... but tbh I think that most of these are just to justify a higher price because the actual service, getting you from A to B, has not changed in 30 years.
But heck, even a parking light will flatten the battery if left overnight.
That might be an interesting experiment to test.
It becomes uncannily relevant, even to the point of familiar IP addresses or pathnames in the blog, at which point I realize it was written by my predecessor.
The obscure parameters are usually obsolete, and were required because they were running the very latest versions of the software before the defaults matured. The blog was something like documentation at the time.
[1] https://news.ycombinator.com/item?id=27112542
Here's an example of how much it can matter:
* I co-founded my first company with people I met at university.
* We got our first investor thanks to a chance encounter between said investor and one of my co-founders at a bar.
* When we exited that company, our investors lawyer arranged a meeting for us with another of his clients, who hired us.
* One of the execs at that company hired me for his next startup, and introduced me to his brothers, so I could work part-time for them until he got funding.
* One of my co-workers at that company was one of my co-founders at my next company, and our other co-founders were friends of that person. One of them had worked for the VCs who invested in our first round.
* [I went to Yahoo for a couple of years -- no connections there.]
* The general counsel at my last pre-Yahoo startup pulled me into my next startup.
* [I then went to a web dev agency, no connections there]
* The co-founder of the company I worked at before the web-dev agency contacted me about some contracting, and I ended up joining full time (my current job)
So Yahoo and the web dev agency are the only places I've worked over the last 26 years where my resume has mattered. Even then, at the web-dev agency I name-dropped one of people who'd hired me previously, and it impressed them, so who knows how much my resume really mattered there either.
Funny, only one of the gigs I've gotten in my 30 year career has come from not networking...my first one. Every job after that has come about because of people I know recommending me for the job.
This has been super helpful over the past 15 years as I've been an independent consultant. In fact, I went indie because I had a network.
I don't need to look for gigs anymore, people come to me. I turn down way more gigs than I can take. And I haven't had to have an actual interview for a job in over 20 years.
I'm sure this isn't the norm, but it certainly makes work life a lot easier.
Does that not just imply that your network wasn't that good but not necessarily that the adage "who you know more is more important than what you know" is actually false?
My first summer jobs were with people my dad knew. The first actual programming job I got because I happened to be tagging along with my friend who had a job interview.
From there on in I got jobs mostly because I had a friend inside vouching for my talents.
This also goes the other way, I wouldn't join a company where I don't have inside information on how shit actually gets done.
The above is as necessary and unsurprising as rain falling to the ground. There is no other way that things can work. Thus the practical advice you can give someone is not only to learn something but to widen their professional network so that there are many people who know they've learned something.
It is the exact same thing in a big bureaucracy. You have to know how to sell yourself, which just means you need to successfully communicate your accomplishments. Too many people do great work, but they don't communicate their accomplishments, and then they are surprised that less qualified people are promoted over them, and they grow cynical or resentful when it is really their failure at communication that has caused the problem. Like many things in life, it's better to be mediocre at two necessary things rather than excellent at one and skipping the other. But no amount of righteous anger about the unfairness of life is going to change the fact that people are not omniscient and that talent is hard for strangers to evaluate.
So much to unpick in that statement.
The potential for communication differences in culture, gender, and personality to outweigh job performance.
That communication is a two way street, but poor communication is often attributed to one party.
The tendency for the promotion process to favour “upward focused” communication and communicators.
The fact that objective performance measurement, which could ameliorate some of these problems, is a joke.
It’s true that communication skills are essential, but laying the blame on poor performers just perpetuates problems.
I'd really rather go with "the more society discovers that we don't know how to obtain objective measures of excellence". We really don't have good tests that can fit in the interview slot for a lot of software engineering jobs.
For example, attend the tech conferences in your field. Contribute to open source projects they are involved with. Hang out where they hang out. Etc.
Make it easy for chance encounters to find you.
If they already know you, you can skip that step and the risks involved. Depending on your personality and flaws however it might also be a negative thing if people know you : )
When I was meeting the company guys, I'd updated and printed my puny resume in case they would've wanted it but realised they had "my resume" already. Basically the headhunter had copy pasted my puny LinkedIn profile data into their some sort of resume template and the guys were thinking I was actively looking for a new job.
Weird coincidences but ended up taking the job and haven't regretted after 2,5 years.
Alternatively I wonder if a modern version of geekcode could be created with a service that automatically compresses a submitted resume into a comprehensible string of Unicode characters?
[0] https://www.geekcode.xyz/geek.html
Where are the semioticians when we need them? Syntax, grammar, pragmatics, all develop at a rate of knots, but we still use a subset of ASCII for the vast majority of our symbolic computation. Could we do better than a joke from the nineties?
And don't just say "I participate in some LUG"... that can mean you show up to the meetings once every couple of months to eat the free food. Show your helpfulness in an email chain. Show a project that you did with them with a link that explicitly says you did a big portion of it. If no such link exists, get one created!
By no means do I promise wonders if you do this. HR filters may still eat your resume. But if you do get through to a real human, they may look at those things, and the ones who will understand what this means are the ones you want to work for anyhow.
If you've got the skills to pay the bills but your resume looks like any other high school dropout's, I can tell you, from the other side of the desk, you've given me no way to tell any different. It may stink that all we have are resumes in the initial process... but at least that resume is under your control. (Mostly. Sometimes it gets chewed on. But speaking for myself, I'm looking at raw resumes straight from the candidate and that's not uncommon.) Don't be afraid to use it, and don't be afraid to toot your own horn, that's the whole point of this particular document.
(Similarly, to the extent possible without lying, don't say "I participated in some project" as your work experience. Write something you did in the project. Don't say "I participated in a billing system upgrade", say how you rewrote the UI in React to conform to accessibility standards and made it run 10 times faster than before and customers uniformly loved it and paid lots more money or whatever. "Participation" could be "I had my hand held for every bug as I struggled to keep up" and it could be "I stepped up and took more responsibility than anyone expected and almost single-handedly completed the project, freeing up the other developers" or anything in between. Unfortunately, based on experience, I kinda have to assume the worst because it's usually right. If "the worst" interpretation of that phrase isn't right, don't leave it open to me!)
Believe me, if you're doing Linux support on a mailing list, or anything even remotely like that, you stand out, at least to the right people. Do whatever it takes to work that on to the resume somehow. The "standard resume form" is a skeleton to be fleshed out, not a straightjacket of form.
My first job I got the interview because at the time I was attempting to turn a snowmobile into a hovercraft. I had plans and everything.
I put this on the resume.
The first question in the interview? "Look, if nothing else we had to bring you in to ask. How the hell are you planning on turning a snowmobile into a hovercraft?!?"
The project never went anywhere, but it got me the job.
A resume page isn't very long, especially presented as bullet points as expected. And especially when you have absolutely no idea who it is will be reading it. I can tell you great stories about every project I've ever done, but not in a bullet point.
I have no doubt that most resumes are incredibly bad. But I'd venture to say that a substantial fraction of the resumes you think are very good will be considered very bad by the next hiring manager over.
If you can figure out some way to distill an important project down to a point or two, it's definitely going to work in your favor. A resume is not the place for great stories but it should make me want to ask.
I agree with your last sentence, although I don't think you will find anybody wanting a long resume from you. You could always provide a link to your online CV that is complete while the one you submit is an edited down version tailored to the company and position you hope to interview for.
You can turn this to your advantage, which I alluded to in my original. If you want to work with people who thing making hovercraft out of snowmobiles is awesome, put it on there. If you want to work with people who think that is a strange distracting thing to put on a resume, by all means leave it off. I'm sure HN is largely biased towards the first, so let me say I'm not being snarky at all about the second and I'm totally serious; if you are interested in a banking or government job you may well have those sorts of external interests yet find it a bad idea to put it directly on your resume.
Really my main message here is, take advantage of the fact that the resume is free form and don't just thoughtlessly put your name, work and educational experience, and three one-word bullet points about your hobbies or something on your resume, and then stop, because "that's what a resume is". Put whatever will get you hired. If there isn't a standard category/heading for whatever that is, make one.
If they get through to an interview, fine, they'll get a chance to be specific, but failing to be specific might well get them filtered out before that.
HR might not even understand what the link is about, but if they see something technical they don't understand but is related to the job, they will ask some technical person.
I got a call when I was younger because I was the maintainer of a package with several million downloads on RubyGems. It wasn't even a Ruby job, but the HR person's rationale was that "at least he's making stuff people are using".
I have seen some awful resumes, including for people with PhDs and long records of accomplishments. Even people who have been through resume writing seminars at job search organizations.
In fact, looking back at my employment history, only one of my jobs was a direct result of someone seeing my resume before they even met me.
If interviews worked, then Bob would not have not needed two slaps upside the head to get it right.
I hope the pun was intentional.
> In the editor, I could also clearly see the text of the BASIC source code for all the programs. It was there, not encrypted.
Also “Never underestimate a time-rich, money poor kid”
"
The RDOS file system provided means for protecting files by setting attributes. Because RDOS, not being a multi-user system, had no notion of file ownership, attributes applied to all programs that accessed a file. The sense of the attribute bits was, in most cases, the opposite of that in Unix; if the bit was set, the operation was prohibited. Files were by default created with all attribute bits cleared, permitting all operations. The attribute bits, as identified by the letters used to identify them in a file listing, were:
"http://www.self.gutenberg.org/articles/Data_General_RDOS
Or if it was some unreadable ASCII character, maybe it worked like an EOF in the editor? But the fact that he switched it from an F to an E gives me no clues. This stuff is unfortunately before my time, I'm sad I never got to play around with stuff like this in my youth.
However, technically, switching an 'E' for an 'F' is flipping *two* bits :/
On RISC OS, as that page says, a BASIC file has type FFB. I remember a plain text file had type FFF.
[1] https://www.kernel.org/doc/html/latest/filesystems/adfs.html
[2] https://docs.huihoo.com/doxygen/linux/kernel/3.7/adfs_8h_sou...
One note on editing - you use the phrase "to be honest" in two consecutive sentences in the first paragraph.
He smiled and said great, which let me know I had absolutely left money in the table. A trusted colleague then told me if that situation ever came up again, take your real, reasonable expectation, double it and add 20. The situation has never come up again.
I got a student job at that company and one of my first tasks (and that of several students before me) was to open measurement results on the device and type them into excel spreadsheets. I did this for an hour or so until I became totally bored so I started to tinker around. The measurement device had it's own PC that booted Windows (I think it was 95 or 98) and autostarted their software in full screen/some sort of . This was easy to bypass via the task manager and running explorer.exe. I found out that the proprietary file format was simplay an MS Access file with a different extension. I tried to open it, but the file was password protected. At this time I had little to none experience with programming or anything else that was "low level" computer stuff, but I occasionally stumbled about writeups about hacks and exploits and skimmed over them. So I was pretty sure that there had to be a hardcoded password somewhere. I started to open every file I could in a text editor with no luck. Then I got a hex editor and opened the binaries and finally, in a dll there was a password. The next few days at this job I spent teaching myself enough Python to read the Access files and write the contents into an Excel file.
This worked and I used the free time to study/eat/sleep while getting paid for it but then one of my supervisors found out that I wasn't doing anything but still got results and wondered how I did it. He immediately put me onto another problem they had, thus starting my career as a software engineer.
I showed the bosses, and was immediately put to work on some much more interesting stuff linking Lotus Notes with SQL Server for reporting and dashboarding, and then I was off to the races.
(The previous year I'd spent the summer making concrete garden ornaments with a group of ex-cons in a shed in the back of a farm - an experience which certainly made me appreciate the comforts of doing spreadsheets in an air-conditioned office, though my muscles were never quite as good.)
My boss took one look, freaked out and I was back at the Temping agency.
We are still very far from a Software Literate society.
Got reamed because "there's no way that is accurate and it might mess something up".
They where renaming the file based on the date of review, and the creators name.... Both of which were in the damn metadata.
Or if there was storage space enough, make a mirror directory with copies renamed, so there was obviously no loss of original files, then invite them to check as many as they wanted.
I do understand that many people don't trust automation like this, I've been there too.
Then a few days later, I happened to talk to someone from the accounting side about this experience. She mentioned that they were actually also tracking these same numbers and apparently had an automated system already. The production floor just knew nothing of it and had been doing the same task by hand forever. I guess the realization how inefficient organizations can be was probably the greater learning experience for me there.
This might be the saddest thing I've read recently.
I think a lot of resistance is due to, like others have said in this thread, unexpected incentives.
If someone's career progress, financial incentives, or work politics require the status quo, no changes will be welcome, and might even be perceived as an attack. (Yep, been there.)
If you miraculously can get the incentives changed, then you can make progress...
Went to her retirement party a year later and got the truth: Her pension was tied to her salary as a manager as an average of her last three years, and her salary as a manager was directly tied to her number of reports. If she'd have given up half the team as she could have, she would have lost hundreds of thousands of dollars over the rest of her life.
There was a lot of that type of stuff going on when computers first came in and hackers here and there started optimizing things. Individual interest and politics doesn't disappear.
I emailed them all, and wound up with two interviews. One was a wordpress sweat shop, and the interview went poorly--the owner had not even read my resume, started my interview while on a conference call, and told me my job responsibility was to "make her happy." When she said that, I politely declined to finish the interview.
The next went fantastically, and I wound up landing that job in a 3-person shop. I loved those people, and I'm very grateful for the opportunity they provided me. I also think we provided a lot of value for some important causes, which makes me remember the work very fondly, despite being in way over my head many, many times.
It was 1994 or 1995, I was probably 14, I had outgrown the ZX Spectrum and had a 486 at home. My dad and I were in a computer parts shop, and near us was this guy my dad's age having trouble with his own computer. He was having random crashes, and nobody at the shop seemed to figure out what it was.
My dad suggested I offer my help. We approached the guy, an architect like my dad. They chatted, and in the end I got the guy's computer home. In theory this was about "reinstalling Windows" or something.
Reinstalling Windows didn't help, and I don't know how, but I figured out that one of the four 1 MB SIMMs (this was before DIMMs!) was bad (I think by trying different combinations of 2 SIMMs at a time until I isolated the one that caused the crashes). I triumphantly announced this to the guy, got paid some trivial amount, and he took the machine away. I was proud, my parents were proud.
A couple of days later, the guy calls again. He had gone to the seller, gotten new SIMMs, and the machine was still crashing. My dad told me he had an "oh, fuck" moment right there (but he didn't tell me).
I stood by my diagnosis. I must have sounded confident enough, because the guy took the machine back to the seller again - and they confirmed that the new SIMM was also bad!
Everyone was suitably impressed. The guy offered me a super part-time job, I think 2 or 4 hours a week. He ran a small architecture/building studio, himself and an architecture student.
I was "the computer guy" for a while. I set up the LAN (all coaxial cable and T-junctions - we're talking prehistory here). I designed a logo in MS Paint. Later I got my most ambitious task: to write a system to track the monthly payments for the flats they were building.
My C++ knowledge was extremely limited, having only recently outgrown QBasic. But I took Borland C++, wrote a text-mode windowing system (with mouse support!), and the payment tracking system, which even printed invoices. Sounds impressive, it worked, and it looked OK, but under the hood it was an abomination. Off the top of my head: I didn't understand dynamic memory, so each "window" had a hardcoded limit of 10 edit fields, 10 buttons, 10 labels,...; I didn't know the first thing about databases, so the state was serialized to disk by writing the raw contents of the structs to a file ("works on my machine!"); I was oblivious to the idea of event-based anything, so the whole thing was polling constantly and possibly using 100% of the only CPU in the system - but it was the DOS time, there wasn't anything else running on the computer, so why not? :)
I kept that job for a couple of years, I believe until I started university and got a part-time dev job, then got a full-time dev job, then quit it to start and run my game development company, which I quit 10 years later to leave South America behind, and make the jump to Google Zürich.
Here's to humble beginnings!
I went back this year to visit some of my old coworkers - some of whom I'm still good friends with - and saw they were using the same macro from years ago. I sat down, wrote a small Python CSV script in about 5 minutes that did what I was trying to do back then which ran in about a minute or so.
I was incredibly surprised that they were still using that from so long ago, but they explained that they just hadn't had anyone bother to fix it because they didn't know it could be done better. I'm sure your DOS program was the same, and that they didn't know any better. I wouldn't be surprised if that system was in use for another 10 years or so.
I had everything I wanted. Fitness, a rewarding job, a running vehicle, friends (via coworkers), and a decent set of fishing gear.
The sales agent from this "big" Italian company arrived, unboxed the PC, and started to explain to my dad the default MS-DOS commands. I was sitting there sneaking the prompt commands he was typing when, while installing the accounting software (which was the selling reason) the installation utility failed with an error twice and the sales guy was in a panic. A new version of the software was shipped early that week, and this was the first live installation of it. He tried some commands, started to screw up turning the PC OFF and ON, and at the end, he was completely clueless.
That's when I've stepped in - I've gently asked him permission to touch the keyboard and once got access, I started to play with MS-DOS and found the batch file that was responsible for the installation. The guy was looking at me with an expression that mixed surprise and hope when I've found out this file was a script that was similar to Basic and I've found a way to edit it. After poking for 1 hour in tests and trials, I've finally fixed a bug on a conditional that was bringing the data loading to a dead disk path.
The guy talked with his department the same day, and a manager from the company called me to understand what I did. They were so thankful! Nobody paid me a cent for this but after that phone call, I realized my passion could also be my future job and life, and 36 years later is still true. Thanks again!