Home / General / The case against passion

The case against passion

Something’s been bugging me lately. I’ve seen it said in otherwise intelligent blogs. I’ve seen it crop up more and more in resumes and job ads, to the point where it becomes something you have to say if you even want to be looked at, a piece of mindless dross taking up space on the paper or screen. I’ve seen it from managers who thought that it was an excuse to offer subaverage pay and conditions and demand unreasonable things from employees. I’ve seen it from people who should know better talking about how to educate and train engineers and programmers. I’ve been meaning to post about it for a while, but this post in It’s Common Sense, Stupid was the bit that finally got me to blog about it. It’s rather a dirty thing to say, in fact in some circles it could be positively career-damaging, but I don’t think much of those circles anyway and I think it needs saying, so here goes.

Programming is not all about passion.

Passion is the antithesis of good programming.

More on this after the break…

Before I have to don my asbestos suit, don’t get me totally wrong – if you had no interest at all in programming or computing, you wouldn’t be working with computers. The jobs we do, whether we’re teaching in university courses, working in startups, or buried away in the bowels of a large company in a perpetually underappreciated sysadmin role, are not jobs that sane people take on without some interest in computing. At some level, we have an intellectual itch that these little boxes scratch. We’d go postal otherwise.

But interest isn’t passion – and to claim that passion is the defining attribute of a good programmer is patently wrong. To claim (or even worse, to imply) that good programmers are the ones who are so taken up in their code that they pay no attention to piddly little real world things like pay, stock options, pensions, health insurance, morgages, taxes, politics, love lives, children, family or worst of all, hobbies that have nothing to do with programming, is utter nonsense. Programmers, especially good ones, are intelligent people, the main focus of whose intelligence is problem-solving. Yes, they focus more deeply on problems than some others, but not by continually excluding the rest of the world. Several have literally changed their world – we all know the famous examples of people like Tim Berners-Lee, Marc Andresson, Larry Page, Sergey Brin, Steve Wozniak and even Bill Gates (I said “changed their world”, not “changed their world for the better”). Pick up a can of beans and read the URL on the side, or ask who the world’s richest man was a few years ago, or ask any random office worker what a spreadsheet or a mouse is and you’ll see what I mean. Thing is, they all (except Wozniak and Berners-Lee, who actively chose academia over business) were or are highly successful businessmen as well. So is it that you can only be a good programmer if you are so passionate that you do nothing but programming, but Sergey Brin made a mistake one day and started Google without meaning to? Yeah, right.

That’s not to say that you have to launch a startup to be a good programmer either, by the way – I think there’s been enough of people getting kicks into Paul Graham recently to conclude that you might not have been meant to have a boss, but most of us weren’t meant to wear clothing or use money either and we’re getting along so well with those that we tend to expend lots of time and effort on acquiring both. The point is that these people were intelligent and intelligent people have a habit of being polymaths, often with an interest (and a lot of competence) in a lot of fields.

What does it take to be a good programmer? There’s natural ability in areas that are useful for programmers. The ability to think about abstract concepts productively is an obvious one, as would be the ability to focus deeply on problems being considered. Whether these are down to genetics or environment is an ongoing debate, but pragmatically the how isn’t important to us, just whether you have them or not. But I don’t think we quite need to start a eugenics problem just yet, because frankly, having those abilities is not sufficient to make you a good programmer. Useful tools for a good programmer, yes, but not a sufficient precondition to be a good programmer.

There’s training – but formal training has been shown by example to not be essential to programming, and I think that’s mainly because the field is far too young to know how to teach it formally in the first place (compare civil engineering with computer engineering and you notice things like the way courses in the latter change annually while in the former you can use course notes from ten years ago with ease in most cases). Established fields have had hundreds of generations of engineers to train, and have as a result learnt how to do so – computer engineering has had about seven and software engineering about four (I’m taking a decade as an estimate of the time between engineering generations here but there’s a solid argument for shrinking that significantly for software engineering – however, not enough to get software engineering onto a par with its brethern branches of the profession).

