Search
Search titles only
By:
Search titles only
By:
Log in
Register
Search
Search titles only
By:
Search titles only
By:
Menu
Install the app
Install
Forums
New posts
All threads
Latest threads
New posts
Trending threads
Trending
Search forums
What's new
New posts
New ads
New profile posts
Latest activity
Free Ads
Latest reviews
Search ads
Members
Current visitors
New profile posts
Search profile posts
Contact us
Latest ads
Ad icon
Jobreceive.com for sale
Blogerwiki
Updated:
Tuesday at 8:55 PM
Post Your Vehicle for Sale — FREE! - https://libro.lk
Kalu_Puth
Updated:
Tuesday at 7:38 PM
ඔයාගෙ Assignment හෝ Thesis එක හරියට හදාගමු
ErMurazor
Updated:
Saturday at 10:52 PM
Ad icon
BlackWall V2ray servers
hu KANNA
Updated:
Sep 23, 2026
Peppa Pig Family Plush Toy Set – 5 Characters
anil1961
Updated:
Sep 19, 2026
Electronics
Vehicles
Property
Search
Reply to thread
Forums
General
ElaKiri Talk!
Principal Software Engineer සහ Tech Lead අතර වෙනස?
Get the App
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Message
<blockquote data-quote="jehantheexplorer" data-source="post: 28903626" data-attributes="member: 583767"><p>Software engineer vs dev difference</p><p></p><p>It's up to the company really, as I don't think there's a legal framework to enforce a denomination or another, or at least not that I am aware of and this might vary from country to country (for instance, the use of the term "engineer" is actually fairly regulated in France, but there are variants that are allowed for the "abusive" cases).</p><p>That being said the general trend goes like this:</p><ul> <li data-xf-list-type="ul">A <strong>programmer</strong> position is usually the one of <em>a professional hired to to produce the code of a computer program</em>. It will imply that you <em>know how to write code</em>, can <em>understand an algorithm</em> and <em>follow specifications</em>. However, it usually stops there in terms of responsibility.</li> <li data-xf-list-type="ul">A <strong>developer</strong> position is usually considered <em>a super-type of the programmer position</em>. It encompasses the same responsibilities, <strong>plus</strong> the <em>ability to design and architect a software component</em>, and to <em>write the technical documentation</em> for it (including specifications). You are <em>able to - at least technically - lead others</em> (so, programmers), but not necessarily a team (there comes the fuzz...)</li> <li data-xf-list-type="ul">An <strong>engineer</strong> position would usually imply that you are a developer who <em>has a specific type of degree</em>, some <em>knowledge of engineering</em>, and is <em>capable of designing a system</em> (as in: a combination of software components/modules that together form a whole software entity). Basically, you <em>see a wider picture</em>, and you are <em>capable of designing and explaining</em> it and <em>separating it into smaller modules</em>.</li> </ul><p>However, <strong>all this is arguable</strong>, and as I said, <em>there's no legal requirement that I am aware of in US/UK countries</em>. That being said, in France you can only call yourself an "engineer" if you come from an engineering school (recognized by the Commission des Titres d'Ingenieurs or something like that). You cannot say that you have an "Engineer Degree", but you can say that you have a "Degree in Engineering" if you have studied a discipline that falls under the portemanteau of engineering and technologies.</p><p>It might be that some countries have a similar distinction, I just don't really know.</p><p>Back to the software engineer title... Once, one of my teacher told our class - and rightly so - that <strong>there's no such thing, as of today, as so-called "software engineering"</strong>. Because engineering something (be it a building, a vehicle, a piece of hardware...) means you are capable of envisioning its design and all the phases of its production, and to predict with accuracy the resources you will need, and thus the cost of the production.</p><p>This is true of most "true" engineering disciplines. There are fluctuations, of course (the prices of the materials will vary over time, for instance), but there are very finite theoretical models (for design and planning) and empirical models (for pretty much keeping any of the former within accessible constraints) that allow you to predict the termination date of a project and its resource usage.</p><p>The major problem with software is that it is not there yet. We want to aim for software engineering, but we're not there yet, really. Because we have a very fluid and dynamic environment, very variable constraints for projects, and still a lack of maturity in retrospect in our processes. Sure we could say we get better at it (highly arguable with hard-data, though), but we've only been at it since the 60s (earlier projects were actually closer to hardware-only computers, thus closer to real engineering, ironically). Whereas we've been building motored vehicles for more than a century, vehicles in general for a few millennias, and building for even more millennias (and have been pretty damn good at it actually in some part of the world, making you feel like we're ridiculous kids playing with our new flashy software toys in comparison).</p><p>We <em>fail to systematically predict deadlines accurately</em>, we <em>fail to systematically predict costs accurately</em>, we <em>fail to systematically identify and mitigate inherent and external risks efficiently and deterministically</em>. The best we can manage to do is produce good enough <strong>guesstimates</strong>, and accommodate for some buffer, while trying our best to optimize the processes to reduce cycles and overhead.</p><p>But see, maybe that's what engineering is. And that's what, when someone talks about a "software engineer", they should think of and aim for.</p><p>So that seems hardly interchangeable with the simple act of programming routines, or the more advanced act of developing applications.</p><p>Still, everything is a matter of trends. Lately it's pretty common to have an horizontal dev team where everybody on the team is a Senior Software Developer (yes, capitals, because that makes us feel special, doesn't it?), without real distinction of age (fair enough, in my opinion) and not so much distinction of skills (uh-oh...) and responsibilities (now that can't be good, apart purely for PR buzz).</p><p>It's also <strong>sometimes just a force of habit and specific to an industry's culture and jargon</strong>. More positions for embedded software production use titles for software engineers. Mostly because it would probably imply that you will always have to deal to a certain extent with the hardware as well in this field, so you obviously deal with other aspects of the production and of the whole "system" you produce. Not just the bits going nuts inside it. On the other hand of the spectrum, you don't really see the term engineer being used in financial software production positions. It's either because is a mimetic evolution of this industry from one of its predecessors (say, embedded engineering find its roots in automobile engineering, for instance), or because they just want to give more or less credit/weight to a position.</p><p>And to be sure to loose everybody in the fog, <strong>you'll then find other titles mixing both</strong> (like "Software Development Engineer" or "Software Engineer in Test"!), and then other ones emphasizing even more crazy bridges with other domains (think of "Software Architect" and how "software architecture" might be a shameless theft of vocabulary). And keep them coming: Release Engineer, Change Development Manager, Build Engineer (that one goes ffaaarrrrrr out there as well). And sometimes just simply "engineer".</p><p>Hope that helped, though it's not really an answer.</p><p>Oh, and that means your new company is either trying to lure you in with a new title or that they don't really care about titles, or that you really are going to have a higher-level position. The only way of knowing is to read your job spec, talk to them and eventually give it a shot and judge for yourself. I'd hope it's the latter option and that you're happy with it (and potentially cash more in on it). <img src="/styles/default/xenforo/smilies/default/wink.gif" class="smilie" loading="lazy" alt=";)" title="Wink ;)" data-shortname=";)" /></p><p>------ <span style="font-size: 10px">Post added on [DATETIME="UT"]1685444623[/DATETIME]</span></p></blockquote><p></p>
[QUOTE="jehantheexplorer, post: 28903626, member: 583767"] Software engineer vs dev difference It's up to the company really, as I don't think there's a legal framework to enforce a denomination or another, or at least not that I am aware of and this might vary from country to country (for instance, the use of the term "engineer" is actually fairly regulated in France, but there are variants that are allowed for the "abusive" cases). That being said the general trend goes like this: [LIST] [*]A [B]programmer[/B] position is usually the one of [I]a professional hired to to produce the code of a computer program[/I]. It will imply that you [I]know how to write code[/I], can [I]understand an algorithm[/I] and [I]follow specifications[/I]. However, it usually stops there in terms of responsibility. [*]A [B]developer[/B] position is usually considered [I]a super-type of the programmer position[/I]. It encompasses the same responsibilities, [B]plus[/B] the [I]ability to design and architect a software component[/I], and to [I]write the technical documentation[/I] for it (including specifications). You are [I]able to - at least technically - lead others[/I] (so, programmers), but not necessarily a team (there comes the fuzz...) [*]An [B]engineer[/B] position would usually imply that you are a developer who [I]has a specific type of degree[/I], some [I]knowledge of engineering[/I], and is [I]capable of designing a system[/I] (as in: a combination of software components/modules that together form a whole software entity). Basically, you [I]see a wider picture[/I], and you are [I]capable of designing and explaining[/I] it and [I]separating it into smaller modules[/I]. [/LIST] However, [B]all this is arguable[/B], and as I said, [I]there's no legal requirement that I am aware of in US/UK countries[/I]. That being said, in France you can only call yourself an "engineer" if you come from an engineering school (recognized by the Commission des Titres d'Ingenieurs or something like that). You cannot say that you have an "Engineer Degree", but you can say that you have a "Degree in Engineering" if you have studied a discipline that falls under the portemanteau of engineering and technologies. It might be that some countries have a similar distinction, I just don't really know. Back to the software engineer title... Once, one of my teacher told our class - and rightly so - that [B]there's no such thing, as of today, as so-called "software engineering"[/B]. Because engineering something (be it a building, a vehicle, a piece of hardware...) means you are capable of envisioning its design and all the phases of its production, and to predict with accuracy the resources you will need, and thus the cost of the production. This is true of most "true" engineering disciplines. There are fluctuations, of course (the prices of the materials will vary over time, for instance), but there are very finite theoretical models (for design and planning) and empirical models (for pretty much keeping any of the former within accessible constraints) that allow you to predict the termination date of a project and its resource usage. The major problem with software is that it is not there yet. We want to aim for software engineering, but we're not there yet, really. Because we have a very fluid and dynamic environment, very variable constraints for projects, and still a lack of maturity in retrospect in our processes. Sure we could say we get better at it (highly arguable with hard-data, though), but we've only been at it since the 60s (earlier projects were actually closer to hardware-only computers, thus closer to real engineering, ironically). Whereas we've been building motored vehicles for more than a century, vehicles in general for a few millennias, and building for even more millennias (and have been pretty damn good at it actually in some part of the world, making you feel like we're ridiculous kids playing with our new flashy software toys in comparison). We [I]fail to systematically predict deadlines accurately[/I], we [I]fail to systematically predict costs accurately[/I], we [I]fail to systematically identify and mitigate inherent and external risks efficiently and deterministically[/I]. The best we can manage to do is produce good enough [B]guesstimates[/B], and accommodate for some buffer, while trying our best to optimize the processes to reduce cycles and overhead. But see, maybe that's what engineering is. And that's what, when someone talks about a "software engineer", they should think of and aim for. So that seems hardly interchangeable with the simple act of programming routines, or the more advanced act of developing applications. Still, everything is a matter of trends. Lately it's pretty common to have an horizontal dev team where everybody on the team is a Senior Software Developer (yes, capitals, because that makes us feel special, doesn't it?), without real distinction of age (fair enough, in my opinion) and not so much distinction of skills (uh-oh...) and responsibilities (now that can't be good, apart purely for PR buzz). It's also [B]sometimes just a force of habit and specific to an industry's culture and jargon[/B]. More positions for embedded software production use titles for software engineers. Mostly because it would probably imply that you will always have to deal to a certain extent with the hardware as well in this field, so you obviously deal with other aspects of the production and of the whole "system" you produce. Not just the bits going nuts inside it. On the other hand of the spectrum, you don't really see the term engineer being used in financial software production positions. It's either because is a mimetic evolution of this industry from one of its predecessors (say, embedded engineering find its roots in automobile engineering, for instance), or because they just want to give more or less credit/weight to a position. And to be sure to loose everybody in the fog, [B]you'll then find other titles mixing both[/B] (like "Software Development Engineer" or "Software Engineer in Test"!), and then other ones emphasizing even more crazy bridges with other domains (think of "Software Architect" and how "software architecture" might be a shameless theft of vocabulary). And keep them coming: Release Engineer, Change Development Manager, Build Engineer (that one goes ffaaarrrrrr out there as well). And sometimes just simply "engineer". Hope that helped, though it's not really an answer. Oh, and that means your new company is either trying to lure you in with a new title or that they don't really care about titles, or that you really are going to have a higher-level position. The only way of knowing is to read your job spec, talk to them and eventually give it a shot and judge for yourself. I'd hope it's the latter option and that you're happy with it (and potentially cash more in on it). ;) ------ [SIZE=2]Post added on [DATETIME="UT"]1685444623[/DATETIME][/SIZE] [/QUOTE]
Insert quotes…
Verification
Payakata winadi keeyak tibeda?
Post reply
Top
Bottom