13 ms·
Catfish Programmers
- xupybd 9y ago"In the catfish world, code speaks, money changes hands, and friendships are evanescent" :( friendships are important to everyone, this sounds like a really unhappy way to live.
- 0xdeadbeefbabe 9y agoI think the worst part is looking like a catfish.
- deleted 9y ago[deleted]
- sbov 9y agoI think you're taking it out of context. It's about work friends, not friends in general.
- zeamaize 9y agoAt a certain point you get to the post friendship stage of life. :-/
- randallsquared 9y agoWell, the "post making-friends stage". Friendships you already have can last a long, long time, and if they don't, you'll definitely enter post-friendship.
- esaym 9y agoNot if you love code. Then code is your friend.
- lhnz 9y agoBy the time you reach this point you have long steady relationships and are less fascinated by the churn of strivers looking for that one 'connection' that will make them rich.
- jackgolding 9y agohaha i wonder to what extent people in this forum are looking for that 'one connection' (i know i feel like i am a lot)
- antihero 9y agoI would imagine that they have friends outside of their work.
- lordnacho 9y agoI lost a friend through contract programming. I didn't even want to be involved, as I was having a baby around that time, but he was really keen on his startup idea, and knew a sum total of zero programmers. So I passed him on to another friend while keeping an eye on the Slack/GitHub. It started off as a copycat site, so my ex friend basically just asked for that site, with slight modifications. That was easy, so we costed it appropriately. Then of course as the idea ballooned, he wanted all sorts of bells and whistles. On top of it all, he thought he'd manage the coder himself. I told him to read a book about agile, so he could get used to the Trello card approach to managing it. He decided not to. Also there were a million other little pieces of advice that he had his own opinions on. For instance we told him copycatting a design is easy, but we can't do a new design without a designer, and that would cost both onboarding time and money. He went and got a designer anyway. And the guy quit after a week, so a new guy had to be found. In the end we delivered what he'd asked for, but he wasn't satisfied. I told him I was giving him honest advice as a friend, and that he could easily spend another year and another salary on some yesman who would take him for a ride. So he got a yesman who told him we'd really messed it up, it wasn't professional, and so forth. And then he threatened not to pay us, so I had to threaten him with debt collectors. Haven't talked to him since. Site came up eventually, a year and a half after we'd actually built it.
- robmaister 9y agoThis is why setting up a statement of work contract at the beginning of the project is important. It allows you to defer ballooning ideas off until after the original task is done, and scope it out separately. I say this having done a decent amount of freelancing and making the same mistake myself (of course, after having read/heard this advice multiple times). Working for friends and not treating them exactly like any other client usually ends badly.
- xyzzy4 9y ago>Taking breaks to play games, chat around coffee, or taking a few minutes to walk around the office is a non-existent element of life. An 8 hour work day is exactly that: 8 hours of pure work. I don't understand how some programmers can supposedly work for 8 hours straight. I often have to take breaks to think about how I want to best implement the next thing, or what exactly I should be working on.
- komali2 9y agoI guess when you're paid hourly it matters, but ya, my work day is a bunch of 20 to hour long blasts of coding, interspersed with wandering around the office or bouncing on the giant yoga ball they gave me instead of a chair. Dunno how someone could keep on the screen for more than a couple hours straight.
- meric 9y agoYou can take a break by looking up the next ticket.
- komali2 9y agoOh hey it's my project manager, I didn't know you were on here.
- BigChiefSmokem 9y agoThe only place I ever actually coded for 8 hours straight was a place in which I loved the work and I actually felt valued on a day to day basis. During crunchtime (which only happened once or twice every few months) my manager would wait around after-hours so we could leave together and I wouldn't be the only one left in the building while the cleanup crew went to work. In hindsight I now acknowledge this behavior as his way of showing support even if it meant him just catching up on news and Facebook or writing boring emails while waiting for me to be done coding for the day. He taught me a lot about managing people, and in turn I taught him a lot about being on the cutting edge of our industry. This was a very small company trying to modernize itself in the face of daunting competition. This was the best position I ever held and was my first role as a lead. The CEO did not know much about technology but seemed to have an innate trust in me that I appreciated greatly. Granted this gave me the ability to use whatever technology I wanted so I was having a lot of fun with the day to day coding. I wouldn't even eat lunch some days just so I can finish up the task at hand before sundown. Sounds horrible but was (and still is) an incredibly exciting experience. On the other side of town, however, where I worked for Fox Studios (yes I'm calling them out!) I and the rest of the Contractor Army would be critiqued and yelled at by executive management on a weekly basis, like clockwork. Even though they gave me all the money and resources in the world, I hated coding every second I spent at that job. Instead, I spend a lot of time walking around the lot in hopes of meeting movie stars or something. I always figured it was the domain you worked in that made it fun or boring, but I'm starting to realize it's a lot more about the environment and people you are around that can make or break your work life.
- katzgrau 9y agoI spent a few years as a full time contractor and kind of had a chuckle at this. I worked on a truly awful mess of a codebase. It was the kind of codebase through which many devs had passed, and many generations of best practices. One part was straight JavaScript. Another had some jquery. Another had backbone.js - the perpetrators were all former full time employees. The product had never launched. I generally worked 8 hours and signed off promptly to work on my own projects. I did quality work. I viewed myself as a hired gun who was paid to do a job. In the end I was at the company longer than any of their actual full time employees (who left because they didn't like working on the crappy code or were stressed because of company politics) and was the only developer left to take the product to launch. Employees and employers often think that contractors are vampires, and many are, but you'll find the good ones are practically immune to whatever skeletons you've got in the closet and will get the job done.
- ENTP 9y agoWe share a similar mindset. I actually get a kick working through crappy code as I find reverse-engineering quite exciting, in a kind of "order from chaos" way. Take something crap, make it better, learn something and get paid for it. Ideal!
- ryan-allen 9y agoAs someone who usually writes the crap stuff that other people get to live with, now I'm on the other end and having to make this "order from chaos". It's one of the most difficult things I've ever done. I just hope I can figure out how to enjoy it, eventually. At this stage the only thing that keeps me going is I'm too proud to feel ineffective and to fail at this, ugh!
- ENTP 9y agoChin up! Here are some tips: * Reframe the task as a game. A crime to solve if you like. * See it as a series of black boxes that you keep subdividing (You are working top-down right?) * Keep a [cork|black|white]board like they do in the movies with all the suspects and details of the case, with the string linking them (Do this digitally if you like) * It's more important to know the I/O of the boxes/components than how they work, at least initially * Be transparent with your employer about the difficulty. They know it's a mess - that's why you're there. Good luck!
- paultopia 9y agoWhy is my system slow? $ grep -R "map" * reduce(filter even? (apply ( 3) (map inc (i for i in (filter even? collection)))))* What's with the dissing on map? Awkward code like that can be written in lots of ways... (rewrite it with transducers, friend catfish, rewrite it with transducers!)
- dizzystar 9y ago<3 Searching "map" was an entry into the larger joke, but not sure if it came across on the psuedocode.
- mhax 9y agoWas it a 'functional programmers know the value of everything and the cost of nothing' kind of joke?
- jperrot 9y agoif I read this correctly, the reduce statement here is reducing an always-empty collection.
- Nursie 9y agoSome of this rings true. OK a lot of it. Metaprogramming is often witchcraft. As is so much futureproofing. Layers upon layers of indirection because one day it might be useful. Mighty fine framework you have there, someday you do have to write the actual code...
- sqeaky 9y agoI find that I reach for metaprogramming for two reasons. First reason: I have been programmed into a corner. This needs to be tomorrow and a rewrite is out of the question and normally refactorings simply can't get the job done. I need to add methods at runtime or some equally nightmarish hack or the data won't be were is needs to be. I have done some like this twice both in Ruby, about has many times as I ever hope to need longjmp in my native language C++. The other reason I reach for metaprogramming, is performance. In C++ template metaprograms used to be the only way to have what were easily calculable valuables baked into the final binary. Now there is constexper, which is still sort of black magic and many don't understand it at all. Either way being able to replace runtime code with a thing that looks like a function but actually resolves to a constant can solves certain categories of problems.
- calpaterson 9y agoI am currently in the catfish position and have been for a few years. In my experience the #1 reason that people reach for metaprogramming (maybe 90% of all cases) is that they have just learned about the technique in the language and have not yet learned about the readability (and often performance) disadvantages. For background, right now I am working with an internal Python framework which creates key classes from mixins at runtime with Python's type() constructor. Figuring out what is going on at any given time is very difficult and interacting with it takes days longer than would be needed normally. The author is an inexperienced Python programmer working on a key library for a very large company and we are unable to throw his work away for organisational reasons (the framework team has a lot of political will). Not sure how to think about it. These people's poor quality work keeps me in a job but honestly it makes me feel bad for all the time and money that the client is wasting.
- BigJono 9y ago
- richardknop 9y agoI think I might be a catfish programmer. Have been contracting for several years and on daily basis have to sift through legacy spaghetti codebases originally created by full time employees or outsourced to some digital agency, fix bugs / add features in very short time (on average I stay 6 months on a contract).
- ltwdm 9y agoI did not get the bit about "invasive species"
- paulcole 9y agoBlue and Flathead catfish despite being native to a good portion of the United States are considered invasive in some places (parts of Florida as well as further north in the Chesapeake Bay) where they have been illegally introduced. There are also some tropical catfish that made it into Southern Florida that are also considered invasive. That said, I really don't get what the author meant either.
- sqeaky 9y agoI think he was talking about hypothetical slackers that work as FTEs. If not for their fuck ups, The spaghetti code wouldn't exist and neither would the job of cleaning it up.
- deleted 9y ago[deleted]
- zem 9y agoi believe he was talking about the contractors who oversell their skills and end up leaving the overall codebase worse than they found it
- draw_down 9y agoI love this. The catfish moniker is weird but I have definitely learned these lessons. I write very simple code because I've seen the hotshot stuff go bad, not because I don't understand the hotshot stuff. But, this way of working involves little glory or reward besides the money. You'll never be the genius that created the beautiful new thing, you'll always be the janitor who's stuck with fixing all the mistakes of the "genius". So just know that. One time a coworker said to me, you know, your stuff always just works and I never run into problems with it. That's about the extent of praise you'll get when you work like this. So know that too.
- pteredactyl 9y agoAs a contractor, that's fine. Because I do not seek glory in the office. I seek glory 2 miles up on a Tuesday morning hike while all the zombies are at the office. Also, there's no traffic so, :). EDIT: 'miles up'
- guelo 9y agoMaybe you meant 2 miles up?
- pteredactyl 9y agoYea
- draw_down 9y agoThat's cool,I've never been a contractor. Just always seem to end up cleaning up after old messes.
- laythea 9y agoI think that is depressing. I'm not saying don't go for a bike ride, but why not seek glory in something you spend 1/3 (+) of your life doing?
- Sean1708 9y ago
- paulcole 9y agoLarge catfish are actually very active predators. In most of the United States, blue and flathead catfish get up to around 100 pounds. Gotta hunt to do that.
- krylon 9y agoTell that to a manatee! ;-)
- scotty79 9y agoI tend to land on that position. But when I'm at the very bottom of the mud and I found the spot, I rarely rewrite a piece to make it in-your-face-clear. Sometimes I do, but more often than not I just edit few characters that are wrong. I can remember at least one case (probably had few more, just don't remember them) when, to fix a bug, I changed just one character, after few hours of reading and understanding all the bad ideas people before me implemented there, first seeing them as complete nonsense and gradually realizing, that what they wrote does what was intended, almost. It kind of feels good for me. I hate building though, because I'm painfully aware, how stuff looks once it's built. It's never good.
- majewsky 9y agoI had a similar case a year ago where about two days of work resulted in a pull request that changed only one word: https://github.com/docker/distribution/pull/1578 https://github.com/docker/distribution/pull/1578
- andirk 9y agoIf we don't change the culture in Silicon Valley soon, these "invasive catfish" are going to hold the rest of us back, like Who Killed the Electric Car https://www.youtube.com/watch?v=vRnUY6V2Knk https://www.youtube.com/watch?v=vRnUY6V2Knk . They were good at first, but then they realized big changes threatened their stagnant skillset. Rather than learn more, they utilize their power to keep things the same.
- ShabbosGoy 9y agoI think the automation of middle management positions will eliminate these archaic modes of thinking.
- AceJohnny2 9y ago> but the summoning of the demons from the 7th layer of hell and release a Stephen > King blood-fest on the planet. I was expecting it to be Wolfram on that second line :|
- pteredactyl 9y agoAs as contractor I take pride in my code and work to leave it better than when I got there. Some good points, in the essay, for sure. But overall pretty cynical.
- douche 9y agoIt is difficult to survive contact with reality without becoming cynical.
- le-mark 9y ago> leave it better than when I got there This can be a frightening statement depending on what 'better' means to anyone in particular. If 'better' means Enterprise Fizzbuzz, then no thanks, if 'better' means simplify and untangle spaghetti, or unwinding Enterprise Fizzbuzz then great!
- pteredactyl 9y agoGood point. The (your) latter.
- logicallee 9y agoThis is incredibly confusing choice of terminology, because "catfish" means to pretend to be something better, online, (or an entirely different person) than you are in person. [1] (I bet 80%+ of American readers understand this to be the definition.) So I thought the article would be about somehow crafting a linkedin and github profile that makes you seem like you're worth $250K, whereas in fact you are an actual imposter -- a junior programmer, for example, with less than 2 years of coding experience and in only one or two languages. Or someone who's just not a good coder and gets fired from everywhere due to not being a good coder. I found the article interesting, but I don't like the fact that it chose a term that pretty much means the opposite of what it intended. Really confusing. [1] http://www.urbandictionary.com/define.php?term=catfish http://www.urbandictionary.com/define.php?term=catfish
- dizzystar 9y agoI wasn't aware of that term until about a year ago. Never saw the TV show, and using that terminology didn't benefit the article. As pointed out in other posts, the article is a tad cynical, but I draw the line at outright bashing people or making assumptions about their character (every statement would have a caveat with "some, not all"). I think with that terminology, it would be an obvious angle that would force the article into an "everyone knows this" rant, which would take away from the attempted humor and alternative viewpoint. I left a lot unsaid, but it was an antidote to saccharine posts while hopefully not coming across overly bitter (because I'm not at all).
- logicallee 9y agoI liked the rest of the article :)
- hallman76 9y ago"catfish" is a type of fish. 100% of people who have ever fished understand this to be the definition :)
- briandear 9y agohttps://en.oxforddictionaries.com/definition/catfish https://en.oxforddictionaries.com/definition/catfish The urban dictionary definition of catfish is ridiculous.
- mighty_bander 9y agoThis speaks to me. I learned how to program in a professional environment by doing exactly this. I can play the design patterns game and I can write pretty beautiful code, but what I can really do is cut through the bullshit and all the lessons that people have learned without understanding the reasoning behind them, and get shit done fast. I love it.
- kbenson 9y agoOh, this hits close to home. Warning: Venting through wall of text follows. My first professional programming experience was in the early 2000's fixing and maintaining a Perl code from the mid-1990's. I wasn't a contractor, but the original author was no longer available, and there was little-to-no comprehensive knowledge about the code base in the company. We had plenty of people that could dive in and learn and fix, but as often as not, the answer to "how does that go about doing that" was "I guess we'll find out". Later, I went to work for a local IT consultancy, and occasionally did short term and long term contractual software engineering. The majority of the horror stories I have are from this period. I worked on a Payday loan company's code base where the original author was one of the owners, but was largely absent by the time I was working on it, due to personality and substance abuse issues. Once when making a change to the portion of the system that generated the ACH deposit file that was submitted to deliver money to customers, I noticed a commented out line that added another row, all statically defined, to put a couple thousand in a specific account. The comment above it said something to the effect "XXX's vacation allowance", where XXX was the absent owner and original author. I worked on extending open source call center software which was essentially a bunch of multi-thousand line Perl scripts run through Aseterisk. Unfortunately, the original authors either didn't know about use strict, didn't know what scope was, and didn't know how to pass arguments to functions, or it was all an elaborate way to generate consulting feels for the original authors. Every function call was preceded by setting global variables which were then used within the function. If multiple SQL queries were needed, it was always "$stmtA = .." then "$stmtB = ". Prepared statements and variable binding? You wish. Generally, about 20%-80% of the code of any particular script (of well over 30) was generally shared with 2-5 other scripts, with no abstraction to a shared module, making the possiblity of changing one spot but not others likely, and corruption of the SQL data controlling the state of the system likely. The SQL schema itself wasn't exactly a dream to work with either... I worked on fixing an implementation of a financial services company's rating algorithm implemented purely in SQL. The original IT employee responsible had disappeared one Thursday, and I'm not sure if they ever figured out what happened to him. The general vibe I got from them was that he probably took off on a vacation and decided not to come back. The code wasn't horrible, but making fixes to page-length dense SQL statements based on vague directions that certain stocks don't quite match the output for the Excel formula the owner developed years before is nerve wracking, when the entire business is generating reports based off this formula and selling access, and they need changes to this formula yesterday, and have little in the way of formal verification of the output. Finally, a story to somewhat temper the WTF stories above. When returning a decade later to the company of first job, I ended up doing most the heavy work on the ancient mid-1990's code that ran their custom CRM, having had experience with it when working on it in the early 2000's. This software was always baffling, because the original author, who while to my understanding was somewhat of a Perl novice when he began the project had made the extremely odd decision to forego functions for a large set of twenty or so chained GOTO statements for each "route" (action param, in this case), instead of a simple cascaded if statement to function calls for each route, which is not only easier but much more likely to be the first choice for a novice (IMO). I finally determined the reason for this when making a larger structural change to fix this. The code was meant to (and did) run through mod_perl. Mod_perl speeds up Perl by taking the script, and essentially wrapping the content in a function, and persisting it. Unfortunately, if you have a bunch of functions defined in another function and they happen to use even just a couple "global" variables (not so global now, since they are defined in the outer function), you get closures, and data persisting between HTTP requests that should not. Using GOTO statements was a somewhat crazy, but definitely functional, way around this. Sometimes the WTF you've just encountered has justification, and it takes a deep dive to understand the code enough to know why. Oh, that feels better. It's nice to vent every once in a while.
- FLUX-YOU 9y ago>The code that makes it into The Daily WTF[1] has no peer to many things a catfish programmer sees on an hourly basis. Hah. Although as someone who did contribute to Daily WTF from my recent job, a lot of the code was much better than the piece I found. God help you if you don't have a really smart IDE though.
- danjoc 9y agoI've found contract work tends to increase technical debt rather than decrease it. Contractors never say no. It's not their fault. They're not paid to say no. It doesn't matter if the work is "remove this emissions counter when x occurs," they just do what they're told. No push back. Push back means no contract. If my PM asks me to hard code something, I understand the business well enough to know when it's a bad idea and when it's okay. Sometimes I say no, that's a 3 month project. They run out, get a contractor, who says yes, 1 week. Now I'm stuck with a 12 month repair job instead, because it has to be fixed in production. I don't play ping pong or chat around the coffee maker either. I'm too busy cleaning up messes and trying to set things right so the server doesn't catch fire and force me to come in on my weekend. Some days, I hate programming full time. I wish I was a contractor who would say "Sure, 1 week." I'd get all the glory. "Wow, that was fast. What a brilliant programmer." I'd hate myself for what I did to other programmers though. Bottom feeders, indeed.
- jayhuang 9y agoIt's really quite unfortunate. But while true in most cases, it's also not always the case. Having done contract work/consulting for many years, I actually say no quite often. It's surprisingly common for business, especially small and medium sized ones, to make changes that do not improve their business, or even hurt it. Some read an article online saying "big red buttons increase conversion", and want that along with a full revamp of their system, even though it may not improve anything for their business. I believe that any consultant worth their salt should be cognizant of this, and look out for their client's interests. There is often a gap between what a client says they want and what they really want. Being able to identify that difference is key in delivering value and having leads come in without additional effort. Everyone can mash together a solution, but it's incredibly rare for a business owner to find a contractor who looks out for them and prevents them from throwing cash at a non-issue. Most business owners have worked with many contractors, and when they find someone who truly cares, most reciprocate.
- jeff_petersen 9y ago> Contractors never say no. It's not their fault. They're not paid to say no. I'm a contractor, working for a consulting firm, and we say no all the time. Sometimes it's not a hard no, but more of a gentle nudge in a better direction. But we often advise our clients away from certain requests because that's what we're paid for. We're the experts and they value our expertise, that's why they hired us. I know for a fact that what you describe exists, because about a quarter of our jobs involve cleaning up after someone like that, but I wouldn't say it's a feature of contractors in general but of cheap contractors.
- nunez 9y agoI don't know if I'm a catfish programmer, but lately I've been completely disinterested in offices with the sorts of perks that I used to go crazy for years ago. I don't care much about free lunches or extremely nice desks or chairs or ping pong tables or whatever. That stuff is distracting. I care much more about buying my own lunch and fun.
- douche 9y agoThe best stretch of my career, I was going into the office on Mondays, and working from home the rest of the week. Mondays, I would go to meetings and collaborate, and plan the rest of the week, and Tuesday through Friday I was working through the pre-planned work. I've never been so productive - I've since gone back to being in the office Mon-Thursday, and my production is a shell of what it was. There's so much more distraction, and I'm wildly less happy about being there than I was when I was at home all the time.
- TeMPOraL 9y agoI've recently managed to convince my boss to let me work from home for two days in a week (Mondays and Fridays). My productivity did get a huge boost (though that may be through Hawthorne effect; we'll see how it evolves over coming months), and my stress load reduced quite a lot. 3 days a week of direct, face-to-face contact with cow-orkers seems like a sustainable rate for me. 5 days a week made me tired over time.
- libertymcateer 9y agoIn my experience as someone who has been in-house counsel and now outside counsel for a variety of tech startups and software development shops, and has watched this happen in the careers of a lot of people around me (usually while being the sole 'suit' in the room), the transition you are describing usually happens in the late twenties or early thirties. It is basically the transition away from the last vestiges of a "school-like" mindset to a "career" mindset. In the "school" mindset, your primary form of social rewards are from the people you spend your day with - when you are a kid, your friends are all at school, and even though you go to school to do schoolwork, it is still where you see your friends. In the "career" mindset, your primary social rewards are the people you spend your nights with - which are friends who you do not work with, and, importantly, your family. In other words, as a young 20something, it is easy to still be in the mindset that the 'fun' time is when you go to the place you spend all day at and do so with a bunch of cool people. A lot of jobs, as a result, try to recreate that 'school' experience with a gym, scheduled fun activities, playtime, etc. Howev er, when you are in your late 20s, even if you don't necessarily have a family or are an introvert, the appeal of this lessens dramatically, as you naturally spend more effort trying to carve out time for your own interests - whether they be your family, your hobbies, or even just solitude and meditative peace. Accordingly, it is really just far less important that work have a bunch of perks that require that you actually be there, than for work be a professional environment that respects your time and is financially and intellectually rewarding enough to be "worth it."
- tutufan 9y agoPlot twist: We're all catfish programmers...
- hackersean 9y agoThank you! It's like everyone has missed the point of the story here...
- avenoir 9y agoOddly enough this doesn't really resonate with me. I've done contracting for 5 years and 90% of the work was focused on new development with the opportunity to get hired after the contract was up. Now this was a few years ago and my experience was strictly in the Midwest but I never saw myself as the bottom-feeder. If anything it was a good way to work at a company you liked where you didn't know anyone on the inside to recommend you. The experience was actually rather interesting and enjoyable.
- linkregister 9y agoI don't think the author of the article claims that all contractors are bottom feeders. Some of us have done this kind of work where we were intended to fix a set of bugs on a foreign code base. Whether or not the programmer is a contractor of FTE is not relevant, the experience of being a catfish programmer is.
- TallGuyShort 9y agoI expected this to be using "catfish" in the same sense as the online dating world; i.e. the "catfish programmer" is one who puts all sorts of programming languages on their resume but can't actually answer any questions about what they've done in that language.
- jimmeyotoole 9y agoYup. Me to a tee. Really glad I read this.
- mangofoobar 9y agoI'm exactly a catfish according to the post. Shit. Don't want to be called a catfish. More like a "shark"
- chuck32 9y agoHaving been a contractor for a short while (~1 year) and having worked with many different contractors over the years I've never seen a situation where management has been like "this part of the codebase is too much of a mess for us to handle, we need to hire a contractor to sort it out". Does that ever happen? Surely a contractor would be even less prepared than a permie to handle such a situation because they won't be familiar with the codebase? In my experience contractors are mainly hired for development of new projects or features when they'd like to get some more hands on deck to speed up development. Or because the company would like to hire a permie but can't for whatever reason (not sure they will have enough work in the long run, can't find the right person etc.). Also I've never seen a contractor that who's day-to-day functions were any different from that of a permanent employee. Where are these companies that let permies play ping pong for hours but have the contractors chained to their desk churning out features and reducing technical debt?
- teknologist 9y agoThis use of the word "permie" is toxic and annoying.
- chuck32 9y agoAnnoying? Perhaps. But toxic? I don't see how..
- teknologist 9y agoIt's all about portraying some colleagues as inferior by calling them a childish nickname. I've known several permanent staff members who left their roles due of this kind of behaviour (contractors boasting about rates vs. salary for the same work, refusing to merge code, etc). Calling colleagues cutesy childish nicknames is definitely a start on a downward spiral
- 1234321 9y agoIn my 6 years experience I've never seen this either. Here in Germany maybe it's a little different - contractors are very common at large companies, because it can be very hard to fire people once they've passed their trial period (3-6 months). So companies can be more reluctant to make permanent hires. Another reason is that a department might have a strict limit on their head-count (of internals), but not their budget, so they can still increase their workforce by hiring contractors (don't ask me why, just big company politics). At the two large companies I worked for, around half the team members were external. In both cases there were 3 types of worker: 1. Internal 2. External contractor & a permanent employee of a contracting ("body-leasing") company 3. External contractor & a freelancer / self-employed In terms of the tasks and technical responsibilities you have in these roles, I didn't notice much difference. The main difference in case 3 is that you get significantly more money (like 1.5-2x more), in exchange for worse job security. Given how easy jobs are to find in the current climate, I don't understand why more people don't opt for this. In case 2 in particular, the contracting company is taking up to a 50% cut of the hourly-rate, it's kinda crazy.
- madiathomas 9y agoI am currently a catfish programmer and not enjoying it. I now feel like a garbageman because I see lots of garbage and rarely given new code to write. I now spend more time reading garbage code and trying to figure out how it works in a matter of hours. It all started last year October when I took a contracting job.
- halfnibble 9y agoI'm a catfish. And I love it. The messier the code, the more rewarding the challenge.
- laythea 9y agoNot sure I understand this motivation. If I smashed up a lego tower, would you have more fun patching up my tower, or instead you can create a "better" new one all by yourself?
- mattmanser 9y agoBuilding a new thing from scratch means there's no guarantee anyone will ever use your code. The idea could be crap, the need not there, etc. There's satisfaction in taking a page that was taking 10secs to load and making it load in 43ms. You know you've had a big impact on the thousands, 10s of thousands, etc. people who are using it. And building a new system tends to go to the crap programmers because people are price sensitive. It's not until they start seeing the problems that expensive programmers turn up. I met this game Dev contractor once in his 40s, he was complaining how he never gets allowed to make a game, they get the inexpensive graduates to make the game, then parachute him in at the 11th hour to "optimize" it, which is basically tidying up the pile of shit the inexperienced Devs made.
- laythea 9y agoYes but I would have more fun coming up with it in 43ms in the first place. No need to artificially benchmark yourself against an old version of code. The market is the real benchmark - without the baggage of recode. re crap programmers - I don't doubt that this kind of behavior exists, and certainly with the success of the games industry and the extremely low barriers to entry (unity/unreal/steam/app store etc), this behavior may even be commonplace. If I was you I would have advised the senior dev to find another job. A company that operates like that is looking for code monkeys, not professional software engineers, and any such professional software engineers won't hang around for long.
- halfnibble 9y ago
- crusso 9y agoI'd imagine that the real catfish aren't posting to HN. They're coding.
- benhardy 9y agoAnd here I was thinking that this was going to devolve into a series of Betcha I Can / Hold My Beer anecdotes.
- rurban 9y agoNote that the "Catfish" urban legend originally meant something else. In the movie the catfish term is introduced like this: "They used to tank cod from Alaska all the way to China. They'd keep them in vats in the ship. By the time the codfish reached China, the flesh was mush and tasteless. So this guy came up with the idea that if you put these cods in these big vats, put some catfish in with them and the catfish will keep the cod agile. And there are those people who are catfish in life. And they keep you on your toes. They keep you guessing, they keep you thinking, they keep you fresh. And I thank god for the catfish because we would be droll, boring and dull if we didn't have somebody nipping at our fin." So it's indeed a bottom grundler, but with an important impact on the fish in the sunlight. Without the catfish the sunny fish would all die. The catfish keeps them agile.
- kelvin0 9y agoI understand the analogy and I like how the reality of the job is described. But I prefer the term 'mercenary' to 'catfish'... much less depressing!