The critical thing, however, isn’t going to be natural ability or training. Or at least I don’t think it is. Soon Hui used the example of Tiger Woods in his blog post, and I think there’s an interesting point in that analogy, so I’ll use it – but Soon Hui was wrong about why Woods is a great golfer. Yes, he started playing at a young age, and yes he’s put in enormous amounts of effort into the game – but that’s not why he’s the champion that he is. He’s the champion because he works at it. And it’s not just the simple act of working at it either, every golfer does that, and some for longer than Woods does or has; it’s that Woods works at it in a structured, focussed, committed and self-critical way. Not critical in the sense of being negative, but critical in it’s original meaning – a dispassionate and objective analysis. He examines his performance, notes the weaknesses and works on them specifically.

Look, let me give you a better example. I’ll stay with sport because there are obvious parallels, as Juon Illas noted. Take olympic target shooting (to confess, I’m using this example because I know more about it than I do about golf, but it’s closer to programming than you think – both require patience, concentration and enormouse attention to detail). Look at the results from the ISSF World Cups, the World Championships and the Olympic Games for the past decade or three, and you’ll notice a trend – the same people’s names keep coming up, but with the exception of Ralf Schumann in rapid-fire pistol, the medals get won almost at random amongst those names (Ralf’s in a bit of a niche really). The reason is perhaps simpler than it appears – the difference in skill levels between the top thirty shooters in each event is usually negligible. Shooters do go through good and bad times in their competitive career, but on average, the difference between the top shooters on the line is miniscule. In fact in some events, the difference between the gold and silver medallists’ performances could arguably be down to brownian motion of the air molecules between rifle and target (0.1 points out of a possible 109.0 points in a finals boils down to a bullet hitting about 0.8 millimeters closer to the centre on one shot out of 10. That’s a difference of 0.000167%, roughly). So how do you get a medal in shooting if there’s that much of an element of random chance?

You train until you’re good enough to get into the finals consistently, and you keep competing and getting into finals, and sooner or later, you’re bringing home a medal. Simple, isn’t it?

Well, no, obviously.  It requires that you consistently examine your technique, your performance – both physical and mental, your equipment and your training itself, and that you not only continue to train but also that you continue to improve that training process (see why I thought it was a good analogy to use?).

Passion? Has no place in the process at all. Yes, you can use it as a motivation – but it’s worse than useless if you want to actually succeed. Passion is fleeting, transient, momentary on the timescales that achievement requires.  For motivation, you need something deeper and more permanent – and more, you need something that lets you be dispassionate at the same time as remaining motivated. Passionate shooters get into the sport, spend a few years trying, maybe they don’t get good at it but more usually they make it to some self-described goal like winning a nationals or hitting a certain score in competition, and then they lose interest and drop out. I’ve seen this happen dozens of times, and anyone in target shooting could list off names at you if you asked for examples of this. The people who stay in, who win medals, passion is not their motivation. They have a deep love for the sport, yes, but it’s the kind of love you get with three kids and a morgage and thirty years of listening to someone snoring at night. It’s about as new age and airy-fairy as death and taxes. And it’s also about as long-lasting.

So what’s the lesson to take from this analogy? It’s that passion isn’t the thing you need to be a good programmer – what’s needed, what’s vital, what’s fundamentally required to be a good programmer is the process. It’s the process of continually examining what you do in as dispassionate a way as possible, and improving how you do it.

Another lesson from the analogy would be that in this process you do not compare yourself to others, because there’s no point (target shooting isn’t a contact sport, you can’t effect other people’s performance so you just focus on your own and improve yourself). So you’re left with a continual process of dispassionate self-improvement for the sake of self-improvement, consistently carried out throughout your career.

There’s a word that has come to be used to describe that kind of behaviour. It’s professionalism. You want to know what a good programmer is? He or she is a professional. They get a job, they do it to the best of their ability, and they continually, dispassionately and deliberately improve how good that best is. They’re balanced people, with families and homes and jobs that they leave behind when they stop working, they include rest as part of their daily life, they take holidays and read widely and generally you find they’re more productive as a result. They take a task and they do it well and they do that consistently, instead of trying to do that one quick thing that will give them instant fame and ego-stroking. And maybe they’ll never have fanboys cheering them on when they put up slides in a conference that say “fuck you” to other developers; but when you get prostate cancer and the oncologist puts you into the IMRT machine to zap an area close to your gonads with a dozen different beams of radiation, you’ll probably find yourself hopeful that a professional wrote the controller’s software rather than someone who was always chasing the next hot thing in computing (and maybe never worrying about stupid dull things like documentation, specifications, tests, code reviews, quality control or that sort of old-fogie stuff).

