[{"data":1,"prerenderedAt":432},["ShallowReactive",2],{"navigation":3,"\u002Fblog\u002Fhow-to-be-an-effective-engineer":286,"\u002Fblog\u002Fhow-to-be-an-effective-engineer-surround":425},[4],{"title":5,"path":6,"stem":7,"children":8,"page":285},"Blog","\u002Fblog","blog",[9,13,17,21,25,29,33,37,41,45,49,53,57,61,65,69,73,77,81,85,89,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149,153,157,161,165,169,173,177,181,185,189,193,197,201,205,209,213,217,221,225,229,233,237,241,245,249,253,257,261,265,269,273,277,281],{"title":10,"path":11,"stem":12},"2020 - The best Javascript Frameworks","\u002Fblog\u002F2020-the-best-javascript-frameworks","blog\u002F2020 - The best Javascript Frameworks",{"title":14,"path":15,"stem":16},"5 Essential Reasons for E2E Testing","\u002Fblog\u002F5-essential-reasons-for-e2e-testing","blog\u002F5 Essential Reasons for E2E Testing",{"title":18,"path":19,"stem":20},"5 Mistakes Front-end Developers should Avoid","\u002Fblog\u002F5-mistakes-front-end-developers-should-avoid","blog\u002F5 Mistakes Front-end Developers should Avoid",{"title":22,"path":23,"stem":24},"5 Things to motivate you to perform Unit Testing","\u002Fblog\u002F5-things-to-motivate-you-to-perform-unit-testing","blog\u002F5 Things to motivate you to perform Unit Testing",{"title":26,"path":27,"stem":28},"52 Articles, 7 Books and a Pandemic","\u002Fblog\u002F52-articles-7-books-and-a-pandemic","blog\u002F52 Articles, 7 Books and a Pandemic",{"title":30,"path":31,"stem":32},"6 Levels of Autonomous Vehicles","\u002Fblog\u002F6-levels-of-autonomous-vehicles","blog\u002F6 Levels of Autonomous Vehicles",{"title":34,"path":35,"stem":36},"ADAS","\u002Fblog\u002Fadas","blog\u002FADAS",{"title":38,"path":39,"stem":40},"Ambient Intelligence","\u002Fblog\u002Fambient-intelligence","blog\u002FAmbient Intelligence",{"title":42,"path":43,"stem":44},"Best 5 Hybrid Mobile App Development Frameworks","\u002Fblog\u002Fbest-5-hybrid-mobile-app-development-frameworks","blog\u002FBest 5 Hybrid Mobile App Development Frameworks",{"title":46,"path":47,"stem":48},"Best Practices for Code Testing","\u002Fblog\u002Fbest-practices-for-code-testing","blog\u002FBest Practices for Code Testing",{"title":50,"path":51,"stem":52},"Blockchains - How and Why?","\u002Fblog\u002Fblockchains-how-and-why","blog\u002FBlockchains - How and Why",{"title":54,"path":55,"stem":56},"Brain Computer Interfaces","\u002Fblog\u002Fbrain-computer-interfaces","blog\u002FBrain Computer Interfaces",{"title":58,"path":59,"stem":60},"Computational Fluid Dynamics","\u002Fblog\u002Fcomputational-fluid-dynamics","blog\u002FComputational Fluid Dynamics",{"title":62,"path":63,"stem":64},"Computer Vision","\u002Fblog\u002Fcomputer-vision","blog\u002FComputer Vision",{"title":66,"path":67,"stem":68},"Cryptography","\u002Fblog\u002Fcryptography","blog\u002FCryptography",{"title":70,"path":71,"stem":72},"Cyber-Physical Systems: Where Digital Meets Reality","\u002Fblog\u002Fcyber-physical-systems","blog\u002FCyber-Physical Systems",{"title":74,"path":75,"stem":76},"Design Patterns - Why and How?","\u002Fblog\u002Fdesign-patterns-why-and-how","blog\u002FDesign Patterns - Why and How",{"title":78,"path":79,"stem":80},"Edge AI: Revolutionizing Intelligence at the Edge","\u002Fblog\u002Fedge-ai","blog\u002FEdge AI",{"title":82,"path":83,"stem":84},"Edge Computing","\u002Fblog\u002Fedge-computing","blog\u002FEdge Computing",{"title":86,"path":87,"stem":88},"Embracing Decentralized Development","\u002Fblog\u002Fembracing-decentralized-development","blog\u002FEmbracing Decentralized Development",{"title":90,"path":91,"stem":92},"Extended Reality Simplified","\u002Fblog\u002Fextended-reality-simplified","blog\u002FExtended Reality Simplified",{"title":94,"path":95,"stem":96},"Good practices for Git","\u002Fblog\u002Fgood-practices-for-git","blog\u002FGood practices for Git",{"title":98,"path":99,"stem":100},"How do browsers work","\u002Fblog\u002Fhow-do-browsers-work","blog\u002FHow do browsers work",{"title":102,"path":103,"stem":104},"How to be a Full Stack Engineer","\u002Fblog\u002Fhow-to-be-a-full-stack-engineer","blog\u002FHow to be a Full Stack Engineer",{"title":106,"path":107,"stem":108},"How to be an effective Engineer?","\u002Fblog\u002Fhow-to-be-an-effective-engineer","blog\u002FHow to be an effective Engineer",{"title":110,"path":111,"stem":112},"How to choose components for a desktop PC on your own","\u002Fblog\u002Fhow-to-choose-components-for-a-desktop-pc-on-your-own","blog\u002FHow to choose components for a desktop PC on your own",{"title":114,"path":115,"stem":116},"Industry 4.0","\u002Fblog\u002Findustry-4","blog\u002FIndustry 4",{"title":118,"path":119,"stem":120},"Industry 4.0 & Mixed Reality","\u002Fblog\u002Findustry-4-and-mixed-reality","blog\u002FIndustry 4 & Mixed Reality",{"title":122,"path":123,"stem":124},"Internet of Behaviours","\u002Fblog\u002Finternet-of-behaviours","blog\u002FInternet of Behaviours",{"title":126,"path":127,"stem":128},"Internet of Things","\u002Fblog\u002Finternet-of-things","blog\u002FInternet of Things",{"title":130,"path":131,"stem":132},"Let's talk about SOLID Principles","\u002Fblog\u002Flets-talk-about-solid-principles","blog\u002FLets talk about SOLID Principles",{"title":134,"path":135,"stem":136},"LiDAR","\u002Fblog\u002Flidar","blog\u002FLiDAR",{"title":138,"path":139,"stem":140},"Machine Vision -Transforming Industries AI","\u002Fblog\u002Fmachine-vision-transforming-industries-ai","blog\u002FMachine Vision -Transforming Industries AI",{"title":142,"path":143,"stem":144},"Mathematics in Software Engineering","\u002Fblog\u002Fmathematics-in-software-engineering","blog\u002FMathematics in Software Engineering",{"title":146,"path":147,"stem":148},"Micro Frontends - A Modern Approach to Front-End Development","\u002Fblog\u002Fmicro-frontends-a-modern-approach-to-front-end-development","blog\u002FMicro Frontends - A Modern Approach to Front-End Development",{"title":150,"path":151,"stem":152},"Natural Language Processing","\u002Fblog\u002Fnatural-language-processing","blog\u002FNatural Language Processing",{"title":154,"path":155,"stem":156},"Optimizing for Search Engines","\u002Fblog\u002Foptimizing-for-search-engines","blog\u002FOptimizing for Search Engines",{"title":158,"path":159,"stem":160},"Physics Engine","\u002Fblog\u002Fphysics-engine","blog\u002FPhysics Engine",{"title":162,"path":163,"stem":164},"Point cloud","\u002Fblog\u002Fpoint-cloud","blog\u002FPoint cloud",{"title":166,"path":167,"stem":168},"Processes for Better Software Volume 1","\u002Fblog\u002Fprocesses-for-better-software-volume-1","blog\u002FProcesses for Better Software Volume 1",{"title":170,"path":171,"stem":172},"Processes for Better Software Volume 2","\u002Fblog\u002Fprocesses-for-better-software-volume-2","blog\u002FProcesses for Better Software Volume 2",{"title":174,"path":175,"stem":176},"Processes for Better Software Volume 3","\u002Fblog\u002Fprocesses-for-better-software-volume-3","blog\u002FProcesses for Better Software Volume 3",{"title":178,"path":179,"stem":180},"Quantum Computers","\u002Fblog\u002Fquantum-computers","blog\u002FQuantum Computers",{"title":182,"path":183,"stem":184},"Quantum Computing and its Potential Impact on Software Development","\u002Fblog\u002Fquantum-computing-and-its-potential-impact-on-software-development","blog\u002FQuantum Computing and its Potential Impact on Software Development",{"title":186,"path":187,"stem":188},"Quantum Cryptography","\u002Fblog\u002Fquantum-cryptography","blog\u002FQuantum Cryptography",{"title":190,"path":191,"stem":192},"Ray tracing - What you need to know","\u002Fblog\u002Fray-tracing-what-you-need-to-know","blog\u002FRay tracing - What you need to know",{"title":194,"path":195,"stem":196},"Reflections on how we code","\u002Fblog\u002Freflections-on-how-we-code","blog\u002FReflections on how we code",{"title":198,"path":199,"stem":200},"Robotic Process Automation","\u002Fblog\u002Frobotic-process-automation","blog\u002FRobotic Process Automation",{"title":202,"path":203,"stem":204},"Self Driving Cars - A Better Tomorrow","\u002Fblog\u002Fself-driving-cars-a-better-tomorrow","blog\u002FSelf Driving Cars - A Better Tomorrow",{"title":206,"path":207,"stem":208},"Semantic Web - A Smarter Future","\u002Fblog\u002Fsemantic-web-a-smarter-future","blog\u002FSemantic Web A Smarter Future",{"title":210,"path":211,"stem":212},"Sensor Fusion","\u002Fblog\u002Fsensor-fusion","blog\u002FSensor Fusion",{"title":214,"path":215,"stem":216},"Serverless Computing and the Future","\u002Fblog\u002Fserverless-computing-and-the-future","blog\u002FServerless Computing and the Future",{"title":218,"path":219,"stem":220},"Shaders","\u002Fblog\u002Fshaders","blog\u002FShaders",{"title":222,"path":223,"stem":224},"Smart Home Automation","\u002Fblog\u002Fsmart-home-automation","blog\u002FSmart Home Automation",{"title":226,"path":227,"stem":228},"The Horizon of Cybersecurity","\u002Fblog\u002Fthe-horizon-of-cybersecurity","blog\u002FThe Horizon of Cybersecurity",{"title":230,"path":231,"stem":232},"The Perils of Ray-Tracing","\u002Fblog\u002Fthe-perils-of-ray-tracing","blog\u002FThe Perils of Ray-Tracing",{"title":234,"path":235,"stem":236},"The Psychology of Software Bugs Understanding and Preventing Common Mistakes","\u002Fblog\u002Fthe-psychology-of-software-bugs-understanding-and-preventing-common-mistakes","blog\u002FThe Psychology of Software Bugs - Understanding and Preventing Common Mistakes",{"title":238,"path":239,"stem":240},"Top 5 Advantages of MongoDB","\u002Fblog\u002Ftop-5-advantages-of-mongodb","blog\u002FTop 5 Advantages of MongoDB",{"title":242,"path":243,"stem":244},"Top Trends in Augmented Reality","\u002Fblog\u002Ftop-trends-in-augmented-reality","blog\u002FTop Trends in Augmented Reality",{"title":246,"path":247,"stem":248},"Top features of Unreal Engine","\u002Fblog\u002Ftop-features-of-unreal-engine","blog\u002FTop features of Unreal Engine",{"title":250,"path":251,"stem":252},"Unity 3D - Why to go with it?","\u002Fblog\u002Funity-3d-why-to-go-with-it","blog\u002FUnity 3D - Why to go with it",{"title":254,"path":255,"stem":256},"Virtual Reality Advantages","\u002Fblog\u002Fvirtual-reality-advantages","blog\u002FVirtual Reality Advantages",{"title":258,"path":259,"stem":260},"Virtual Test Drive & Autonomous Driving","\u002Fblog\u002Fvirtual-test-drive-and-autonomous-driving","blog\u002FVirtual Test Drive & Autonomous Driving",{"title":262,"path":263,"stem":264},"WebAssembly and Progressive Web Apps","\u002Fblog\u002Fwebassembly-and-progressive-web-apps","blog\u002FWebAssembly and Progressive Web Apps",{"title":266,"path":267,"stem":268},"What are Best Practices?","\u002Fblog\u002Fwhat-are-best-practices","blog\u002FWhat are Best Practices",{"title":270,"path":271,"stem":272},"What are Digital Twins?","\u002Fblog\u002Fwhat-are-digital-twins","blog\u002FWhat are Digital Twins",{"title":274,"path":275,"stem":276},"What makes Mixed Reality the next big thing?","\u002Fblog\u002Fwhat-makes-mixed-reality-the-next-big-thing","blog\u002FWhat makes Mixed Reality the next big thing",{"title":278,"path":279,"stem":280},"Why Game Engines?","\u002Fblog\u002Fwhy-game-engines","blog\u002FWhy Game Engines",{"title":282,"path":283,"stem":284},"Why we need User Experience Design?","\u002Fblog\u002Fwhy-we-need-user-experience-design","blog\u002FWhy we need User Experience Design",false,{"id":287,"title":106,"author":288,"body":292,"date":416,"description":417,"extension":418,"image":419,"meta":420,"minRead":421,"navigation":422,"path":107,"seo":423,"stem":108,"__hash__":424},"blog\u002Fblog\u002FHow to be an effective Engineer.md",{"name":289,"avatar":290},"Aghil Jose",{"src":291,"alt":289},"\u002Fassets\u002Fimages\u002Fabout.jpg",{"type":293,"value":294,"toc":404},"minimark",[295,299,302,307,314,317,330,333,341,345,351,354,358,364,367,370,374,380,383,387,393,396,401],[296,297,298],"p",{},"Every software engineer or developer might have asked this question to\nthemselves or to their colleagues at some point. How to make myself better as\nan engineer or developer? If you haven’t, you should.",[296,300,301],{},"The answers would differ from person to person. Some might even go very\nspecific. But there are somethings that so many agree upon which could be\napplied by pretty much every one in the industry.",[303,304,306],"h2",{"id":305},"_1-analysis-of-scenarios","1. Analysis of scenarios",[296,308,309],{},[310,311],"img",{"alt":312,"src":313},"analysis","\u002Fassets\u002Fimages\u002Fblog\u002F280920\u002Fanalysis.jpg",[296,315,316],{},"The ability to consider many different scenarios is a must have trait for any\ngood engineer. This applies both to the internal and external events that can\noccur as well as the logic in the program. Asking the following questions\nmight help us discover what types of events the software needs to handle.",[318,319,320,324,327],"ul",{},[321,322,323],"li",{},"What if this queue becomes full?",[321,325,326],{},"What if other server restarts while this server is restarting?",[321,328,329],{},"What if there is no response to this request?",[296,331,332],{},"Also, the following questions might help us find the different paths in the\nlogic.",[318,334,335,338],{},[321,336,337],{},"What if none of these arguments are true?",[321,339,340],{},"What happens if the argument is null? Etc.",[303,342,344],{"id":343},"_2-problem-decomposition","2. Problem Decomposition",[296,346,347],{},[310,348],{"alt":349,"src":350},"problem","\u002Fassets\u002Fimages\u002Fblog\u002F280920\u002Fproblem.jpg",[296,352,353],{},"Software is primarily about solving problems. So, before we start writing\ncode, we need to be clear on how to solve the problem. The ability to break\ndown a problem into smaller chunks is a formidable weapon in any engineer’s\narsenal. But it doesn’t stop there. We should be able to model the problem in\nsuch a way that the resulting program is easy to reason about, easy to\nimplement and test.",[303,355,357],{"id":356},"_3-naming","3. Naming",[296,359,360],{},[310,361],{"alt":362,"src":363},"naming","\u002Fassets\u002Fimages\u002Fblog\u002F280920\u002Fnaming.jpg",[296,365,366],{},"Properly naming classes, methods, functions and variables goes a long way.\nWhen done well, the software becomes self-documenting. That is, the function\nof the code is quite clear just from reading the source code. Self-documenting\ncodes naturally leads to smaller methods, rather than a few large ones, simply\nbecause we get more places to put meaningful names.",[296,368,369],{},"Naming things is not easy as it sounds. It needs to be clear in our mind what\neach name represents. Sometimes that might change during the development\nprocess. That is why renaming is just as important as naming.",[303,371,373],{"id":372},"_4-consistency","4. Consistency",[296,375,376],{},[310,377],{"alt":378,"src":379},"consistency","\u002Fassets\u002Fimages\u002Fblog\u002F280920\u002Fconsistency.jpg",[296,381,382],{},"Managing complexity is undoubtedly one of the biggest challenges in software\ndevelopment. Consistency is key here. It reduces some of the complexity by\nallowing us to see patterns and infer how things are named, used and handled.\nWe do not require to use much brain power to remember exceptions and random\nvariations, with consistency. Consistency applies to variable names and\ngrouping, method naming, the division into modules, directory structure,\ndocumentation, the GUI, logging, error-handling etc. For instance, if some\nvariables are related and appear together, try to use them in the same order.\nThis will make it easier to see if any goes missing or if they have been mixed\nup. There is a high chance for inconsistencies while modifying a software.\nGood engineers always ensure that even the small parts are right and the\nconsistency is kept while modification.",[303,384,386],{"id":385},"_5-learning","5. Learning",[296,388,389],{},[310,390],{"alt":391,"src":392},"learning","\u002Fassets\u002Fimages\u002Fblog\u002F280920\u002Flearning.jpg",[296,394,395],{},"We are constantly learning as a software engineer. We have to understand what\na feature is supposed to do before adding it. It goes without saying prior to\nthat we must understand what the existing code does. It will make the addition\nof the new feature that much simpler. We also have to learn about the\nsurrounding systems in order to interface with them appropriately. Obviously,\nthe ability to learn fast will make us more effective, but not necessarily\nalways.",[397,398,400],"h3",{"id":399},"if-we-have-these-skills-we-can-learn-new-languages-and-tools-much-quicker-and-create-exceptional-software","If we have these skills, we can learn new languages and tools much quicker and create exceptional software.",[296,402,403],{},"Disclaimer : The views and opinions expressed in the article belong solely to the\nauthor, and not necessarily to the author's employer, organisation, committee\nor other group or individual.",{"title":405,"searchDepth":406,"depth":406,"links":407},"",2,[408,409,410,411,412],{"id":305,"depth":406,"text":306},{"id":343,"depth":406,"text":344},{"id":356,"depth":406,"text":357},{"id":372,"depth":406,"text":373},{"id":385,"depth":406,"text":386,"children":413},[414],{"id":399,"depth":415,"text":400},3,"2020-09-28","The necessary skills needed for any software engineer.","md","\u002Fassets\u002Fimages\u002Fblog\u002F280920\u002FeeTitle.jpg",{},4,true,{"title":106,"description":417},"NU1Y6pIQTmem5PjqpcfoWnXHMUCPfa8sjYuIYUrlmKQ",[426,429],{"path":195,"title":194,"description":427,"date":428},"What are some of the factors that help the way we evolve as an engineer.","2020-10-04",{"path":279,"title":278,"description":430,"date":431},"What are the needs for game engines and how they came to be.","2020-09-21",1790439209628]