Nobody ever paid me for code
bitecode.dev
bitecode.dev
What I've been pondering lately is another way to sum this up that is more future focused: Let's say a genie walks into your project and says that you can have 1.5 times the features you have right now, for 3x the code. The genie promises that the code will be "alright, maybe just kind of a bit bad". I think around 2/3 of developers would say no, but I suspect 2/3 of people in product management, sales, marketing, etc would say yes. Everyone would be sympathetic to the problems this would create, but the allure of getting 1.5X ahead on your roadmap is probably too hard to ignore for those other disciplines. It's basically accelerating all your other work streams by 1.5, at the expense of potentially bogging down dev. Obviously, countless caveats exist, but it does in general feel right, and feels like it hints at the fundamental causes of tension between business and development.
I don't know if there's great value in trying to figure out if you would quantitatively get ahead though. I think the value is in just realizing that some groups are inclined to perhaps take that risk, and some groups are not.
I agree with the GP. Business people would probably salivate over this, but if it were up to me I’d want to say no.
They always move the goalposts.
Working backwards from the critical path code to reinforce it with the infrastructure it needs to support robustness and ease of maintainability is valuable because it makes the path to ROI for the business very clear, and candidly, there is often lots of code that just wouldn't be high ROI to reinforce too much.
Plus some styles have changed over the years. If we keep changing quickly, good code is just a fad.
PMs never consider who will manage the code down the line. They never consider the implied difficulty multiplier because if you can't party poker it, you can't build it! That's what the agile ninjas say! Code that is "kinda bad but ok" will end up being the cause of a SEV0 eventually. This kind of tradeoff is made by management because the entire field of software engineering is a joke to them.
There's a trade off to be made. But it isn't the one posited. Creating code that is manageable implies it's better than "kinda bad but ok" but not all the way to a magnum opus in software engineering.
Leave decisions like these to the engineers. If management isn't willing to give "significant additional resources" to engineers they get what they pay for. Enjoy your extremely high turnover. Of course, it'll never be your fault. The engineers will also suffer the consequences. It would be nice to see even one PM eat shit for their terrible project management decisions done in the name of "agile".
Maybe for a 1.1x increase in features, but for 1.5x (provided the new features solve actual customer problems), I will choose the genie every time. /PM
Ah sweet, even more problems to deal with then. More people to onboard to support you in writing the 3x more code, more managers needed, or more strain on the managers, etc. We'll just fix it by hiring even more people.
Whether or not adding more people is a problem greatly depends on the existing workload and where in the development cycle those folks are added. It also depends on the quality of the people. My comment was certainly not advocating for putting more meat into the grinder in favor of chasing the mythical man month.
My point was more that if you can magic your way into 1.5x the features for 3x the code, and it's "alright", you can probably add 1.5x to the top-line revenue over the same time frame. A 1.5x increase in top line revenue, especially at a larger organization, is absolutely massive and opens up many possibilities, including hiring significant additional headcount. The headcount comes in /after/ this magical moment, not prior to or in the midst of. And yes, if you have 3x more code, you'd probably want more people to help manage resolving technical debt, fixing bugs, and generally dealing with the ongoing keep-the-lights-on work that is inherent in that.
We probably just took a nice small/medium profitable business and completely fucked it.
But that's not _his_ problem, and he already got his bonus for "hitting the date".
Even assuming all your developers are magically given a solid understanding of the new code, all remaining velocity will be entirely consumed by bugs and incidents. No more feature development will occur.
You could try to grow to outrun the code debt you've just acquired - but that's what literally every start up tries to do, and less than 10% succeed.
The most likely outcome is that the company would enjoy a one-time massive feature feast before slowly dying over the course of 5-10 years or so.
Great if you're a founder looking for a quick exit or some other position that is super focused on short term growth, I suppose.
Likewise, there can be an attitude of "Who cares about the code? I met the needs of the feature" that some devs will have. I've spent many an hour reading others' code, re-reading my own code over and over to learn the subtle differences in readability, cleanliness and maintainability between approaches. I want others to have some craftsmanship when writing code if we're working together. That also means getting the little details right in the user-facing parts.
Most importantly you need humility when it comes time to throw away the code you felt so good about. All code is trouble. The best code is no code. Don't let your well crafted code get in the way of deleting what needs to get deleted.
Your goal is to decide when to go from ship to maintain. And what level of quality should be the base level regardless.
The best code is the code that also doesn't make it harder to continue to get the job done.
If the deal was used on internal software that already did it's job relatively well, then it's probably not worth the long-term trade off.
I think that your larger point still stands, that most business people don't care about software engineering issues, but just want features, or solutions to problems, or whatever. Negotiating those issues in a business can be tough.
At Google taking this is a no-brainer since for a myriad of reasons, feature development is slow.
At a 6-mo startup this much tech debt this early on might just kill it.
there's quote about magic:
> Sometimes magic is just someone spending more time on something than anyone else might reasonably expect. - Teller
The 3x code is all the magical "stuff" and that goes on in the background to create the illusion of something magical just working as well as non-essential "flourishes" like animation of different font support
However the key difference is that one magical feature is worth more than 1.5x a list of features to sell to various customers who only care about a different subset of those features.
In both cases though, it's understood that there is an additional burden of complexity and upkeep in order to achieve an end goal. Every line of code adds additional entropy to the system until it caps out based on whatever rate of entropy expulsion the culture can maintain.
The diminishing return on additional lines of code may be an unavoidable part of large systems. So it always feels like returning to the "Beginning" via a new project or new startup increase agency and leverage. Which is then perceived by marketing/sales/etc... as a constant refusal to move into the "future" b/c of "bad code danger".
> you're not really paid for agonizing over eloquent or great code, but just code that "gets the job done".
Somebody might interpret this statement as if nobody (in their context) should worry about writing good code. If you're writing good or bad code it doesn't matter as long as it works. Package and ship it and call it a day.
But the author addresses this:
> It's not even about good work. This is also a given. That's the default expectation, it's part of the package. The cake will be good.
Then I'd say that you're paid for "good code that gets the job done".
The comment you quoted refers to great/eloquent code. But you took it to mean something different.
Given the rehashing of these same memes in dev communities since the dawn of programming, I don't believe there is a strong agreement on what "good code" even means practically speaking, even though we mostly agree on abstract principles.
IMHO, I think there is an understandable hesitation among developers to accepting that they're doing 'job for hire' work, instead aligning more with the idea that they're put in charge to produce something "beautiful".
Ultimately, it's all messy machine code with goto's and jumps everywhere and "elegant" data structures turning into bits mashed together in memory. The comments, naming conventions, coding formats, etc are all long gone.
This is in stark contrast when producing something physical where the finer engineering aspects shine through in the final product.
There absolutely is a time and place to ship "good enough code". But we have to factor in that for every ounce of credit a dev gets for shipping early there is three ounces of blame for when it goes way wrong.
This isn't a revolutionary idea, but for some reason, software devs suffer from an excess of black and white thinking. Things must always be done a particular way. It's such a bad tick, we have created a host of tools that try to enforce as much rigid uniformity as we can manager to automate.
I try to keep the details to the lowest denominator, which usually means mentioning what the problem is and what the proposed solution is in few lines. But eventually someone will ask for more details, and then the conversation veers off to technical discussion that I am sure the PMs and Analysts don't understand.
and if this is a demo, then it should only really require stakeholders.
if the meeting is for product to share their vision or requirements, save the tech talk for later
its very tempting to get into the weeds of things, but this can be "parking lotted" as the kids say
When I was young, I heard it many times, and couldn't make anything from it.
What's the audience exactly? How do I know them? Once I know them, what am I suppose to do? And all that stuff is contextual, so what are we talking about really?
When learning to negociate, knowing your audience is a very different thing than when trying to teach. Very few people are able to pull it off accross fields.
So I decided to write an article that targets a specific case with a concrete application and examples.
This would have been more useful to me back then.
(1) It should always be ones goal to improve ones technical skills, not only in the beginning of ones career. Too often have I seen bad code or lack of knowledge about computer programming concepts, that people ought to know, considering the time they spent in their career. Those things will result in "solutions" but those solutions might not be the most maintainable and understandable. Fine if you switch jobs every 2 years and never have to deal with the aftermath, but not fine for people, who value quality. All your communication skills won't make up for a brittle base due to insufficient technical skills.
(2) To let others dictate, how you develop professionally, being the ultimate yes-sayer. Improve the way you yourself value and see as important and stick to your guns. Not everyone needs to go along career paths that some company with mediocre management has laid out for them. Not everyone needs to become a talker.
(3) Perhaps the title is a bit too extreme. Code can be the solution. Good code even more so. Personally that's what I want to do. Write code to solve problems. Of course, only write it, when it is necessary. Who wants to write code only to have it be discarded, because it was not needed in the first place. (OK maybe sometimes one does, for the learning experience.)
I've also had consultants get a bit to 'hand-wavy' like described, and then I don't trust they can code either.
I think I agree with the author here. Code is a tool. This is like saying "a wrench can be the solution and a good wrench is even more valuable". I'm sure that car mechanics have very strong opinions about various wrenches. But I'm paying to get my car fixed. Sure, it's nice to hear that your shop has the latest equipment, but at the end of the day, the thing that matters most is that you can fix my car.
Even as a developer, I hardly care about the code quality or what language you use if you provide a good and reliable service. I've never thought to myself, geez, I love AWS, but I really wish they'd move away from Java.
If you found out that the garage was using wooden wrenches that broke 10% of the time and they passed that cost onto you, or occasionally broke and damaged the car, but didn't in your case, you wouldnt be like 'oh well, they fixed the problem, Ill keep going back to them'.
But the reality is that most code is written in a language that's good enough. It's a metal wrench that might be showing some rust. Do I think that PHP is a good language to start a project with today? Of course not. Do I care if you wrote your site 15 years ago and it still runs on PHP? Not really.
That is talking about specs, and it is exactly what the competition did too. Here in the unit "number of songs". Maybe most people at the time couldn't translate GBs into number of songs, but nowadays bandwidth or "surf" is talked about in terms of GBs because it has become familiar through experience.
The iPod had better specs and better design. The original Jobs presentation even puts up a table or 2x2 illustrating how the iPod specs would be superior.
Obviously, one adapts language to audience, but I've never seen a case where this is the real reason for success or failure.
It in fact had less space than the Nomad and was kind of lame
On top of that, it didn’t have wireless! /s.
Rob Malda, is that you?
The term "laptop harddrives" of course confuses the issue: the Macbook Air first shipped with a 1.8" harddrive before it changed to flash storage.
> That is talking about specs, and it is exactly what the competition did too.
Good catch. I'd expect something more in the direction of: "All your music. Always with you."
(And when you buy much more music for this product, Apple can sell you the "All" solution again next year, in the form of an upgraded-specs model.)
The statement isn't just the storage space in a convenient unit but also the approximate dimensions and weight in a convenient unit. But both parts of the statement are describing the problem being solved.
It's a good marketing statement because it focuses on a problem being solved rather than the mechanism by which the problem is being solved. The iPod had a lot of clever engineering but the marketing was always about the "problem" of carrying music with you and the iPod solving that problem.
Maybe they talked about "Giga Bytes", but I lived through that era and my recollection is that most stats for the mass market were, very simply: number of songs.
The thousand-songs-in-your-pocket sales pitch was more than lifestyle/concept -- it was an actual feature. All of the other players at the time were big & bulky because the components they used for storage & battery required the corresponding form factor. The "pocket" part of the sales pitch was exactly that: the ipod physically fit in your pocket because the components were smaller and more integrated. In the stage demoes by Jobs, he shoves the ipod into his jeans.
To the author's point about "you pay for the problem it solves, or the needs/wants it fulfills", the implied need here was that you need this to be small and out-of-the-way -- not a miniature home-stereo attached to your belt.
And not to pick on the author, but I don't find the ipod reference very applicable to the case of communicating with your consulting clients. Sure, you have to speak to your audience -- but direct 1:1 contact with a handful of stakeholders is hella different from millions of consumers who never asked you for a specific set of features and a timeline.
An mp3 player was in every kid's jeans pocket before the ipod was even announced.[0] Its innovation was costing twice as much and having white earphones, which made it suitable as a wealth-signaling fashion accessory.
[0] https://en.wikipedia.org/wiki/Portable_media_player#The_MP3_...
Nonetheless, I was referring to the sales pitch. And Jobs never let facts get in the way of a good story. :-)
The market was also divided in a way that's hard to imagine today, something like an iFP or PMP was like taking a single tape/CD with you. But the Jukebox (the infamous Nomad) and some other lines were really "put all your music here; this now is your music collection." The iPod was the first pocket-sized player that supported this mode. (And the iPod Shuffle probably the last in the line of the former style.)
I'd say that their innovation was that round touch slider thingie that added nothing to the functionality but confusion, but was fun to use.
This is a strange statement. I grew up in the Bay Area and a CD player was in my hands/in the back pocket of my backpack for the longest time. It wasn't until the second iPod Mini that I even knew what an iPod was.
There won't be an agreement here because it's just semantics. The opposite sounds very true as well. Let's reverse it.
"The thousand-songs-in-your-pocket sales pitch was more than a feature-- it was a lifestyle/concept."
It sounds.... exactly the same to me. Both words (lifestyle vs feature) have the exact same impact if it's the final word.
You'll get a technical project manager, and they'll bring in a consultant to do some programming.
"All you guys need to do is write a little code to interface X with Y, it should only take you a couple days"
They don't think, "you'll need to get with this vendor, use this outdated software, follow these restrictions, make sure the UI matches up with the other program, interface with this authentication library..."
That's all part of "Add UPS shipping support to our CRM software"
Having said that, I am probably wrong too.
That's a failure on the developer's communication. If everyday you find a new challenge, then everyday you must communicate that new challenge.
Code changes/features is not one to one. It's a bunch of changes to provide one feature. And remember we can at best estimate the time it will take us. Estimates are often wrong because of things we didn't know that we didn't know.
That misses a whole bunch of reasons a person could be "at the lot" other than for buying.
Easy, real world examples:
* You're killing time while waiting for the other half at a nearby store
* There's a whole group of vehicle "lots" next to each other, so you're taking a look at all of them for a better understanding of your options
* Your car is being repaired / in for a service (or similar)
(etc)
I wouldn't kill time at a fertilizer store if I didn't have a garden, though.
> * There's a whole group of vehicle "lots" next to each other, so you're taking a look at all of them for a better understanding of your options
This still means that I realize the value of a car for me.
> * Your car is being repaired / in for a service (or similar)
Same as the one above here.
Selling you on the concept/lifestyle is for when you don't yet know you need a specific thing. When you're at the lot, you're past that.
That wasn't what you were presenting in that sentence though, which is what I was responding to. ;)
You would if you had nothing to do other than walking into a fertilizer store. Very small chance of happening that to you, but I do like going into stores and see what they sell even if I don't need anything in there for me.
I might learn something.
If I want to buy a mug I don't need to delegate my Coffee solution choosing expertise.
Sometimes I wish I could delegate purchase of trivial items, especially if there are too many options to choose from. The investment of time can be excessive, with less than satisfying results.
Of course I would not like to delegate it to the manufacturers or vendors.
It's to convince me to buy their car instead of one from Tesla or Mercedes. And me walking into a BMW dealership does not mean I've decided to conduct business with them.
In these places, you're also getting berated for coming in with a XY problem on your way out.
The one exception to this might be, the car-buyer that does intend to heavily modify their vehicle, might value to the availability its creative inputs so that modification later on is easier.
One plumber will fix the leak with a new gasket.
The other will fix the leak with duct tape.
Both will solve the customers immediate need and stop the leak.
You are getting paid to code.
The person's problem is not code, but if code is the solution, that is what you are getting paid for.
The plumber is getting paid to change a gasket. If you look at the invoice, it won't say "water management" but it will include the gasket and labor.
Same for the car. If you look at the invoice, if won't say "personal transportation, instead you will see the car and the options that you paid for.
Same if you go to the doctor. It will list the various procedures and diagnosis and bill for those.
This conflates two issues: deciding the solution to your problem, and paying for the solution.
Marketing and sales is about convincing people that what you are selling is the solution to their problem. For example, car ads try to convince you that the specific car is the solution to going places in comfort with status. A beer ad tries to convince you that this particular beer is the solution for you having a great time with friends.
You actually then pay for the concrete car or beer, etc.
code is written once, then everybody can copy it to make use of it
why is this such a huge problem? what to do about it? I have a lot of opinions around this but it doesn't matter
but c'mon. I'm referring to the fact that code can be made into libraries, or APIs if you're so keen on collecting rent
and then as a digital asset, the library can be copied and distributed, hence code can be written once (one team writes it) then everybody else can use it with no additional cost, (again, unless you actually want to tax/collect-rent from other people, then you make up this additional cost)
Only if you use dictionary meanings of words. Otherwise it really is not different. 99.99% of all meaningful code is not gotten right on the first try. As said above, you have to iterate on it.
> I'm referring to the fact that code can be made into libraries, or APIs if you're so keen on collecting rent
Name one library -- that is NOT just a network client for a paid SaaS service -- and then maybe I'll understand what point you're trying to make. And even if you find one, they are a vanishingly small, undetectable, minority.
you should learn about systems software... they may be 'vanishingly small' but they're there in the foundations of the entire computing stack. done once, a long time ago, and used by all ever since.
just the most basics: but there are (sadly were) more: https://en.wikipedia.org/wiki/Glibc
They're not written in stone. They still change and evolve.
I reject a future in which all software works as a subscription based service; this is just more taxes (in principle)
I see society going down this path and there are no good reasons for this at all (it is just double then triple then mutliplefold taxation on activity; and what for? so that few lucky persons collect rent forever?).
¯\_(ツ)_/¯
Sure end consumers buy, “their lost childhood” “the feeling of belonging” and “being a superhero” projected onto various objects of desire.
But people can think logically too! I need a sparky. Yes because I am addicted to twitter, and have no bush survival skills either.
E.G:
"Sure you are being paid for a solution. But you are also probably being paid for a quality solution"
or
"Code can be the solution. Good code even more so"
or
"when you pay to get your car fixed, there's an implicit expectation that it will be fixed well enough that it doesnt break the same way again"
But the article does address this:
> Now, of course, this is a tad more subtle.
> Different types of problems have different types of costs, consequences, and constraints. And solutions to those problems as well also have them.
> When code is the solution, it has a cost, at the very minimum in time and man-hours. And constraints, such as licenses, NDA, platforms, versions, formats, resource limits... And of course, consequences, such as technical debt, electricity consumption, user experience and hiring difficulties.
> While the clients don't care about the code, they care very much about those.
> And so, as IT professionals, we must communicate talking about that. Not about the code.
Of course the quality of the solution matters, but it any good thing has a price. Therefore you have to present it with the price, and then your opinion on the whether it's worth it.
I'm not sure you would want your house built by the contractor that took short cuts and did shoddy work. You might have roof over your head, but there will be more expensive problems later.
You might want to pick a better analogy as you've literally described all roofing construction at this point
What's the equivalent of "leaky" software? Users can observe bugs, and they can observe slowness. Experienced developers know that what we call "poor quality" code is more prone to bugs and slowness, which they _do_ care about. They don't (and shouldn't) care about maintainability, they care about functionality: we should keep harping on performance and testability rather than esoteric "quality".
One company I worked for was once the market leader, but over the years they failed to maintain the quality of the software. They kept adding more and more resources to get stuff out. Eventually it took them three years to get out a new release only for it to be so bug ridden they had to pull it. They are no longer in existence because they had the mentality of all that matters is features.
I obviously can't say exactly what the precise problems with the code base are, but it's rather easy to conclude that it must be a total mess.
I'd add that with a certain level of seniority, for those developers that enjoy working directly with clients and stakeholders, it's expected that you can translate in both directions.
That is: not just going from "tech to non-tech", but also shaping a "non-tech" requirement into an actual solution.
Clients will rarely ask for redundancy, persistence or ACID compliance. But they will say things like "I want some sort of completeness check, and I can't have the system drop any messages from the exchange."
> But you don't really pay the plumber for putting a new gasket in.
> In fact, you don't care about the gasket, you care about not having you sink leaking.
I care about the gasket. If I want the sink to not leak then one way is to not use the tap/faucet. There are countless ways to fix the problem of your sink leaking, but only very few that you really want. Knowing your problem is important so that you don't waste time and money on charlatans. I care about the damned gasket.
Sure maybe YOU care about the gasket, but there’s some other technical domain in your life that can sub in and the metaphor stands. No one is technical enough in every arena of life to care about the gasket.
Also to really stretch this metaphor to its limit, it’s exactly as the author said—there ARE countless ways to fix this sink but you care about a select few. And the truly world-class plumber knows that and will gauge your interest in understanding the full solution.
So at the end of the day, it’s STILL not about the gasket it’s about the communication surrounding the gasket and your comment actually reinforces this.
I would be pissed if a plumber charged me to do it some way other than the right way.
I'm paying for the sink to stop leaking, sure. But I'm also paying for the solution to be the correct, and best solution, especially in regards to fixing durable infrastructure.
I get the author's point, but this was a poor analogy because there is a lot of ways for plumbing to be done wrong.
A better analogy would probably be shipping a box from NY to LA. I don't particularly care if it is trucked, flown, or carried by a team of pigeons as long as it gets there when I was told it would get there.
Code conissours don't quite get how nobody else cares, or even notices the code.
Look at Etcher. it's 80MB to do what DD does. I used to use it until the Pi imaging utility came along. And for non pi stuff I still use it. It loads almost instantly on a modern machine, and it's safer that DD where you might accidentally hit the wrong key and have nothing stopping you.
But a lot of developers would be bothered every time they use it by the fact it bundles electron. They have a sense of quality that goes beyond functionality, they want deep craftsmanship even if means more manual work, and the fact that complexity is not their problem doesn't matter, they don't like anything unnecessary anywhere.
So when they talk to others, they're talking about their interest, which is trying to get to the core essence of what defines a problem in an elegant way, while the user just wants it solved in a way that means they don't have to think about it anymore. For the coder, the thinking is the whole point!
Or at least for the typical fairly intelligent intellectual, idea driven personalities in the code world.
The "quality" is key. I can stop the leak, but if I did it badly, the sink will start leaking again. And it will leak worse.
Now, you can't sell a Patek Philippe by saying it's the most expensive out there. It has to be "the best" which is reflected in price. And you don't really ever make the comparison because it wouldn't reflect favorably. The aesthetics are, of course, top notch, but the sales copy is full of specs and descriptions of the arcane, lots of words to say it's the watch that goes ding.
Marketing an upstart consultancy, you reach past the manager who makes these safe, expensive decisions, and you try to do the Apple thing mentioned in the article. You'll be laser-focused on providing value, lots of easy wins that the manager can show off at every opportunity. They will wonder who their wizard is that is doing all this with only 4 team members while the other project is using 30 and has nothing to show for it yet.
Familiarity eventually causes the manager to short-circuit the upstart's sales pitch. They get 10 minutes into it and the manager says, "You mean you're just Agile? We already use Scrum. Boring." So the upstart will have to come up with new things to stay ahead of the established player.
Over the years, what I learned is that individuals or companies do not like paying for technologies. They pay for products. In the case of technologies, companies rather pay for "boring" workflows. For instance, companies pay for control planes, so much so that Amazon's Open Search can be a billion-dollar business. On the other hand, few companies would pay for AWS AI's Key Phrase Extraction or Amazon Forecast, unless data processing is part of the service and is a huge pain for the companies.
Instead of making up a new variant, you might use one with a bit more historical lineage. My favorite version involves Charles Proteus Steinmetz, the deservedly named "Wizard of Schenectady", from this 1965 letter to the editor at Life: https://books.google.co.uk/books?id=QFMEAAAAMBAJ&lpg=PA16&pg... taking place supposedly around 1920 (see https://history.stackexchange.com/questions/43438/in-what-ye... ).
That still doesn't mean it actually happened, but you might get an up-vote by Steinmetz fans. ;)
It's even less complicated than all this. You spend X on a feature to increase revenue by Y. You pay a plumber N so you don't have to pay a flooring guy 10N. In some orgs, if they're large, you could replace $ with $KPI, but $KPI should still be obviously quantifiable. If you're an engineer without obviously quantifiable KPIs (especially if you're a young-ish engineer with ambitions of becoming really excellent one day), you might consider selling your skills to a more serious employer.
Maybe the later are harder to find on demand, but there are plenty there.
There are benefits and tradeoffs each way. I think the most important thing is to know what kind of person you are and what you want, and move towards finding work where you can be mostly actualized in that.
This! Adapt the message to the target audience. The code we write is an abstraction, it takes some input and produces an output. For many it's a black box or can be thought of as a black box. Start high and go lower and lower until you reach the right level of detail for the person you're communicating with.
Know your audience – know what they need, and you can develop accordingly.
There are principles to master in how to make a job good enough considering the time / budget constraints.
I think many ppl here should not just read it once but several times and try to learn.
Next step after that: — how will team work and nice&pleasant interaction with colleagues help me achieve things.
p.s. to me the OP read like a Cover Letter for a job application :)