And I know what your thinking – but you’re wrong (the eighties can come get their old tv catchphrases, thank you very much). Sure, a professional is a positive thing to be, but it’s dull and boring, isn’t it? Thing is, engineering’s a funny field sometimes (in the funny-strange sense). One of the lesser-remembered comments about the US space program – something that most people think of as desperately exciting and cutting edge – was that the astronauts often thought things felt unoriginal. The first american in space, Alan Shepard, commented that the view from the mercury capsule periscope looked unreal and the entire flight felt like one of the hundreds of simulated flights he’d done before.

Engineering can be simultaenously groundbreakingly original and mind-numbingly boring. It’s a dichotomy that may not be intuitive, but which lets you have a 500 horsepower sports car with airbags and anti-lock brakes. And that’s an analogy that’s somewhat relevant here, because a lot of this cult of the rockstar programmer feels like a mechanical engineer who builds the 500 horsepower car is trying to get a chunk of the adrenaline that goes with driving the car on the racetrack. But in reality, any engineer trying that would be suffering from a very small and myopic worldview; because the greater glory is in the long-term changes that the lessons learnt in building the car bring about – the car’s driver gets a fleeting buzz but the car’s designer changes the world, whilst also getting the regular salary, the pension, the health insurance, the wife and kids and home and eight hours sleep a night.

Of course, for those who feel they really need that cheap buzz, remember that the pragmatic engineers always get better actors playing them in the movies: Jimmy Stewart, Alec Guinness, Hardy Kruger, Ed Harris, Morgan Freeman and Jodie Foster on our side versus Tom Cruise for the racing drivers. No contest really 😀


  1. […] Passion is the antithesis of good programming. — I think there is a lot of misunderstanding around the notion. Good programmers need some passion, but great programmers need lots of it. For some reason everyone wants great programmers, argely because they’ve been promoted as having 10x the productivity of a usual programmer. The trick is that a great programmer will likely not be motivated to deal with the usual problems (exactly because of his passion) and likely will even underperform in such a role. My thesis is that passion is just as much important as the software you’re building is creative. Not everyone needs greatness and there’s surely not enough of it to go around. Give it up, people […]

  2. I would actually argue the opposite .. professionalism will get you through the times when you lack passion .. passion is what keeps you thriving in your career ..why stay in your field without passion ? Do something you’re passionate about and your creative mind is free to produce greatness. I can be a “professional” for a short period of time .. but if I don’t have a passion for what I’m doing .. sorry, I have better things to do.

  3. That’s precisely why passion is the antithesis of good programming. Any and Every programmer out there has days when they wake up and all they want to do is program, because they have an idea in their head and want to go code it up. The problem is that the next day, maybe all you want to do is go off and play computer games or go for a picnic or veg out in front of the idiot box. The good programmers are professional enough to get through that and push their projects forward even when they’re not in the mood to do so. And if you think that the really great programming success stories were only done on days when their creators felt in the mood, you’re incorrect.

    The point wasn’t about those wonderful high days that we all get, when going to work is a joy and everything’s great – it’s about all the days, good and bad. The good programmers, the mythical 20%, work through all those days. They’re not dependant on waking up in a good mood to get good work done.

  4. IMO, this post can be viewed as either (a) the logical fallacy of false alternative or (b) a semantic splitting of hairs with muddy terms.

    Regarding (a), of course there is a middle ground where passion and professionalism meet. To suggest that a professional athlete doesn’t have passion is absurd.

    Regarding (b), can’t one’s passion fuel the drive to be dispassionate about analysis? I just don’t buy that dispassionate professionalism gets pro athletes out of bed in the morning. However, this descends us into definitions and semantics. I can’t argue against the post per se because the only definition of passion is that it is “fleeting and transient”. That is, the rhetorical deck is stacked from the start. (To be fair, the pro-passion posts don’t really define it well either).

    I do like the opening paragraph, though, and agree that the term is over-used.

  5. Passion will improve your best performance, self-criticism and practice will improve your worst. In the long term, the latter is probably more important from the point of view of your usefulness to an employer – unless you hit a golden fortnight in which you create a product that makes a zillion dollars. Which is possible, but not terribly likely

  6. The target shooting analogy is useful again here – when we start training people for target shooting, we don’t train them to hit the center of the target; we train them instead to not have “fliers”, to be consistent. So they start off and they shoot a 60 shot match and they have some 9’s and 10’s, lots of 7’s and 8’s and a fair few 6’s, 5’s, 4’s and worse. So we just work on basics. They don’t get any more 9’s and 10’s, but they get less 4’s, 5’s and 6’s. In other words, we work on consistency, on tightening up the pattern of their shots from the outside in – by bringing up the bottom of the histogram, not the top of it.

    Focus on improving the bottom of the histogram and you pass out anyone focussing on the top in very short order. They may have a few 10’s more, but you don’t have 3’s and 4’s. Same thing in programming. Forget passion – focus on the process.

  7. I believe Mark Dennehy is missing the correct role of passion.

    He speaks of passion like it’s the opposite of professionalism. They’re unrelated attributes.

    Someone can easily be passionate AND professional or just passionate or just professional (or even neither).

    Professionalism , the commitment to the learning of the tools of the field in which you work and the constant application of those tools in a responsible manner for the benefit of your customers, is a very useful behavior in many endeavors; In others endeavors, which are more on the edge, in sharp growth phase, in a very early startup phase, etc, the unbalanced, burning drive of passion is actually more important than the practice of professionalism.

    The throwing three sheets to the wind but getting it working because you want to see it in the world (but probably done in a less than perfect manner) is often more important to a business in a transitory state.

    Is passion better than professionalism? No. Is it worse? No. They’re used in different places to great effect though. It is true you can’d build a stable business out of passion alone? You bet your pants it is. The point of passion is to make something fantastic. It is oblique to the challenge of the professional businessman who may or may not be able to make money off this fantastic creation. I think some dispassionate, non enthusiastic, realistic people in an endeavor are great. But for many projects, ambitious passionate developers are what get it to great.

    All that said. I agree it’s completely stupid to put “passionate” in a job listing. But it is most assuredly is not the antithesis of good programming. It can be a part, just as professionalism can be. They’re just some ways to have a good programmer. I’ve seen both great tick tock leave at 5pm programmers and great burn the midnight oil then burnout programmers. You’re getting overly structured with your metaphors and missing reality.

  8. I think you actually make a good case for being passionate about something in order to succeed in it. Being passionate implies being addicted to something, to an extent that you love it. When you love something/someone, you want that love to grow.

    If you’re meeting people who lose this addiction upon seeing failure, then they were not passionate to begin with. They were fooling themselves, much like the 50% or so of the couples who seek divorce within a couple years of their marriage. They were NOT in love.

    Why do we have firmware authors slogging it out when they could be working half as hard to build the next iPhone app? Pure passion. They know they could work less and make more money doing something more colorful. They are passionate about electronics and engineering, and see no other option in front of them. If it were all about being ‘rationally dispassionate’, they would wake up and follow the money, also because professionalism would easily follow them.

    I agree that intelligent people have a habit of being polymaths. But, that expertise extends only to related fields, and seldom to a very few disjointed domains. Even then, it’s theoretically and quite literally possible to be passionate about more than one person/thing.

    I think your argument is a bit jaded, or maybe it’s just how the English language works.

  9. Very insightful. I tend to agree, and I like how made the point that computer people are typically individuals who like to solve problems, and it tends to be that they solve problems with code, or networks.

    I believe that for 98% of the jobs out there, I’m going to want someone who has hobbies apart from the computer. Not to say that they don’t ever write code when they’re “off-the-clock”, but rather that there are other things that interest them. I really don’t care what the other things are… bee keeping, theology, cooking, auto-mechanics, creative writing, but something that utilizes other aspects of their intellect.

  10. Hey there. I’ve been in charge of a software project for 4 years and just recently, the project was handed over to another engineer. This was *my* project and I was very proud (read passionate) about it. When it was handed over to another engineer (whom I respect about doing a professional job), he decided to re-design pretty much everything using different technologies and I became a little overly passionate about the change in engineering decisions.

    The engineer was being professional and making decisions based on best practices and what he knows best. I on the other hand have spent 4 years with the platform and I think that I know what the platform requirements will work best for the project.

    So, will the new engineer’s ‘best practice’ approach be better than my ‘experienced’ approach? We have yet to find out.

    I’m biased, because I’m the passionate person in this analogy, but I strongly believe that since I’m passionate about the project and I have a more intimate understanding about the issue, my design will win out over the engineer who is very good but doesn’t have the same experience with the platform as I do.

    What do you think?

  11. Your post inspired me to think more on this concept of professionalism:

    In any case, it seems at least some (most?) programming is more like engineering, especially as there are computer and software engineers. So perhaps we should import the intuition behind what it means to be a professional engineer into what it means for a programmer to possess professionalism.

    Again, we look that up, but this time on the Professional Engineers Ontario website, which has a useful and short answer. What stands out to me is the condition that the work done has an element “wherein the safeguarding of life, health, property or the public welfare” is involved, and even more importantly:

    Rest at:


  12. I think Michael Langford nailed it. Passion is absolutely not the antithesis. You can be both passionate and professional (and I seek both), and both will be useful at different times. They are not mutually exclusive.

    Again, as others have said, passion may be overused in job requirements, although at least we’re now saying that instead of “rockstar” and “ninja” and things like that. But the idea that you wouldn’t want people who are passionate about coding (or any job), and that those people are not going to get the job done, etc. is ludicrous.

    As someone who is married, has kids, is a serious cyclist, and is the primary developer at a startup, I am absolutely passionate about my work, but I also consider myself very professional. I consider it a key part of my job to watch the business, and make the hard choices and do the necessary work to drive the business forward and make it successful, even when some of that work may be drudgery.

    I do think there are varying degrees of passion, and I think you can absolutely be professional and successful without being passionate. But I also think there are certain environments where you also need to be passionate, or where that will make you even more successful. Thus, I would suggest reconsidering the “antithesis” angle.

  13. This post is exactly how I think about my professional life as a software developer. Of course, I like to work in this field. Of couse, I like to solve problems. And of course, I like to create something that is useful to others. Maybe I’m too much of an engineer to be a creative, rockstar-like programmer that everyone is talking about, but for me it is the level of professional workmanship that is the major point of “being good” at something.

    I agree with the 10k hours that you need to really be good at something. It’s the same with playing the piano or any other instrument. If you work on it, you’ll get good. Maybe you’re not the next Mozart, but not everyone needs to be on the top. That’s why I don’t like the sports examples: you’re always talking about the gold medal winners. 😉 We won’t have cars, won’t have great buildings and won’t have a lot of others great things if there weren’t all the people that care about what they do and that really do a good job without standing out of the crowd. I think that is a much overseen part of professional work.

    For me this discussion about passion is on the same level as the discussion about rockstar programmers and the whole “programming is creative work” things. You need the bright heads and the spare moments of genius to build really great things, but after that, you need a lot of dedicated and stubborn people to work on it every day from 9 to 5. 🙂

  14. Even though I take almost no interest in the definitions of professionalism or passion, I do like the way the discussion is taking place.

    My personal opinion is that both passion and professionalism is required to be a really good programmer. But of course priorities change throughout life and sometimes other things tend to get more attention.

    I also appreciate the point about education. My personal take on this have been to start working without going to university. But taking courses on the side. Having worked 10 years as a programmer makes it really easy to take these courses and helps me solidify my practical experience into lasting knowledge. It also helps me in regards of critically evaluating my performance and knowing my weak spots. In turn helping me develop those points and further evolve in my professional field.

    Working full time and at the same time educating myself within the same field would not have been possible without some degree of passion I think.

  15. > So you’re left with a continual process of dispassionate self-improvement for the sake of self-improvement, consistently carried out throughout your career.

    But that’s not at odds with being passionate about programming–not at all.

    I’d also disagree that passion is necessarily fleeting.

  16. I don’t think one rules out the other, i consider myself passionate about being professional. Because much like a gold medalist i strife to be everything i can be and take great pride in my work. I am a craftsman. To me passion does not equal constantly chasing the latest fads.

  17. Passion doesn’t make a a great programmer, nor a professional one. Passion is what drives us to strive to be great. You might have a natural talent, or be a prodigy like Mozart, but if you don’t have the passion for what you do then you will likely still be great at it, but it won’t mean much to you inside. And I think that’s where the line between passion and skill/talent get blurred. Many people believe that anyone with massive talent *must* love what they do, and thus be passionate about it, but that’s not always the case.

    I love what I do, I’m passionate about computers and programming, and my love and interest in electronics directed me towards computers and I remember the first time I switched on my first computer, a Sinclair ZX-81, and typed in the lines of my first program, I knew this was what I wanted to do for the rest of my life as a career. I’m passionate about what I do, but I don’t always love it and sometimes wish I was doing something else, but that passion drives me continually to learn more, learn new skills, and always do the very best job I can, every time, even though I might not love the particular project I’m working on, I can’t do a second-rate job – the passion I have and the love for my work means that not striving to do my best is failing at my own values.

    But, in the same way that the skill doesn’t necessarily equate to passion, the existence of the passion doesn’t automatically imply the skills are there to satisfy it. And that’s where the drive for learning and improving yourself come in, and where the passion really helps. If you desperately want to learn how to do something because you have the passion driving you then you will learn it, and you continue to learn more and more new things which in turn feed your passion and drive to better yourself and do a good job – no, a great job!

    I have a passion for computers and programming, but I know I don’t always have the skills to do the job, so I’m driven not only by a requirement to learn but the passion to learn, and I get just as much satisfaction for myself just out of learning how to do something as I do in actually putting that knowledge into practice.

    Passion is not the be all and end all, but it cannot be discarded as unimportant. It *is* a factor in why some people are better at some things than others. Skill, ability and talent combine to make someone extremely adept at a particular task, but throw passion into the mix and you give that person drive, a turbo-boost in essence, to take that skill and turn it into Jedi Mastery.

  18. passion is a motivator (aka trigger) — process combines passion & talent effectively & efficiently into results — without passion a process is an efficient algorithm with no inputs — passion does not equate to talent either — process cannot help if there is no talent — talent needs to be there either explicit or implicit (an ability to gain it) — process is like a great sportscar — a love of driving (passion) & a great machine (process) will not help win a race, if the driver is unable to master skills (talent) — need all 3 — process can accomodate lack of talent to a degree by providing a formal environment or lack of passion by providing opps to grow that passion thru improvement, but still depends on both

  19. I think the appropriate word here is gumption. Passion and professionalism may come into it, but really, both Soon and Mark are talking about having initiative and perhaps resourcefulnes. It’s the degree of having that gumption which seems to be the debate.

    The impression I get from Soon’s post is that anything less than total dedication is insufficient for a sustained career. I don’t believe that. You can have a measured sense of gumption which produces no less effectively than someone with an excess amount. I care for what I do, but I don’t feel the need to be a gold medalist or the Tiger Woods of X. (Or the Tiger Woods of anything, given his current situation.)

    At the same time, if I end up putting in my 10,000 hours and becoming a master of what I do, all the better.

    Lacking that gumption is what would get a person into trouble.

  20. Well said ,

    After this post , i think i need to modify one of my blog post that wrote about “what it takes to be a good programmer”


  21. Programmers have to be professional when they are working in a 9 to 5 job whether they are passionate or not. What separates the passionate programmer from the professional only programmer is that the passionate programmer does not restrict himself to just the 9 to 5 job. He will be working on improving his skills even after his office job. And the reason he can do this is because he is passionate about programming.

    Talking about all those famous programmers like Bill Gates, Tim Berners-Lee, Steve Wozniak, etc, all were able to achieve success firstly because they are passionate programmers. There must have been times when they would have focussed sorely on programming for hours on end when it was needed to solve a particular programming problem. And you tend to spend hours on something only when you are passionate about it. Maybe being passionate tends to being addicted because only when you are addicted to something can you achieve mastery in that.

  22. This post expressed what I’ve been thinking ever since I started my career and started reading Joel Splosky (which happened about the same time). In my collegiate studies I knew that participating in two club sports and being an English writing major as well as a computer science major made me a better programmer. It’s why a liberal arts education used to be the only kind of bachelor education offered. In my career today I know that spending time reading widely, discussing a variety of issues tenaciously, and taking time to relax while problems whiz around in the back of my mind helps me work efficiently in the time that I give to my job (so that instead of being half-brain dead working 70 hours a week I can put in an average work week and get my tasks completed on time).

    The many commenters pointing out that passion and professionalism can co-exist may be right. However they aren’t answering the objection that a variety of passions co-existing side-by-side (say for writing poetry as well as programming) can actually help someone’s professional life.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.